如何解释R中的混淆矩阵
我正在使用混淆矩阵,对输出有非常基本的了解。然而,由于我对使用这个和R还不熟悉,详细的解释常常使它听起来更复杂。我有下面的输出,我只是想知道是否可以解释给我 矩阵中的TP、TN、FP和FN是什么? 卡帕代表什么? 准确度和kappa之间有什么区别如何解释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
> 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重复。