【问题标题】:How to interpret confusion matrix in R如何解释 R 中的混淆矩阵
【发布时间】:2020-07-06 13:17:17
【问题描述】:

我正在使用混淆矩阵,并且对输出有非常基本的了解。但是,由于我对使用它和 R 不熟悉,因此详细说明通常会使它听起来更复杂。我有以下输出,我只是想知道是否可以向我解释一下

  • 矩阵中的 TP、TN、FP 和 FN 是什么?
  • kappa 代表什么?
  • 准确率和kappa有什么区别?

    > confusionMatrix(predRF, loanTest2$grade)
    
    Confusion Matrix and Statistics
    
              Reference
    Prediction     A    B    C    D    E    F    G
     A          2298  174   63   29   26   12    3
     B           264 3245  301   65   16    3    3
     C             5  193 2958  399   61   15    4
     D             1    1   39 1074  236   33    6
     E             0    0    2   32  249   97   30
     F             0    0    0    0    8   21   11
     G             0    0    0    0    0    0    0
    
    Overall Statistics
    
               Accuracy : 0.822          
                 95% CI : (0.815, 0.8288)
    No Information Rate : 0.3017         
    P-Value [Acc > NIR] : < 2.2e-16      
    
                   Kappa: 0.7635         
    
                         Class: A Class: B Class: C Class: D Class: E Class: F Class: G
    Sensitivity            0.8949   0.8981   0.8796  0.67167  0.41779 0.116022 0.000000
    Specificity            0.9674   0.9220   0.9214  0.96955  0.98585 0.998389 1.000000
    Pos Pred Value         0.8821   0.8327   0.8138  0.77266  0.60732 0.525000      NaN
    Neg Pred Value         0.9712   0.9545   0.9515  0.95041  0.97000 0.986596 0.995241
    Prevalence             0.2144   0.3017   0.2808  0.13351  0.04976 0.015112 0.004759
    Detection Rate         0.1919   0.2709   0.2470  0.08967  0.02079 0.001753 0.000000
    Detection Prevalence   0.2175   0.3254   0.3035  0.11606  0.03423 0.003340 0.000000
    Balanced Accuracy      0.9311   0.9101   0.9005  0.82061  0.70182 0.557206 0.500000
    

【问题讨论】:

  • 这更像是一个统计/数据科学问题。但它的要点是,Reference 是真实类,Prediction 是预测类。如果您有 2298 参考 A 和预测 A,则为真阳性,因为所有这些都被正确识别为它们是 A。如果您查看参考 A 列中所有大于零的值,则它们是假阴性,因为它们是 A 被错误地预测为其他类。如果您查看除参考 A 之外的预测行 A 中的所有非零值,这些都是 A 的误报。重复行和 colsB-G。

标签: r confusion-matrix multiclass-classification


【解决方案1】:

假设这是你的混淆矩阵:

tab = structure(list(A = c(2298L, 264L, 5L, 1L, 0L, 0L, 0L), B = c(174L, 
3245L, 193L, 1L, 0L, 0L, 0L), C = c(63L, 301L, 2958L, 39L, 2L, 
0L, 0L), D = c(29L, 65L, 399L, 1074L, 32L, 0L, 0L), E = c(26L, 
16L, 61L, 236L, 249L, 8L, 0L), F = c(12L, 3L, 15L, 33L, 97L, 
21L, 0L), G = c(3L, 3L, 4L, 6L, 30L, 11L, 0L)), class = "data.frame", row.names = c("A", 
"B", "C", "D", "E", "F", "G"))
  1. 矩阵中的 TP、TN、FP 和 FN 是什么?

您需要查看每个标签,例如对于 A 类,这些术语在关于 A 的预测方面是有意义的。

A_confusion_matrix = cbind(c(x[1,1],sum(x[-1,1])),c(sum(x[1,-1]),sum(x[2:7,2:7])))

     [,1] [,2]
[1,] 2298  307
[2,]  270 9102

上面的计算方法基本上是把所有的预测和参考都是不正确的,而不是A放在一起。

这些数字代表:

A_confusion_matrix[1,1] 是预测的 A 和真正的 A -> TP

A_confusion_matrix[1,2] 是预测 A 而不是 A -> FP

A_confusion_matrix[2,1] 是不是预测A而是A的数 -> FN

A_confusion_matrix[2,2] 是未预测 A 且未预测的数 A -> TN

例如,您可以从此处计算 A 的灵敏度,即 TP/(TP+FN) = 2298/(2298+270) = 0.8948598

  1. kappa 代表什么?

它是cohen's kappa,基本上是衡量您的预测与随机猜测/分配相比有多好的指标。

  1. accura 和 kappa 有什么区别?

从上面的公式可以看出,当您的数据集不平衡时,它会产生巨大的差异。例如,如果 90% 的标签是一类,如果模型预测所有内容都是该类,那么您将获得 90% 的准确度。但是,如果您使用 cohen 的 kappa,则 p 期望值一开始是 0.9,您需要比这更好才能显示出好的分数。

【讨论】:

    猜你喜欢
    • 2018-09-18
    • 2017-11-03
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 2019-08-05
    • 2022-01-05
    • 2020-08-06
    相关资源
    最近更新 更多