R:如何为预测模型制作混淆矩阵?

Posted

技术标签:

【中文标题】R:如何为预测模型制作混淆矩阵?【英文标题】:R: how to make a confusion matrix for a predictive model? 【发布时间】:2011-09-30 23:34:18 【问题描述】:

我有一个数据框。第一列包含我的模型的预测分数(范围从 0 到 100,较小的值预计属于 A 类,较大的值预计属于 B 类),第二列包含条目的真实分类(“ A 级”或“B 级”)。

如何使用 R 获得不同截止值的混淆矩阵,因为我无法决定我应该在哪里定义值

如何使用 R 有效地进行这种比较?

【问题讨论】:

【参考方案1】:

有很多方法可以做到这一点,最好有一个可重现的数据示例:

set.seed(12345)
test <- data.frame(pred=c(runif(50,0,75),runif(50,25,100)), group=c(rep("A",50), rep("B",50)) )
table(test$pred<50,test$group)

给予

         A  B
  FALSE 18 34
  TRUE  32 16

也就是说,32 个 A 低于 50,34 个 B 超过 50,而 18 个 A 超过 50(分类错误),16 个 B 低于 50(分类错误)

set.seed(12345)
test <- data.frame(pred=c(runif(50,0,60),runif(50,40,100)), group=c(rep("A",50), rep("B",50)) )
table(test$pred<50,test$group)

给予

         A  B
  FALSE  8 40
  TRUE  42 10

在这个例子中,由于选择了抽样,你的分类要好得多。

然后可以将其中的“50”更改为您想要的任何值,20、30 等。

table(test$pred<50,test$group)

【讨论】:

如果您没有低于 50 的预测值,这将不起作用,因为该表仅生成 TRUE 行而不是 4*4 矩阵。 我编辑了答案以概括。 *(我的意思是上面评论中的 2*2 矩阵)。

以上是关于R:如何为预测模型制作混淆矩阵?的主要内容,如果未能解决你的问题,请参考以下文章

通过构建混淆矩阵评估 NaiveBayes 分类器

怎么计算混淆矩阵的消费者精度

R语言构建文本分类模型:文本数据预处理构建词袋模型(bag of words)构建xgboost文本分类模型xgboost模型预测推理并使用混淆矩阵评估模型可视化模型预测的概率分布

R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型分类预测器(分类变量)被自动替换为一组虚拟编码变量summary函数查看检查模型使用table函数计算混淆矩阵评估分类模型性能

R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图混淆矩阵准确率精确度召回率ROCAUC)PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)

机器学习100天(十九):019 分类模型评价指标-混淆矩阵