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

来源:互联网 发布:mac笔记本怎么还原系统 编辑:程序博客网 时间:2024/05/10 16:05
本文主要学习使用R语言中的klaR包与e1071包中的朴素贝叶斯分类函数,数据使用的仍是上篇文章中从UCI上下载的bank数据下载地址:<a target=_blank href="http://archive.ics.uci.edu/ml/datasets/Bank+Marketing">http://archive.ics.uci.edu/ml/datasets/Bank+Marketing</a>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包在使用的时候会出现警告,但不影响预测#运算,具体原因有待进一步探索
#朴素贝叶斯使用时要有假设条件:类条件独立性
0 0