在二分类中,结果的评价指标有召回率、精准率和f1值,将结果分为四类TP(true positive)、TN(true negative)、FP(false positive)、FN(false negative),那么三个指标的计算表达式分别是
二分类可以指定正例和负例, 那么在多分类任务中,这三个指标又将如何刻画呢,F1_measure依赖于recall和precision,跟二分类相同,下面就介绍一下精准率和召回率的计算,假设原始数据如表格所示:
真实 | 预测 |
A | A |
A | A |
A | B |
A | C |
B | B |
B | B |
B | C |
C | B |
C | C |
通过将数据进行转置处理,如下表所示,行数据表示真实标签,列数据表示预测标签。
A | B | C | |
A | 2 | 1 | 1 |
B | 0 | 2 | 1 |
C | 0 | 1 | 1 |
根据表格数据,可分别计算A、B、C的召回率和精准率,
recall(A) = 2/4 precision(A) = 2/2
recall(B) = 2/3 precision(B) = 2/4
recall(C) = 1/2 precision(C) = 1/3
总的召回率和准确率为三者加权求和
recall = (recall(A) + recall(B) + recall(C)) / 3
precision = (precision(A) + precision(B) + precision(C)) / 3
这种计算方法也就是所谓的macro(宏观)计算,与之对应的是micro(微观)计算,个人感觉这两个词有点用反了,宏观应该是不考虑细节的,这里暂且按他的定义来,那么如何计算micro呢,同样,我们先用表格整理数据
TP | FN |
5 | 4 |
FP | TN |
4 | ~ |
是否有种回归到二分类计算的感觉,bingo, micro计算等同于二分类计算,唯一需要注意的是这四个象限的数据从何而来,
TP:真实值等于预测值的个数;
FN/FP:真实值不等于预测值的个数,
一般情况下, micro的计算结果要大于macro的计算结果, 这没有什么大的影响, 对比的时候保持标准一致就行。
顺便提一个指标概念准确率(accuracy), 相对于精准率(precision), 主要是针对的统计对象不同, 精准率是指正确被检索的item占所有实际被检索到的item的比例,而准确率是指正确分类的样本数与总样本数之比,包括全量的正负样本