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

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

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

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

【问题讨论】:

    标签: r prediction


    【解决方案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 矩阵)。
    猜你喜欢
    • 2020-07-31
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 2016-11-27
    相关资源
    最近更新 更多