前言
前一篇文章讲了Precision和Recall。但只是在一个简单的二分分类的情况下进行评价。当基于同一数据集多次训练/测试不同模型,或者基于多个数据集测试评价同一个模型,再或者执行多分类的任务时,会产生很多混淆矩阵(上一篇文章划分的矩阵,TP,FP,TN,FN)。
怎么评价?
macro-P宏查准率和macro-R宏查全率以及macro-F1
由上面公式我们可以看出,就是对获得的多个混淆矩阵,分别求得P和R,然后算术平均,获得macro-P 和 macro-R。macro-F1则是由macro-P 和 macro-R计算得来。
micro-P微查准率和micro-P微查全率以及micro-F1
与上面的宏不同,微查准查全,先将多个混淆矩阵的TP,FP,TN,FN对应位置求平均,然后按照P和R的公式求得micro-P和micro-R。最后根据micro-P和micro-R求得micro-F1
Average Precision (AP)
AP是对不同召回率点(查全率Recall)上的Precision进行平均。
- 未插值的AP: 某个查询Q共有6个相关结果,某系统排序返回了5篇相关文档,其位置分别是第1,第2,第5,第10,第20位,则AP=(1/1+2/2+3/5+4/10+5/20+0)/6
- 插值的AP:在召回率分别为0,0.1,0.2,…,1.0的十一个点上的正确率求平均,等价于11点平均
- 只对返回的相关文档进行计算的AP, AP=(1/1+2/2+3/5+4/10+5/20)/5,倾向那些快速返回结果的系统,没有考虑召回率。
Mean Average Precision(mAP)
上文可以看出,AP只是对一个混淆矩阵进行计算的。基于多个数据集测试时,或者执行多分类任务时(比如目标检测算法中,有很多分类对象),会产生多个AP,那么,参照macro-P的计算方法,将多个AP进行平均,得到mAP。