获得以下二元分类结果的数据点总数为1500。其中,我有
- 1473个标记为
0
,以及 - 剩余的27个标记为
1
。
从混淆矩阵可以看出,属于类别1
的27个数据点中,只有1个数据点被错误分类为0
。因此,我计算了各个类别的准确率,得到了标记为0的类别的准确率为98.2%,而另一个类别的准确率为1.7333%。这个计算正确吗?我不太确定…我对标记为1
的类别的分类效果相当不错,为什么它的准确率这么低?各个类别的准确率应该分别为类别0的100%和类别1的约98%
一个错误分类会使类别1的准确率降低这么多吗?这是我在Matlab中计算个体类别准确率的方法。
cmMatrix = 1473 01 26acc_class0 = 100*(cmMatrix(1,1))/1500;acc_class1= 100*(cmMatrix(2,2))/1500;
回答:
如果所有分类都正确,你的计算将显示类别1的准确率为27/1500=0.018。这显然是错误的。总体准确率为1499/1500,但每个类别的准确率不能用1500作为分母。27是正确分类的最大元素数,因此应该作为分母。
acc_class0 = 100*cmMatrix(1,1)/sum(cmMatrix(1,:));acc_class1 = 100*cmMatrix(2,2)/sum(cmMatrix(2,:));