什么是微平均和宏平均
很多时候,我们在计算指标时会发现有多种可能的方法。比如最简单的计算多类分类的准确率,一种计算方法是把所有类别的一次性都考虑进来,计算类别预测的准确率;另外还有一种是对每个类别分开考虑,计算单独每个类别的准确率,最后再进行算术平均得到该测试集的准确率。其实,第一种方法(也是最常用的方法)就是micro-average(微平均),第二种方法则是macro-average(宏平均)。
举例
假设我们有一个两类鉴别模型和测试集,该模型在该测试集上预测结果与实际类别对比可得:
第一类别
True positive (TP1)= 12
False positive (FP1)=9
False negative (FN1)=3
Then precision (P1) and recall (R1) will be 57.14 and 80
此处的TP、FP、TN、FN的含义为:真阳(查到且正确)、假阳(查到但不正确)、真阴(系统中不存在匹配项且没查到)和假阴(系统存在匹配项但没查到)。
查全率: recall rate = sum(tp) / (sum(tp) + sum(fn))
查准率: precision rate = sum(tp) / (sum(tp) + sum(fp))
第二类别
True positive (TP2)= 50
False positive (FP2)=23
False negative (FN2)=9
Then precision (P2) and recall (R2) will be 68.49 and 84.75
微平均
Micro-average of precision = (TP1+TP2)/(TP1+TP2+FP1+FP2) = (12+50)/(12+50+9+23) = 65.96
Micro-average of recall = (TP1+TP2)/(TP1+TP2+FN1+FN2) = (12+50)/(12+50+3+9) = 83.78
宏平均
Macro-average precision = (P1+P2)/2 = (57.14+68.49)/2 = 62.82
Macro-average recall = (R1+R2)/2 = (80+84.75)/2 = 82.25