什么是MAP?

作者: Cynomys土拨鼠 | 来源:发表于2019-10-31 20:38 被阅读0次

    公众号:@OpenSourceAI

    地址: http://mp.weixin.qq.com/s/73pEF0thhLIDM4TcEXdztw

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

    翻译: 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

    相关文章

      网友评论

        本文标题:什么是MAP?

        本文链接:https://www.haomeiwen.com/subject/xqqxbctx.html