【问题标题】:Individual class accuracy calculation confusion个别类准确率计算混乱
【发布时间】:2018-12-17 17:02:48
【问题描述】:

得到以下二元分类结果的数据点总数=1500。其中,我有

  • 1473 标记为0
  • 剩余的 27 个为 1

从混淆矩阵中可以看出,在属于 1 类的 27 个数据点中,我只有 1 个数据点被错误分类为 0 。因此,我计算了各个类的准确度,并得到标记为 0 = 98.2% 的类的准确度,而其他类的准确度为 1.7333%。这个计算正确吗?我不确定...对于标记为1 的类,我确实得到了一个很好的分类,那么为什么它的准确度很低呢? 0 类的单个类准确率应该是 100%,1 类应该是 98% 左右

一个错误分类是否会大大降低第 1 类的准确度?这就是我在 MAtlab 中计算各个类精度的方法。

cmMatrix  = 
1473    0
1       26

acc_class0  = 100*(cmMatrix(1,1))/1500;
acc_class1= 100*(cmMatrix(2,2))/1500;

【问题讨论】:

标签: matlab machine-learning classification


【解决方案1】:

如果所有内容均已正确分类,则您的计算将表明第 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,:));

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 2018-02-09
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 2018-07-20
    • 2021-02-20
    相关资源
    最近更新 更多