本文转载自【胖喵】博主,详细请看https://www.cnblogs.com/by-dream/p/9403984.html

1. CG:累计增益

CG,cumulative gain,只考虑到了相关性的关联程度,没有考虑到位置的因素。它是一个搜素结果相关性分数的总和。指定位置p上的CG为:

reli 代表i这个位置上的相关度。

举例:假设搜索“篮球”结果,最理想的结果是:B1、B2、 B3。而出现的结果是 B3、B1、B2的话,CG的值是没有变化的,因此需要下面的DCG。

2. DCG:折损累计增益

DCG, Discounted 的CG,就是在每一个CG的结果上处以一个折损值,为什么要这么做呢?目的就是为了让排名越靠前的结果越能影响最后的结果。假设排序越往后,价值越低。到第i个位置的时候,它的价值是 1/log2(i+1),那么第i个结果产生的效益就是 reli * 1/log2(i+1),所以:

当然还有一种比较常用的公式,用来增加相关度影响比重的DCG计算方式是:

3. NDCG:归一化折损累计增益

Normalized 的DCG,由于搜索结果随着检索词的不同,返回的数量是不一致的,而DCG是一个累加的值,没法针对两个不同的搜索结果进行比较,因此需要归一化处理,这里是处以IDCG。

IDCG为理想情况下最大的DCG值。

其中 |REL| 表示,结果按照相关性从大到小的顺序排序,取前p个结果组成的集合。也就是按照最优的方式对结果进行排序。

4. 实际案例

假设搜索回来的5个结果,其相关性分数分别是 3、2、3、0、1、2

那么 CG = 3+2+3+0+1+2

可以看到只是对相关的分数进行了一个关联的打分,并没有召回的所在位置对排序结果评分对影响。

而我们看DCG:

所以 DCG  = 3+1.26+1.5+0+0.38+0.71 = 6.86

接下来我们归一化,归一化需要先结算 IDCG,假如我们实际召回了8个物品,除了上面的6个,还有两个结果,假设第7个相关性为3,第8个相关性为0。那么在理想情况下的相关性分数排序应该是:3、3、3、2、2、1、0、0。计算IDCG@6:

所以IDCG = 3+1.89+1.5+0.86+0.77+0.35 = 8.37

最终 NDCG@6 = 6.86/8.37 = 81.96%

NDCG:推荐系统/搜索评价指标相关推荐

  1. 推荐系统的评价指标总结

    评价一个推荐系统的好坏的重要性不用多少.本文的总结非常的全面,相信读者通过阅读本文以及本文参考的文献可以对推荐系统的评价指标有比较全面的掌握. 对推荐系统的研究一个重要的环节是如何评价一个推荐算法的好 ...

  2. 推荐系统的评价指标笔记(NDCG、MAP、AUC、HR、MRR)

    NDCG Normalized Discounted Cummulative Gain 累积增益CG,CG表示每个推荐结果相关性的分数的累加, C G k = ∑ i = 1 k r ( i ) CG ...

  3. 推荐系统常用评价指标:NDCG、Recall、Precision、Hit Rate

    评价指标 NDCG Normalized Discounted Cumulative Gain(归一化折损累计增益) NDCG用作排序结果的评价指标,评价排序的准确性. 推荐系统通常为某用户返回一个i ...

  4. 搜索评价指标——NDCG

    概念 NDCG,Normalized Discounted cumulative gain 直接翻译为归一化折损累计增益,可能有些晦涩,没关系下面重点来解释一下这个评价指标.这个指标通常是用来衡量和评 ...

  5. 推荐系统常用评价指标和代码实现

    评价指标 Recall 名称: 召回率(真阳性率) 意义:在推荐系统中,我们只关心正确推荐的有多少,也就是用户真实喜欢的,并不会关心推荐错的,所以我们用召回率,而不是准确率: 理解这个前提:混淆矩阵 ...

  6. 推荐系统常用评价指标

    目录 1.命中率HR(Hits Ratio) 2.归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG) 3.平均倒数排名(Mean Recipro ...

  7. 深入理解搜索引擎——搜索评价指标

    搜索引擎,在做好query理解.索引召回以及排序模型之后,就能直接推上线了吗?答案是否定的,还需对其性能和质量进行评测.性能无非是对时间和空间的运行效率作评测,不细讲,今天讲讲搜索引擎的质量评测.通过 ...

  8. 推荐系统的评价指标及其Python实现

    文章目录 摘要 一.用户满意度 二.预测准确度 1.流程 2.评分推荐 3.topN推荐 4.评分推荐和topN推荐比较 三.覆盖率 1.定义 2.信息熵:![在这里插入图片描述](https://i ...

  9. 【0】推荐系统中评价指标

    1.离线评估 在推荐系统的评估过程中,离线评估往往被当做最常用也是最基本的评估方法.顾名思义,离线评估是指在将模型部署于线上环境之前,在离线环境中进行的评估.由于不用部署到生产环境,离线评估没有线上部 ...

最新文章

  1. 古代password
  2. 苹果服务器消息转发,iOS 消息推送原理及简单实现
  3. Codeforces-722C-Destroying Array(离线并查集)
  4. Coding:实现memcpy函数
  5. uni-app-微信小程序实现输入卡号 每四个为一组中间为空格(也可以取消空格)
  6. C语言试题十一之计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n).
  7. 【重难点】【事务 03】分布式事务
  8. zend studio7 在 ubuntu9.10 中按钮失效只能用回车解决办法
  9. keepalived基本应用解析
  10. c语言万年历的原理,[原创] C语言实现:万年历(1)
  11. dcdc芯片效率不高的原因_浅析影响DC-DC转换器效率的主要因素
  12. NETBASE DAY04(03):华为交换机设置超时闲置时间,密码以及恢复出厂设置
  13. 计算机win10+上锁,win10系统给电脑屏幕上锁的操作方法
  14. vue table表格中只有表头加竖线分割
  15. 转载了别人的cocos2d-x的学习笔记
  16. 周期和频率之间的换算
  17. 哪个录音软件最好用?推荐几款录音软件给你
  18. 【有利可图网】PS教程:简单制造火焰文字特效
  19. 如何通俗地解释欧拉公式(e^πi+1=0)
  20. android studio断点不生效,Android Studio调试设置的断点无效

热门文章

  1. Laravel3 学习笔记
  2. 在tomcat中使用context节点部署工程
  3. iOS 使用GPUImage实现iOS 7的模糊效果
  4. Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
  5. 开源监控软件ganglia安装手册
  6. NYOJ 767 因子和
  7. SpringMVC+HibernateValidator,配置在properties文件中的错误信息回显前端页面出现中文乱码
  8. 数据分析方法论2——流量分析
  9. 如何用ASPxGridView绑定多表关联的查询结果
  10. java中outer的使用