什么是MAP?

作者: Zygmunt Z. | 2012-08-09 | Kaggle, basics

链接: http://fastml.com/what-you-wanted-to-know-about-mean-average-precision

翻译: Nansen | 2019-10-30 | Cynomys,ML

What you wanted to know about Mean Average Precision ?

众所周知,如果此间有一群用户以及一些项目(比如电影、歌曲或者某些别的什么活儿之类的),每个用户都将会对对某些题目感兴趣
因此响应客户需求,我们需要对每个用户推荐一些项目(不妨把客户请求推荐的项目数量设为x)
之后用户将会对结果通过mean average precisionor (或者简称MAP), metric对结果进行评估
确切地说,MAP @ x 就是在让我们为某个用户推荐“一定数量(以下用 x 代替)的项目”
照应题目,接下来准确地来讲述什么是MAP

什么是MAP?

首先,我们先对其中的 M 进行剖析,此M既为mean,概括为所有用户的AP(average precisions)的均值,
将此mean结合Average Precision由此而来Mean Average Precision。
举个例子,假设我们有1000个用户,我们将每个用户的AP求和,再将这个“和”除以1000个客户量。这就是MAP的由来。

其次,我们讨论什么是AP(Average Precision),
实际来讲我们没必要完全了解,但是我们需要了解关于AP的以下几点就够了:

我们最多能为每个用户推荐 x 个项目
我们为客户提供的推荐应该尽量达到 x 个
事项顺序非常重要,首要提供相关性最高的推荐,之后才是我们觉得相关性不那么高的推荐

因此依照上述条件顺序可以大体上选出x个最好的推荐项目

接下来是临一种理解AP(Average Precision)的方式。
维基百科上说AP(Average Precision)是用来对文件检索进行评分的,
就好比,我们在谷歌搜索框输入某查找项,它会反馈我们十个相关项,
对于用户而言,这十个相关项都围绕搜索框内的查找项是最好的
然而不尽人意的时候总是存在的,比如,其中有五个相关项与查找项相差甚远,那么最好先显示另外五个更精确的相关项。
如果不按照这样排列,前五个先展示相关性更低的选项,那么相关性高的就得从第六个开始,那这样我们都会觉得不太行。
AP指数就是反应这一现象的。

这个名字对我们有误导性;我们更推崇“依次事项的 相关值”一类。

此公式为: sum i=1:x of (precision at i * change in recall at i)

precision at i 是在第一次i个推荐中相关性高的推荐所占的百分比。
如果在i处的项目是精确的(对每个精确的项目而言都是如此),那么Change in recall at i 是 1/x ,否则是0。
假设相关项的数目大于或等于x:r>=x。
如果不正确,则每个精确的i处的recall更改为1/r,而不是1/x。

对于感兴趣的人,Ben Hamner为kaggle实现了一系列度量,其中包括各种语言的MAP和AP。
您可能需要查看一些测试用例(在Matlab中)来检查您对如何计算AP的理解。

例如 test_case(1:5, [6 4 7 1 2], 2, 0.25);

这意味着实际项目是1:5,即[1 2 3 4 5]。我们推荐[6 4 7 1 2],我们通过交集得出4,1和2为正确项,但是其中依然有一些不正确的联想项。
它就是AP@2
所以,事实上只有两个最初的预测是重要的:6和4。
第一个是错误的,所以precision@1为0。第二个是对的,所以precision@2是0.5。则change in recall分别为0和0.5(即1/x),
因此AP@2 = 0 * 0 + 0.5 * 0.5 = 0.25

This is an open source AI organization from China. Welcome friends who are interested in AI to join.

在这里插入图片描述
QQ Group: 584399282

Github:https://github.com/opensourceai

如有侵权,请发送邮箱至quan.chen@cynomys.net

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值