这是只鸟... 这是个飞机... 这... 取决于你的分类器阈值

信息检索系统(例如搜索引擎)的评估主要关注于两件事情:

1.获取到的数据的相关程度?(准确率)
2系统是不是到底获取到了多少真实的相关文档(召回率)

对于不熟悉的朋友,我将会解释到底什么是准确率和召回率;对于已经很熟悉的朋友,在比较precision-recall曲线时,我将解释文献中的一些混淆点。

鹅和飞机

假设你有一个包含飞机和鹅的图片集合

这里写图片描述
你想要系统可以获取到所有飞机图片,并且不包含一张鹅的图片。假设你已经从这个集合中获取到了一个图片集,我们可以定义四个名词:

True positives:系统正确获取到的飞机图片个数
True negatives : 系统正确性的未能获取到的鹅的图片
False positives:系统错误的获取到的额的图片,认定它们是飞机
False negatives: 系统错误的没有获取到的飞机图片,认定它们是鹅

在这个例子中, 有三个true positives 和一个false positive.

利用我刚才定义的术语,在这个例子中,有三个true positive和一个false positive。那么又有多少false negative和true negative呢?

有两个false negative(系统未能获取的飞机图片)和四个true negative(系统没有获取到的鹅的图片)。

准确率和查全率

现在,你可以更加精确的理解什么是准确率和查全率了。

准确率是true positive占获取到的结果数目的比值,即:

这里写图片描述

上式中n等于系统获取到的所有图片数目(tp+fp)。

查全率是系统获取到的飞机占总飞机数目的比例,即:

这里写图片描述

在上面的例子中,precision=3/(1+3)=0.75,recall=3/(3+2)0.6。

也就是说,获取到的结果中75%是飞机,对整个数据集合来说60%的飞机被索引出来了。

调节阈值
如果我们对以上的表现不满意怎么办?我们可以要求系统返回更多例子。而这可以通过放宽我们设定的系统识别飞机的阈值来完成。我们也可以要求系统更加严格,返回更少例子。在上面的实验中,系统获取到四张图片,对应一个特定的阈值(如下由蓝线所示),系统获取到的图片似乎都比那个阈值表现的更像飞机。

这里写图片描述

我们可以上下移动阈值获取不同的返回集合。在每一个阈值点,我们可以获取不同的准确率和查全率值。具体来说,如果我们仅仅获取到顶部的例子,准确率为100%查全率为20%;如果我们取到前面的两个例子,准确率为100%查全率为40%;下面的表格给出基于上面的假设排序情况下在所有可能的阈值情况下准确率和查全率的值。

这里写图片描述

Precision-recall 曲线
一个很好的表现分类器的性能方式是查看precision和recall是怎样随着阈值变化而变化。好的分类器将善于在列表的顶部排序真实飞机图片,在获取鹅图片之前可以获取到许多飞机图片:也就是说在recall值逐步增加的时候,precision值保持在较高水平。差的分类器在提高recall值的时候precision会损失严重。通常出版物将会展示一个precision-recall曲线来表现这个权衡是怎样适配他们的分类器的。下面是一个精度p作为召回r的函数的图。

这里写图片描述

平均准确率
除了比较曲线图,有时候单个数值来刻画分类器的性能会更加有用。一个通用的度量标准是平均准确率(average precision)。这实际上意味着几件事情之一(没懂这句话意思 囧)。

average precision

严格来讲,平均准确率是当recall值在0-1之间所有值所对应的准确率的平均值。

这里写图片描述

这个等价于取曲线下面的面积。实践中,积分近似的等价于在每一个可能的阈值处的精确率和召回率的变化值的乘积之和:
这里写图片描述

上式中N是集合中的图片总数,P(k)是在k个图像截止时的精确度,delta r(k)是召回率在k-1截止和k截止间的改变值。在我们的例子中, 就是(1 * 0.2) + (1 * 0.2) + (0.66 * 0) + (0.75 * 0.2) + (0.6 * 0) + (0.66 * 0.2) + (0.57 * 0) + (0.5 * 0) + (0.44 * 0) + (0.5 * 0.2) = 0.782.

注意到在某一点recall值不变的话,sum值是不会变的(在图中,这些点位于图形的垂直部分,在那些位置图形直线下降)。这是有道理的,因为我们计算的是曲线下面的面积,那些位置是不会增加任何面积的。

Interpolated average precision
一些作者选择了一种称为插值平均精度的替代近似。通常他们也被叫做average precision。 不向Average precision使用P(k),Interpolated average precision在k个图像的检索截止处的精确度使用:

这里写图片描述

换句话来说,interpolated average precision使用了由所有具有较高recall值的切分点中观察到的最大准确率进行计算,而不是在k切分点处观察到的准确率。完整的计算方式如下:

这里写图片描述

形象化表示如下,这里是interpolated average precision与 approximated average precision的比较(为了展示一个更有意义的图像,这里的示例不同于前面的例子)


这里写图片描述

此外,在计算interpolated average precision时,在取样位置上存在许多变化。有一些在固定的11个点位置(0-1之间:0, 0.1, 0.2, …, 0.9, 1.0)进行取值,这被叫做11-point interpolated average precision。另外一些则在召回率每k个改变位置进行抽样。

混淆点
一些重要的出版物使用interpolated average precision作为它们的度量,并仍称其为 average precision。例如,PASCAL Visual Objects Challenge在2007年就开始使用这种度量方式了。我认为他们的理由不是很充分。他们说,“the intention in interpolating the precision/recall curve in this way is to reduce the impact of the “wiggles” in the precision/recall curve”。无论如何,每个人都在这个指标上相互比较,所以在竞争中,这不是问题。 但是,当比较“平均精度”值和其他公布的结果时,我们其他人需要小心。 我们是否使用了VOC的插值平均精度,而以前的工作使用了非插值平均精度? 与以前的工作相比,这会错误地显示新方法的改进。

翻译文档:
https://sanchom.wordpress.com/tag/average-precision/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值