推荐系统常用的评价指标:HR、NDCG、MRR
推荐系统常用的评价指标
- 应用背景介绍
- 评价指标的知识来源
- 命中率HR(Hits Ratio)
- 归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG)
- 平均倒数排名(Mean Reciprocal Rank,MRR)
- 实例
- 参考
应用背景介绍
我们用一张表格展示推荐系统向用户推荐的列表与用户真实的访问项目,如下:
用户 | 真实值 | 推荐列表 |
---|---|---|
A | 12 | 3,10,15,12,17 |
B | 3 | 20,15,18,14,30 |
C | 5 | 2,5,7,8,15 |
D | 14 | 56,14,25,12,19 |
E | 20 | 21,24,36,54,45 |
评价指标的知识来源
评价指标的来源是根据TKDE-2019中的一篇论文使用的方法:
命中率HR(Hits Ratio)
意义:关心用户想要的,我有没有推荐到,强调预测的“准确性”
HR=1N∑i=1Nhits(i)HR=\frac{1}{N}\sum_{i=1}^{N}{hits(i)}HR=N1i=1∑Nhits(i)
参数说明:
N:用户的总数量
hits(i):第i个用户访问的值是否在推荐列表中,是则为1,否则为0
归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG)
意义:关心找到的这些项目,是否放在用户更显眼的位置里,即强调“顺序性“
NDCG=1N∑i=1N1log2(pi+1)NDCG=\frac{1}{N}\sum_{i=1}^{N}\frac{1}{log_{2}{(p_{i}+1)}}NDCG=N1i=1∑Nlog2(pi+1)1
参数说明:
N:用户的总数量
pi:第i个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则pi→∞p_{i}:第i个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则p_{i}\to\inftypi:第i个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则pi→∞
平均倒数排名(Mean Reciprocal Rank,MRR)
意义:关心找到的这些项目,是否放在用户更显眼的位置里,即强调“顺序性“
MRR=1N∑i=1N1piMRR=\frac{1}{N}\sum_{i=1}^{N}\frac{1}{{p_{i}}}MRR=N1i=1∑Npi1
参数说明:
N:用户的总数量
pi:第i个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则pi→∞p_{i}:第i个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则p_{i}\to\inftypi:第i个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则pi→∞
实例
用户 | 真实值 | 推荐列表 |
---|---|---|
A | 12 | 3,10,15,12,17 |
B | 3 | 20,15,18,14,30 |
C | 5 | 2,5,7,8,15 |
D | 14 | 56,14,25,12,19 |
E | 20 | 21,24,36,54,45 |
代码如下:
import math# 推荐列表
R = [[3, 10, 15, 12, 17], [20, 15, 18, 14, 30], [2, 5, 7, 8, 15], [56, 14, 25, 12, 19], [21,24,36,54,45]]
# 用户访问列表
T=[[12],[3],[5],[14],[20]]def indicators_5(rankedList, testList):Hits_i = 0Len_R = 0Len_T = len(testList)MRR_i = 0HR_i = 0NDCG_i = 0for i in range(len(rankedList)):for j in range(len(rankedList[i])):if testList[i][0]==rankedList[i][j]:Hits_i+=1HR_i+=1# 注意j的取值从0开始MRR_i+=1/(j+1) NDCG_i+=1/(math.log2(1+j+1))breakHR_i/=Len_TMRR_i/=Len_TNDCG_i/=Len_Tprint(Hits_i)print(f'HR@5={HR_i}')print(f'MRR@5={MRR_i}')print(f'NDCG@5={NDCG_i}')if __name__ == '__main__':indicators_5(R, T)
如果对你有用,请点个赞,谢谢!
参考
1.https://blog.csdn.net/qq_34862636/article/details/105010511
2.https://blog.csdn.net/Allenalex/article/details/78161915
推荐系统常用的评价指标:HR、NDCG、MRR相关推荐
- 推荐系统常用的评价指标
衡量推荐系统算法的精确度的指标通常有四种:NDCG.Recall.Precision.Hit Rate. 一.NDCG 在搜索和推荐任务中,系统通常会返回一个item的列表,例如,我们检索[推荐排序] ...
- 推荐系统常用评价指标
目录 1.命中率HR(Hits Ratio) 2.归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG) 3.平均倒数排名(Mean Recipro ...
- 推荐系统常用的推荐算法
转载自 推荐系统常用的推荐算法 一.推荐系统概述和常用评价指标 1.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重要性UI> ...
- 深度学习常用性能评价指标
深度学习常用性能评价指标 前言 基于准确度的指标 基于排名的指标 基于图数据的指标 前言 深度学习性能指标是用于评价深度学习模型性能的依据,是设计模型的重要依据. 基于准确度的指标 对于模型而言仅统计 ...
- 分类算法中常用的评价指标
转自: 分类算法中常用的评价指标 来自网络,备份勿忘! 对于分类器(分类算法),评价指标主要有:1)Precision:2)Recall:3)F-score;4)Accuracy;5)ROC;6)AU ...
- 医学图像分割常用的评价指标
医学图像分割常用的评价指标 1.Dice(Dice similarity coefficient) 2.IoU(Intersection over Union) 3.VOE(Volumetric Ov ...
- 推荐系统常用数据集介绍
前言 文章转载自:https://www.cnblogs.com/shenxiaolin/p/8337913.html 推荐系统常用数据集 首先需要说明一下推荐系统数据中的几个类别: Item: 即我 ...
- 问答系统QA的评价指标MAP、MRR、Accuracy@N
问答系统性能的评价指标MAP.MRR.Accuracy@N MAP(mean average precision) 即平均准确率,系统对所有候选答案进行评分,并按分值大小进行排序,正确答案越靠前,MA ...
- 分类模型常用的评价指标
分类模型的评价指标的重要性不亚于设计一个好的网络模型,只有通过合理的评价指标,才能衡量一个模型的好坏和选择一个合适的模型. 以下所有内容,如有侵权,请联系删除~ 混淆矩阵 对于二分类问题,有 FP,T ...
最新文章
- 艺术站-卡通和风格化的HDRI天空
- .NET : VS 2008中的一个转换器
- svn cleanup failed–previous operation has not finished 解决方法
- Excel2000的数字签名功能
- python用表达式解密密文_基于Python解密仿射密码
- 利用图基Tukey method检测数据集中的异常值
- GoldenGate for win安装配置
- 「leetcode」454.四数相加II:其实需要哈希的地方都能找到map的身影
- unity3dk帧_Unity3D制作序列帧动画的方法
- 华泰证券 python 自动交易软件_量化交易策略自动搬砖自动交易软件费用
- [网站加载优化]公共CDN库/Nginx启用Gzip/全站CDN加速
- 70句计算机英语,70句必背的经典英文电影台词(中英双语)
- SAS逻辑回归之多分类
- 学会自我学习(自律性)
- DELL服务器 R740的风扇设置
- Unity实现自适应屏幕大小——九宫格
- [习题]综合练习 -- SqlDataSource精灵就能完成,[山寨版] Dynamic Data WebSite
- 论文的可复现性,能否量化分析?
- html em加粗,HTML5 :b/strong加粗,i/em倾斜区别
- cocos2d-x 键盘按住事件 实现人物的连续移动