3

this问题我询问了有关精度 - 召回曲线的说明。关于(平均值)平均精度的混淆

特别是,我问我们是否必须考虑固定数量的排名来绘制曲线,或者我们可以合理地选择自己。根据answer,第二个是正确的。

但是现在我对平均精度(AP)值有一个很大的怀疑:AP用于从数值上估计给定某个查询的算法有多好。平均平均精度(MAP)是多个查询的平均精度。

我的疑问是:如果AP根据我们检索的对象数量而变化,那么我们可以调整这个参数以使我们更有优势,因此我们可以显示最佳的AP值。例如,假设p-r曲线奇妙地执行到10个元素,然后非常可怕,我们可以“考虑”仅考虑前10个元素来“欺骗”计算(M)AP值。

我知道这可能听起来令人困惑,但我没有发现任何关于此的任何地方。

回答

4

AP是精度 - 召回曲线下的面积,精度 - 召回曲线应该在整个返回的排序列表上计算。

通过调整返回的排名列表的大小来欺骗AP是不可能的。 AP是精度 - 召回曲线下方的区域,其绘制精度作为回忆的函数,其中回忆是相对于存在于真实中的正数的总数的返回正数的数量,而不是相对于数字中的正数的数量。返回列表。所以,如果你裁剪清单,你所做的只是裁剪精度 - 召回曲线而忽略绘制尾部。由于AP是曲线下方的区域,裁剪列表会减少AP,因此调整排序列表大小时没有任何智慧 - 如果返回整个列表,则会获得最大AP。您可以从the code you cited in your other question看到这个例如 - 裁剪名单简单地对应于

for (; i<ranked_list.size(); ++i) { 

更改为

for (; i<some_number; ++i) { 

导致的ap较少的增量(所有增量都是非负为old_precisionprecision是非负和recall是非递减的),因此AP值较小。

实际上,出于纯粹计算的原因,您可能希望以合理的数量裁剪列表,例如, 10k,因为AP的变化不大可能会很大,因为precision @ large_number很可能是0,除非你有非常多的正数。

您的困惑可能与某些常用功能(例如VLFeat的vl_pr)计算精度 - 回忆曲线的方式有关,因为它们假定您已向其提供了整个排名列表,并因此计算出地面上的正数总数通过查看排名列表而不是基本事实本身来确定真相。因此,如果您在裁剪列表上天真地使用vl_pr,您确实可能会欺骗它,但那将是无效的计算。我同意这个功能的描述不是100%清楚,但是如果你更详细地检查documentation,你会发现它提到了NUMNEGATIVESNUMPOSITIVES,所以如果你给出的是一个不完整的排名表,你应该设置这两个数量让函数知道如何正确计算精度 - 召回曲线/ AP。现在,如果您使用vl_pr绘制排名列表的不同作物,但对于所有函数调用使用相同的NUMNEGATIVES和NUMPOSITIVES,则您会看到精确回忆曲线只是彼此的作物,正如我上面所解释的(我没有'我没有检查过,因为我没有matlab在这里,但我确定是这种情况,如果不是,我们应该提交一个bug)。

+0

我明白你的答案,再次感谢你一如既往。我正在牛津大厦数据集上测试VLFeat VLAD,因为整个数据集大约是5k图像,我将它们全部作为sorted_list传递给[this](http://www.robots.ox.ac.uk/~vgg/ data/oxbuildings/compute_ap.cpp)code;)一开始我以为我们只需要通过前10名(或类似的)图片作为ranking_list,现在我将通过它们的所有5k!再次感谢! – justHelloWorld

3

你说的是部分正确的。如果您获得合理的MAP或AP在顶部N检索到的文档,它的罚款。它没有作弊,因为您的IR系统正在检索返回文档顶部N中的相关文档,但是它仍然缺少一些相关文档。 请注意,对于IR系统,如果它无法检索所有相关文档,但将排名较高的所有检索到的相关文档进行排名,并且这是AP所测量的,则它更好。(更高的排名意味着排名1或2,而不是100或101)

考虑一个例子,你有两个相关的文件,一个返回等级1,另一个返回等级50.现在,如果你计算MAP或AP的前10名退回文件,那么你必须报告答案为[email protected][email protected]。一般来说,AP意味着所有退回文件的平均精确度,但如果您考虑顶部N文档,则您的度量标准将为[email protected]而不是仅AP和请注意,它不会作弊!但是,如果您计算[email protected]并报告为AP,那么您将向读者提供部分信息。

有关MAP的重要事实是 - 如果相关文档永远不会被检索到,我们假设与该相关文档相对应的精度为零。在计算AP时,我们将累计精度除以全部相关文档。所以,当你计算[email protected][email protected]这意味着你只关心红外系统返回的顶级文件N。例如,我在one of my research works中使用了[email protected]

如果您对AP或MAP有困惑,可以看我的简短回答,解释他们here。希望它能帮助你澄清你的困惑。

+0

非常感谢,这完全澄清了任何疑问。我在[this](https://www.robots.ox.ac.uk/~vgg/publications/papers/philbin07.pdf),[this](https:// hal。 inria.fr/inria-00633013/file/jegou_aggregate.pdf)和[this](https://lear.inrialpes.fr/pubs/2010/JDSP10/jegou_compactimagerepresentation.pdf)论文报道了“MAP”而不是“MAP @ N'。但是,没关系,我会按照您的指示,再次感谢! – justHelloWorld

+0

请看看[这个问题](http://stackoverflow.com/questions/41269059/what-is-the-correct-version-of-average-precision) – justHelloWorld