【推荐搜索评价指标二】MAP-概念-原理-推导-代码

引入AP or MAP (Mean average precision)的背景

平时大家多用准确率和召回率衡量模型效果。但是,准确率和召回率都只能衡量检索性能的一个方面,最理想的情况肯定是准确率和召回率都比较高。那么如何找到准确率和召回率的平衡点呢?AP来了。

AP是什么?AP如何计算?

首先说下AP、MAP的定义。

(1)Average precision(AveP):平均准确率

当我们想提高召回率的时候,肯定会影响准确率,所以可以把准确率看做是召回率的函数,即:P=f(R),也就是随着召回率从0到1,准确率的变化情况。那么就可以对函数P=f(R)在R上进行积分,可以求PP的期望均值。公式如下: 

其中rel(k)表示第k个文档是否相关,若相关则为1,否则为0,P(k)表示前k个文档的准确率。 AveP的计算方式可以简单的认为是: 

需要注意的地方:R究竟表示什么?

R表示相关文档的总个数,position(r)表示,结果列表从前往后看,第r个相关文档在列表中的位置。比如,有三个相关文档,位置分别为1、3、6,那么AveP=1/3×(1/1+2/3+3/6)。在编程的时候需要注意,位置和第i个相关文档,都是从1开始的,不是从0开始的。

这里举个例子,来理解下这个公式的计算。

 

AveP意义是在召回率从0到1逐步提高的同时,对每个R位置上的P进行相加,也即要保证准确率比较高,才能使最后的AveP比较大。

(2)Mean average precision(MAP):多次请求下,AP的均值

 

  • 单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值。
  • 主集合的平均准确率(MAP)是每个主题的平均准确率的平均值。
  •  

  例如:假设有两个主题,主题1有4个相关网页(假设q1有4个相关d),主题2有5个相关网页(假设q2有5个相关d)。某系统对于主题1检索出4个相关网页 ,其rank分别为1, 2, 4, 7;对于主题2检索出3个相关网页,其rank分别为1,3,5 。对于主题1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于主题2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。则MAP= (0.83+0.45)/2=0.64。” 

  •  需要注意:在利用MAP的评估的时候,需要知道:1. 每个q有多少个相关的d; 2. 排序结果中这些d的位置 3. 相关的定义

MAP的优点

  • 优点:MAP 是反映系统在全部相关文档上性能的单值指标。系统检索出来的相关文档越靠前(rank 越高),MAP就应该越高。如果系统没有返回相关文档,则准确率默认为0。
  • 不足:MAP的衡量标准比较单一,q(query,搜索词)与d(doc,检索到的doc)的关系非0即1,核心是利用q对应的相关的d出现的位置来进行排序算法准确性的评估。

计算MAP的代码

 

 

参考:

1.牛逼的解释和推导:https://medium.com/swlh/rank-aware-recsys-evaluation-metrics-5191bba16832

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值