首页天道酬勤recall指标,precision怎么算

recall指标,precision怎么算

张世龙 06-24 05:18 38次浏览

Recall、Precision、AP、mAP的计算方法(一看就知道系列) mAP的全名是mean Average Precision。 这里的平均处理是在不同的Recall下计算的,所以要知道什么是地图,首先需要知道Recall

Recall and Precision recall和precision是二分类问题中常用的评价指标,通常关注的类为正类,其他类为负类,分类器的结果在测试数据上可能有4种:

举例说明:

假设你在数据集上训练了一个识别猫的模型。 测试集包含100个样本,其中猫60只,其他40bldxmy小狗。 经测试,猫片共有52张,其中确实猫片共有50张,即模型中未检测到10只猫,且检测结果有误2bldxmy。 猫更可爱,所以我们很关注猫的检查情况,所以这里把猫当成正类:

因此,TP=50、TN=38、FN=10、FP=2、P=50/52、R=50/60、acc=(50 38 )/(50 38 10 2)

为什么要部署recall和precision? recall和precision是模型性能的两个不同维度的测量。

在图像分类任务中,经常会考察accuracy,例如ImageNet的评价标准。 然而,具体来说,对于各个类别,如果recall高而precision低,例如大多数汽车被识别,但很多卡车也被误认为汽车,则对应一个原因。 如果recall低、precision高,例如检测到的飞机结果是准确的,但是很多飞机没有被识别,还有另一个原因。

Recall度量的是「查全率」所有的正样本是不是都被检测出来了。 例如,在肿瘤预测中,模型要求更高的recall,每一个肿瘤都不容忽视。

Precision度量的是「查准率」在所有检测出的正样本中是不是实际都为正样本。 例如垃圾邮件判断等场景,要求更高的precision,可以保证放入回收站的是垃圾邮件。

mAP(meanaverageprecision )在寻找资料的过程中,发现从信息检索的角度更容易理解map的意思。

在信息检索中,例如我们检索一个项目。 相关项目在数据库中共有5个,但搜索结果共有10个。 涉及的项目包括4个。 在这种情况下,精度precision=与结果相关的条目数/返回总条目数,在此为4/10。 召回率recall=返回结果的相关条目数/相关条目总数。 这里是4/5。 但是在搜索系统中,相关条目在结果中的顺序对用户体验有很大的影响,我们希望相关结果越靠前越好。 例如,在本例中,四个条目出现在位置查询1(1、2、4、7 )中比查询2 ) 3、5、6、8 )更有效,但两者的precision相同。 此时,只靠precision还不足以衡量系统的好坏,引入了AP(averageprecision ) ——在不同召回率下的平均precision。 关于上面的两个例子。

查询一:

查询二:

AP (查询1 )=(113/44/70 )/5=0.664

AP (查询2 )=(1/32/53/64/8 ) )/5=0.347

此时map=(0.664 ) 0.347 )/2=0.51

分析:在以上例子中,当5个条目全部被检索到,且分别位于rank=1、2、3、4、5的位置时,结果最好。 在这种情况下,AP=1。 因此,即使检索到所有条目,也可以认为结果的优先顺序决定系统的好坏。 这个结论被用于目标检测。

目标检测中的mAP图像分类任务一般采用accuracy测量模型的准确性,目标检测任务,如对测试集中的所有图像共检测1000个object。 (这里的object虽然不是图像的数量,但由于1张中可能含有几个object,因此这两个模型都正确检测了900个object(IOU规定的阈值)。 与图像分类任务不同,目标检测可能是重复检测,因此不是n to n的问题。

在上面的示例中,使用分类任务accuracy来测量模型的性能也不是一件容易的事。 因为模型a预测了2000个结果,可能击中了900个结果,而模型b可能只预测了1200个结果。 模型b的性能明显优于a。 模型a就像广泛撒网,因为误检测的概率很高。 想象一下,将模型a用于自动驾驶的汽车时,会发生很多误检测对汽车的安全性和舒适性有很大的影响。

在目标检测任务中,该如何测量模型的性能? 其中的一个标准就像信息检索一样,不仅要测量检测到正确目标的数量,还应该评估模型能否在较高的precision上检测到目标。 也就是说,在某个类别的检测中,在检测出正确的目标之前,有很多判断错误吧。 AP越高,表示检测错误越少。 对所有类别的AP求平均就可以得到mAP。

地图的计算方法:

这里讲一下VOC2007和VOC2010的计算方法。

voc2007的计算方法:

 在计算AP时,首先要把结果按照置信度排序(排序是为了方便计算,后面看例子很好懂不难),公式如下:

 其实也叫11点法,就是将结果先按置信度顺序排序,然后分别将recall大于0,大于0.1,大于0.2的…大于1的数据找出来,然后分别取这11组数据中的precision最大的找出来,这时,我们将会得到11个precision值。将其加起来除11j即为mAP了。

voc2010的计算方法:

 比起07年,10年以后的新方法是取所有真实的recall值,按照07年的方法得到所有recall/precision数据点以后,计算recall/precision曲线下的面积。差不多的方法吧,改成了求面积。

举例说明:
 目标检测中,这里假设我们算一个目标的AP。我们有以下输出(BB表示Bounding Box序号,IOU>0.5时GT=1):

 因此,我们有 TP=5 (BB1, BB2, BB5, BB8, BB9), FP=5 (重复检测到的BB1也算FP)。除了表里检测到的5个GT以外,我们还有2个GT没被检测到,因此: FN = 2. 这时我们就可以按照Confidence的顺序给出各处的PR值,如下:


 计算出每个类别的AP以后,对于所有类别的AP取均值就得到mAP了。

参考链接:https://zhuanlan.zhihu.com/p/43068926

内容安全准确率召回率,precision方法 precision,查准率和查全率