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

对推荐系统的研究一个重要的环节是如何评价一个推荐算法的好坏。关于推荐系统评价的研究很多,文献[1,2,3]在不同程度对评价方法进行了总结。评价方法分为离线评估,用户调查,在线评估。由于用户调查和在线评估代价要求高,目前大多数的研究采用的是离线测试。其中文献[3]总结了离线评价中用到的指标,包括准确度指标、基于排序加权的指标、覆盖率、多样性和新颖性等。本文的研究工作采用了几种离线评估指标。将其归纳为准确性指标和非准确性指标。下面分别给予简单介绍。

为了方便描述评价指标,下表对后面会用到的符号进行简单说明。

1 准确性指标

准确性指标是推荐系统中最重要的指标。最常使用的准确性指标包括准确率和召回率。

1)准确率[3]。推荐列表中用户喜欢的物品所占的比例。针对单个用户u的推荐准确率:

整个系统的准确率为:

2)召回率[3]。测试集中有多少用户喜欢的物品出现在推荐列表中。针对单个用户u的推荐召回率:

整个系统的召回率为:

3)F1-Measure。F-Measure又称为F-Score,是IR(信息检索)领域的常用的一个评价标准,计算公式为:

其中β是参数,P是 精确率(Precision),R是 召回率 (Recall)
当参数β=1时,就是最常见的F1-Measure了:

以上的准确性指标是只从整个推荐列表的推荐用户是否喜欢这种二值情况考虑的。除此之外,针对评分(比如0-5分制)的评估主要还有:

  • RMSE (均方根误差);

其中Ωtest为测试集;yij为用户i对物品j的实际评分,y^ij为预测评分。

  • MAE (平分绝对误差):
  • Normalized Lpnorm:
显然,RMSE,MAE是  Normalized  L p  norm的特例。            

准确性指标局限性:

  • 不适合评估排序性能。关于排序的性能,推荐大家参考我的另一篇博客:   http://blog.csdn.net/allenalex/article/details/78161915
  • 离线的准确率的提高并不意味着实际线上系统效果的提高。

2 非准确性指标

  推荐系统中,除了推荐准确性外,还有其他一些重要的指标。包括推荐的多样性、新颖性、惊喜度和覆盖率等等。本文将这些指标统称为非准确性指标。其中非准确性指标又可以分为用户级非准确性指标和系统级非准确性指标。

2.1.用户级非准确性指标

1)个体多样性。用户的推荐列表列内的所有物品的平均相似度 [2]:
     其中similarity(i,j)可以本博主的另一篇博文《推荐系统中的相似度计算方法总结》介绍的相似度计算方法来计算。求系统中所有用户的推荐列表列内的所有物品的平均相似度的平均值得到整体(推荐列表)列内相似度:

IntraSimilarity值越大,说明用户的推荐列表内的物品之间总体平均相似度越高,也就是系统整体的个体多样性越低。

2)新颖性[4]。评估新颖性最简单的方法是计算推荐列表中物品的平均流行度:

整个系统的新颖性为:

2.2.系统级的非准确性指标

1)整体多样性 [5]。采用推荐列表间的相似度,也就是用户的推荐列表间的重叠度来定义整体多样性。

2)覆盖率[6]。覆盖率测量的是推荐系统推荐给所有用户的物品数占总物品数的比例。

【参考文献】

[1] Sarwar B, G. Karypis, JKonstan,et al. Item-based Collaborative Filtering Recommendation Algorithms. In: Proceedings of the 10th International WWW Conference.  New York:ACM,2001,285-295.

[2] Zanker M, Felfernig A, Friedrich G. Recommender systems: an introduction[M]. Cambridge:Cambridge University Press, 2011,124-142.

[3] 朱郁筱, 吕琳媛.推荐系统评价指标综述.电子科技大学学报, 2012, 41(2): 163-175.

[4] L.-T. Weng,Y. Xu, Y. Li et al. Improving recommendation novelty based on topic taxonomy. In: IEEE/WIC/ACM International Conferences on Web Intelligence and Intelligent Agent Technology. Washington: ACM, 2007, 115–118.

[5]C.Ziegler, S.M. McNee, J. A. Konstan et al. Improving recommendation lists through topic diversification. In: Proceedings of the 14th International Conference on World Wide Web. Chiba: ACM, 2005, 22-32.

[6] Ge M, Delgado-Battenfeld,Jannach D. Beyond accuracy: Evaluating recommender systems by coverage and serendipity. In:RecSys (2010): the 2010 ACM conference on Recommender systems. Barcelona:ACM,2010,257-260.

推荐系统的评价指标总结相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. 推荐系统笔记(评价指标及效果)

    思维导图:

  8. NDCG:推荐系统/搜索评价指标

    本文转载自[胖喵]博主,详细请看https://www.cnblogs.com/by-dream/p/9403984.html 1. CG:累计增益 CG,cumulative gain,只考虑到了相 ...

  9. 什么是推荐系统与常见的推荐系统评价指标

    什么是推荐系统 一.为什么要有推荐系统 顾名思义,推荐系统的功能就是推荐,在当前信息量急速膨胀的互联网时代,每一个人都面向了海量的数据,哪怕是一个小平台,数据量可能都是以千万为单位的,这个时候让用户自 ...

最新文章

  1. 五十六、TodoList的三种写法,祭奠我的前端之路
  2. ***F漏洞分析与利用
  3. C#ListBox对Item进行重绘,包括颜色
  4. Shell编程之if语法练习(LNMP)全过程
  5. PIL.Image convert to numpy array
  6. DWZMVC的探索系列——给列表穿上DWZ华丽的外衣
  7. 双稀疏主题模型(Dual-Sparse Topic Model)编程实现中的细节 Java
  8. 强制推送代码到远程仓库
  9. 咏南IOCP REST中间件
  10. 学习django笔记(天天生鲜)
  11. IP协议与MAC地址详解
  12. VR眼镜连接android设备,VR眼镜怎么连接手机 VR眼镜使用教程
  13. 产品经理实践【四川省地震需求分析】
  14. 阿里云智能编码插件,更Cosy的开发体验
  15. iOS开发之Tom猫
  16. 深入理解空洞卷积:优点以及存在问题
  17. C++11之防止类型收窄(列表初始化)
  18. Tita 如何助力组织目标层层落地
  19. CUDA与cuDNN安装教程(超详细)
  20. MSSQL 如何删除字段的所有约束和索引

热门文章

  1. 用fluent模拟内循环床气化燃烧(调试过程记录)
  2. 判断键盘输入的数是几位数且是否是回文数
  3. 使用ffmpeg进行视频文件转换成FLV整理
  4. C语言指针与结构体详述
  5. Java日期时间API
  6. 软件工程课程小组成员介绍
  7. python使用pika操作rabbitmq总结(一)
  8. 一位25岁的董事长给大学生的18条忠告
  9. Python处理excle表格
  10. 《Total Commander:万能文件管理器》——第2.2节.快速了解一款软件的4条途径