首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >multinomial_naive_bayes()函数生成模型的r-生成混淆矩阵和ROC

multinomial_naive_bayes()函数生成模型的r-生成混淆矩阵和ROC
EN

Stack Overflow用户
提问于 2020-11-13 10:09:13
回答 1查看 555关注 0票数 0

我有一个包含许多因素/分类/名义列/变量/特性的数据集。我需要为这些数据创建一个多项朴素贝叶斯分类器。我试过使用插入符号库,但我不认为这是做多项朴素贝叶斯,我认为它是做高斯朴素贝叶斯,细节这里。我现在已经发现了multinomial_naive_bayes(),它似乎是完美的。它似乎处理了谓词变量中的空值和一个只有一个值的变量,而没有抱怨。

问题是,我不知道如何对multinomial_naive_bayes()函数生成的模型进行“后处理/分析”。我想得到一个插入类型的confusionMatrix在模型上,并在预测输出与测试数据的对比,以评估分类器。我也想生成一条ROC曲线。我该怎么做?

我在下面的multinomial_naive_bayes()文档中包含了示例/参考/示例,如何更新这段代码以获得confusionMatricies和ROC曲线。

出发地:r包'天真无邪',部分:天真无邪 10

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-14 22:22:43

您可以使用插入符号函数confusionMatrix:

代码语言:javascript
复制
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

或者如果因素水平是相同的:

代码语言:javascript
复制
confusionMatrix(pred,y)

对于ROC曲线,您需要提供预测的概率:

代码语言:javascript
复制
library(pROC)
roc_ = roc(y,predict(mnb, newdata = M, type ="prob")[,2])

plot(roc_)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64819019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档