#朴素贝叶斯分类 #导入数据 car <- read.table(file.choose(),sep = ',') head(car) #变量重命名 colnames(car) <- c('buy',"main",'doors','capacity', 'lug boot','safety','accept') #选取75%数据为训练集,25%数据为测试集 #构建训练集的下标集 library(caret) ind <- createDataPartition(car$accept,times = 1,p=0.75,list = F) cartrain <- car[ind,] cartest <- car[-ind,] ###e1071函数包使用 library(e1071) nb.model <- naiveBayes(accept~.,data = cartrain) #预测结果 nb_predict <- predict(nb.model,newdata = cartest) #生成实际与预测交叉表和预测精度 nb.table <- table(actual=cartest$accept,predict=nb_predict) nb_ratio <- sum(diag(nb.table))/sum(nb.table) ###klaR函数包使用,在e1071包的基础上进行的扩展 library(klaR) knb.model <- NaiveBayes(accept~.,data = cartrain) #预测结果 knb_predict <- predict(knb.model,newdata = cartest[,1:6]) #生成实际与预测交叉表和预测精度 knb.table <- table(actual=cartest$accept,predict=knb_predict$class) knb_ratio <- sum(diag(knb.table))/sum(knb.table) #分析结果 nb.table;knb.table nb_ratio;knb_ratio