我在进行机器学习的自学。我尝试训练一个K-NN模型,我的模型给我提供了下面的7×7混淆矩阵。我已经手动计算了两个类别(A和B)的准确率,但不确定我的方法是否正确。我希望其他人能确认我的结果,这样我就可以编写程序来计算其他5个类别的结果。
Confusion Matrx : A B C D E F G = 7 classes[[ 238 1 2 0 41 11 0] [ 0 25 0 0 3 1 0] [ 21 1 32 0 17 4 0] [ 0 0 0 7 9 3 0] [ 7 0 0 0 3633 8 0] [ 44 0 4 1 397 256 1] [ 4 0 0 0 7 2 3]]Class-A tp = 238fp = 76 (Rest of the 'a' column e.g 21+0+7+44+4 = 76)tn = 4414 [25 0 0 3 1 0] [1 32 0 17 4 0] [0 0 7 9 3 0] [0 0 0 3633 8 0] [0 4 1 397 256 1] [0 0 0 7 2 3] Sum of all elements will be true negative = 4414 fn = 55 (Rest of the 'a' rows element e.g 1+2+0+41+11+0 =55 ) So class-A confusion matrix will something look like below tp fp | 238 76 | fn tn | 55 4414 Class A Accuracy = tp+tn/tp+tn+fp+fn = 4652/4768 = 0.97 Class B tp = 25 fp = 2 tn = 4752 [ 238 2 0 41 11 0] [ 21 32 0 17 4 0] [ 0 0 7 9 3 0] [ 7 0 0 3633 8 0] [ 44 4 1 397 256 1] [ 4 0 0 7 2 3] fn = 4 So class-B confusion matrix will something look like below tp fp | 2 76 | fn tn | 4 4752 Class B Accuracy = tp+tn/tp+tn+fp+fn = 4754/4834 = 0.98
我尝试在线搜索,但没有找到超过2×2矩阵的计算方法。
回答:
对于多类别情况,可以使用以下方法:
代码背后的想法:这些指标在以下图像中以包含大量类别的通用情况进行了图形展示。