Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解释R中的混淆矩阵_R_Confusion Matrix_Multiclass Classification - Fatal编程技术网

如何解释R中的混淆矩阵

如何解释R中的混淆矩阵,r,confusion-matrix,multiclass-classification,R,Confusion Matrix,Multiclass Classification,我正在使用混淆矩阵,对输出有非常基本的了解。然而,由于我对使用这个和R还不熟悉,详细的解释常常使它听起来更复杂。我有下面的输出,我只是想知道是否可以解释给我 矩阵中的TP、TN、FP和FN是什么? 卡帕代表什么? 准确度和kappa之间有什么区别 > confusionMatrix(predRF, loanTest2$grade) Confusion Matrix and Statistics Reference Prediction A B C

我正在使用混淆矩阵,对输出有非常基本的了解。然而,由于我对使用这个和R还不熟悉,详细的解释常常使它听起来更复杂。我有下面的输出,我只是想知道是否可以解释给我

矩阵中的TP、TN、FP和FN是什么? 卡帕代表什么? 准确度和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

假设这是您的混淆矩阵:

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"))
矩阵中的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
上述计算方法基本上是将所有预测和参考不正确且不一致的情况汇总在一起

这些数字代表:

一个矩阵[1,1]是一个被预测的数字,它实际上是一个-> 总磷

矩阵[1,2]是预测A而不是A的数字 ->计划生育

A_矩阵[2,1]是不是预测A而是预测A的数字 ->FN

矩阵[2,2]是不可预测且不可预测的数字 A->TN

例如,从这里可以计算A的灵敏度,即TP/TP+FN=2298/2298+270=0.8948598

卡帕代表什么? 它基本上是一个衡量你的预测与随机猜测/分配相比有多好的指标

准确度和kappa之间有什么区别?
从上面的公式中可以看出,当数据集不平衡时,会产生巨大的差异。例如,如果90%的标签是一个类,那么如果模型预测所有内容都是该类,那么您将获得90%的准确性。然而,如果你使用科恩的卡帕系数,一开始p的期望值是0.9,你需要比这更好才能得到好的分数。

假设这是你的混淆矩阵:

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"))
矩阵中的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
上述计算方法基本上是将所有预测和参考不正确且不一致的情况汇总在一起

这些数字代表:

一个矩阵[1,1]是一个被预测的数字,它实际上是一个-> 总磷

矩阵[1,2]是预测A而不是A的数字 ->计划生育

A_矩阵[2,1]是不是预测A而是预测A的数字 ->FN

矩阵[2,2]是不可预测且不可预测的数字 A->TN

例如,从这里可以计算A的灵敏度,即TP/TP+FN=2298/2298+270=0.8948598

卡帕代表什么? 它基本上是一个衡量你的预测与随机猜测/分配相比有多好的指标

准确度和kappa之间有什么区别?
从上面的公式中可以看出,当数据集不平衡时,会产生巨大的差异。例如,如果90%的标签是一个类,那么如果模型预测所有内容都是该类,那么您将获得90%的准确性。然而,如果你使用科恩的kappa,一开始预期的p为0.9,你需要比这更好才能获得好的分数。

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