菜鸟驿|多分类的精准率和召回率

        在二分类中,结果的评价指标有召回率、精准率和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的比例,而准确率是指正确分类的样本数与总样本数之比,包括全量的正负样本

你可能感兴趣的:(自然语言处理,程序员,机器学习)