我有一个数据框。对于我的模型,第一列包含我的预测分数(范围从0到100,较小的值预计在A类中,较大的值预计在B类中),第二列包含条目的实际分类(“ A类“或”B类“)。
如何使用R获得不同截止值的混淆矩阵,因为我无法确定应该在哪里定义值< 20或者< 50级作为A级吗?
如何有效地与R进行比较?
答案 0 :(得分:20)
有很多方法可以做到这一点,我们需要一个可重复的数据示例:
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)