我正在使用混淆矩阵,并且对输出有非常基本的了解。但是,由于我不熟悉R和R,因此详细说明常常使它听起来更加复杂。我有以下输出,我只是想知道是否可以向我解释
准确度和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"))
[您需要按每个标签,例如对于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]是无法预测的数字AA-> TN
[例如,您可以从此处计算A的灵敏度,TP /(TP + FN)= 2298 /(2298 + 270)= 0.8948598
它是cohen's kappa,基本上是一种度量,用于衡量您的预测与随机猜测/分配相比有多好。
您可以从上面的公式中看到,当您的数据集不平衡时,它将产生巨大的变化。例如,如果90%的标签属于一个类别,则模型预测所有内容都属于该类别,那么您将获得90%的准确性。但是,如果您使用科恩的kappa,则p预期为0.9,因此您需要比p更好才能显示出好分数。