使用朴素贝叶斯分类器计算混淆矩阵

问题描述 投票:0回答:1

我需要通过在R中进行留一法式交叉验证来为wbca数据集中的每个变量使用多项式分布来计算朴素贝叶斯分类器的混淆矩阵。

注意,恶性肿瘤的先验概率为π0= 1/3,良性肿瘤的先验概率为π1= 2/3。我不知道从哪里开始,因为我是机器学习的新手。

我认为应该采用的方法是首先实现朴素贝叶斯分类器,然后执行LOOCV,然后计算混淆矩阵。我不确定这是否正确,如果正确,那么我不知道如何用代码写出来。

任何见识或帮助将不胜感激!

r machine-learning statistics
1个回答
0
投票
我认为naivebayes包允许多项式预测器,因此请尝试如下所示,其中LOOCV大致实现了:

library(faraway) library(naivebayes) library(caret) predictors = !grepl("Class",colnames(wbca)) label = "Class" res = lapply(1:nrow(wbca),function(i){ fit = multinomial_naive_bayes(y=factor(wbca[-i,label]), x=as.matrix(wbca[-i,predictors]),prior=c(1/3,2/3)) data.frame(label=wbca[i,label], pred = predict(fit,as.matrix(wbca[i,predictors],nrow=1)) ) }) res = do.call(rbind,res) confusionMatrix(factor(res$label,levels=0:1),res$pred) Confusion Matrix and Statistics Reference Prediction 0 1 0 197 41 1 20 423 Accuracy : 0.9104 95% CI : (0.8864, 0.9308) No Information Rate : 0.6814 P-Value [Acc > NIR] : < 2e-16 Kappa : 0.7989 Mcnemar's Test P-Value : 0.01045 Sensitivity : 0.9078 Specificity : 0.9116 Pos Pred Value : 0.8277 Neg Pred Value : 0.9549 Prevalence : 0.3186 Detection Rate : 0.2893 Detection Prevalence : 0.3495 Balanced Accuracy : 0.9097 'Positive' Class : 0

© www.soinside.com 2019 - 2024. All rights reserved.