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:如何为预测模型制作混淆矩阵?的主要内容,如果未能解决你的问题,请参考以下文章
R语言构建文本分类模型:文本数据预处理构建词袋模型(bag of words)构建xgboost文本分类模型xgboost模型预测推理并使用混淆矩阵评估模型可视化模型预测的概率分布
R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型分类预测器(分类变量)被自动替换为一组虚拟编码变量summary函数查看检查模型使用table函数计算混淆矩阵评估分类模型性能
R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图混淆矩阵准确率精确度召回率ROCAUC)PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)