我有一个包含许多因素/分类/名义列/变量/特性的数据集。我需要为这些数据创建一个多项朴素贝叶斯分类器。我试过使用插入符号库,但我不认为这是做多项朴素贝叶斯,我认为它是做高斯朴素贝叶斯,细节这里。我现在已经发现了multinomial_naive_bayes(),它似乎是完美的。它似乎处理了谓词变量中的空值和一个只有一个值的变量,而没有抱怨。
问题是,我不知道如何对multinomial_naive_bayes()函数生成的模型进行“后处理/分析”。我想得到一个插入类型的confusionMatrix在模型上,并在预测输出与测试数据的对比,以评估分类器。我也想生成一条ROC曲线。我该怎么做?
我在下面的multinomial_naive_bayes()文档中包含了示例/参考/示例,如何更新这段代码以获得confusionMatricies和ROC曲线。
library(naivebayes)
### Simulate the data:
cols <- 10 ; rows <- 100
M <- matrix(sample(0:5, rows * cols, TRUE, prob = c(0.95, rep(0.01, 5))), nrow = rows, ncol = cols)
y <- factor(sample(paste0("class", LETTERS[1:2]), rows, TRUE, prob = c(0.3,0.7)))
colnames(M) <- paste0("V", seq_len(ncol(M)))
laplace <- 1
### Train the Multinomial Naive Bayes
mnb <- multinomial_naive_bayes(x = M, y = y, laplace = laplace)
summary(mnb)
# Classification
head(predict(mnb, newdata = M, type = "class")) # head(mnb %class% M)
# Posterior probabilities
head(predict(mnb, newdata = M, type = "prob")) # head(mnb %prob% M)
# Parameter estimates
coef(mnb)发布于 2020-11-14 22:22:43
您可以使用插入符号函数confusionMatrix:
library(caret)
pred = predict(mnb, newdata = M, type = "class")
confusionMatrix(table(pred,y))
Confusion Matrix and Statistics
y
pred classA classB
classA 10 3
classB 20 67或者如果因素水平是相同的:
confusionMatrix(pred,y)对于ROC曲线,您需要提供预测的概率:
library(pROC)
roc_ = roc(y,predict(mnb, newdata = M, type ="prob")[,2])
plot(roc_)

https://stackoverflow.com/questions/64819019
复制相似问题