朴素贝叶斯分类——R语言e1071 and klaR包初体验


本文主要学习使用R语言中的klaR包与e1071包中的朴素贝叶斯分类函数,数据使用的仍是上篇文章中从UCI上下载的bank数据
下载地址:http://archive.ics.uci.edu/ml/datasets/Bank+Marketing

bank <- read.csv("D:/data/MachineLearning/bank/bank.csv",header=T,sep=";")#读取数据
n <- nrow(bank)
bank_train <- bank[1:4000,]#对源数据进行分割
bank_test <- bank[4001:n,1:16]
bank_test1 <- bank[4001:n,]
library(klaR)#加载klaR包
bfit <- NaiveBayes(y~age+job+marital+education+default+balance+housing+loan+contact
                   +day+month+duration+campaign+pdays+previous+poutcome,bank,na.action=na.pass)
#训练模型
result <- predict(bfit,bank_test)#对测试数据进行预测
result_1 <- data.frame(result)
result_2 <- result_1[,1]
source("D:/work/R_work/count_result.R")#加载我们自己写的统计函数
count_result(result_2,bank_test1)#计算正确率
library(e1071)#加载e1701包
efit <- naiveBayes(y~age+job+marital+education+default+balance+housing+loan+contact
                   +day+month+duration+campaign+pdays+previous+poutcome,bank_train)
eresult <- predict(efit,bank_test)
count_result(eresult,bank_test1)
#klaR包与e1071包都可以做朴素贝叶斯分类,本次试验中,klaR包在使用的时候会出现警告,但不影响预测
#运算,具体原因有待进一步探索
#朴素贝叶斯使用时要有假设条件:类条件独立性

你可能感兴趣的:(R语言)