1.用户满意度

用户作为推荐系统的重要参与者,其满意度是评测推荐系统的最重要指标。但是,用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。

2.预测准确度

预测准确度可以用评分预测和TopN表示。

评分预测:评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。对于测试集中一个用户u 和 物品 i,令 rui 是用户u对i 的实际评分,而^rui 是推荐算法给出的预测评分。那么 RMSE 的定义为:

MAE 采用绝对值计算预测误差,它的定义为:

假设用列表 records 存放用户评分数据,令 records[i] = [u,i,rui,pui],其中 rui 是用户u对i的真实评分,pui 是算法预测出来的评分,那么下面的代码分别展示了 RMSE 和 MAE 的计算过程

def RMSE(records):return math.sqrt(sum([(rui - pui)*(rui - pui) for u,i,rui,pui in records]) \/ float(len(records)))
def MAE(records):return sum([abs(rui-pui) for u,i,rui,pui in records]) \/ float(len(records))

TopN方法:网站在提供服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做 TopN 推荐。TopN 推荐的预测准确率一般是通过 准确率(precision)/召回率(recall) 度量。

令R(u)是根据用户在训练集上的行为给用户做出的推荐列表,而T(u)是用户在测试集上的行为列表。那么,推荐结果的召回率:

推荐结果的准确率定义为:

def PrecisionRecall(test,N):hit = 0n_recall = 0n_precision =0for user,items in test.items():rank = Recommend(user,N)hit += len(rank & items)n_recall += len(items)n_precision += Nreturn [hit / n_recall, hit / n_precision]

有的时候,为了全面评测TopN推荐的准确率和召回率,一般会选取不同的推荐列表长度 N ,计算出一组准确率 / 召回率曲线。

3.覆盖率

定义物品的流行度为 p(i), I 为全部的物品集,假设物品是按照流行度p从小到大排列的。则我们定义基尼系数(Gini Index)如下

def GiniIndex(p):j = 1n = len(p)G = 0for item,weight in sorted(p.items(),key = itemgetter(1)):G += (2 * j - n - 1) * weightreturn G / float(n - 1)

关于基尼系数,不得不提到马太效应:强者更强,弱者更弱的效应。如果一个系统会增大热门物品和非热门物品的流行度差距,让热门的物品更热门,不热门的物品更加不热门,那么这个系统就有马太效应。

推荐系统的初衷就是消除马太效应,使得各种物品都能被展示给对它们感兴趣的某一类人群。但是很多研究表明现在的主流推荐算法(比如协同过滤)是具有马太效应的。评测推荐系统是否具有马太效应的简单办法就是使用基尼系数。如果G1 是从初始用户行为中计算出的物品流行度的基尼系数,G2 是从推荐列表中计算出的物品流行度的基尼系数,那么如果 G2 > G1,就说明推荐算法具有马太效应。

4.多样性

用户的兴趣是广泛的,比如用户既可能喜欢动画片,也喜欢动作片。为了满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同的兴趣领域。

5.新颖性

用户喜欢周星驰的电影,如果推荐给用户周星驰演过的但是用户自己从来没听过的电影,叫新颖性。

6.惊喜性

用户喜欢周星驰的电影,但是莫名其妙推荐了跟用户兴趣完全无关的成龙的电影。用户看完后表示很喜欢,这叫惊喜度。

7.信任度

用户对推荐系统的结果本身的认可感。

8.实时性

当用户买苹果手机的时候,立即推荐苹果耳机等配件。而不是等到第二天收集了用户购买行为,再离线计算推荐算法,第二天推荐苹果耳机。这就叫实时性。

9.健壮性

防止攻击的性能。假如我是商户,我可以叫大量人来阅览点击我的商品,那么推荐系统极有可能会增加推荐我的商品的概率。这就是恶意攻击。因为推荐系统本身是通过收集用户行为而推荐的。针对这种情况,除了选择健壮性较高的算法之外,还可以
设计推荐系统时尽量使用代价比较高的行为。比如,在购买行为和浏览行为中主要使用购买行为。
在使用数据前,进行攻击检测,从而对数据进行清理。

实战智能推荐系统(5)-- 推荐系统评价指标相关推荐

  1. 实战智能推荐系统(14)-- 推荐系统架构

    外围架构 一般来说,每个网站都有一个 UI 系统,UI 系统负责给用户展示网页并和用户交互.网站会通过日志系统将用户在 UI 上的各种各样的行为记录到用户行为日志中. 从上面的结构可以看到,除了推荐系 ...

  2. 推荐系统常用的评价指标:HR、NDCG、MRR

    推荐系统常用的评价指标 应用背景介绍 评价指标的知识来源 命中率HR(Hits Ratio) 归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG) ...

  3. 【组队学习】【32期】推荐系统-新闻推荐系统实践

    推荐系统-新闻推荐系统实践 航路开辟者:罗如意 领航员:肖桐 航海士:汪志鸿.吴忠强.赖敏材.王辰玥.毛伟.宋禹成.陈雨龙.管柯琴 基本信息 开源内容:https://github.com/dataw ...

  4. 自己动手写一个推荐系统,推荐系统小结,推荐系统:总体介绍、推荐算法、性能比较, 漫谈“推荐系统”, 浅谈矩阵分解在推荐系统中的应用...

    自己动手写一个推荐系统 废话: 最近朋友在学习推荐系统相关,说是实现完整的推荐系统,于是我们三不之一会有一些讨论和推导,想想索性整理出来. 在文中主要以工程中做推荐系统的流程着手,穿插一些经验之谈,并 ...

  5. Java+SSM(Spring+SpringMVC+Mybatis)个性化购物商城推荐系统 电子商务推荐系统 基于用户、项目、聚类、混合的协同过滤推荐算法WebShopRSMEx 源代码下载

    Java+SSM(Spring+SpringMVC+Mybatis)个性化购物商城推荐系统 电子商务推荐系统 基于用户.项目.聚类.混合的协同过滤推荐算法WebShopRSMEx 源代码下载 一.项目 ...

  6. 智能网联建设核心评价指标探讨

    智能网联建设取得一定进展,工信部.公安部.交通运输部在全国各地先后支持建设16个国家级智能网联汽车测试示范区,另外还有几十个城市和众多高速高速公路在开展智能网联试点示范工作.当然,智能网联建设依然面临 ...

  7. 推荐系统系列——推荐系统简介

    文章目录 同步读书之<菜根谭> 1--栖守道德,毋依阿权贵. 2--与其练达,不若朴鲁. 推荐系统简介 1 推荐问题的形式化定义 2 推荐系统的历史 3 参考文献 同步读书之<菜根谭 ...

  8. 小白从0学习推荐系统 ---01 推荐系统简介

    文章目录 推荐系统概述 什么是推荐系统? 推荐系统的目的 推荐系统的基本思想 推荐系统的数据分析 推荐系统的分类 推荐算法简介 基于人口统计学的推荐算法 基于内容的推荐算法 基于协同过滤的推荐算法 协 ...

  9. 使用Java+SSM(Spring+SpringMVC+Mybatis)如何开发个性化职位推荐系统 招聘推荐系统 基于用户、项目的协同过滤推荐算法实现WebPositionCFRS

    使用Java+SSM(Spring+SpringMVC+Mybatis)如何开发个性化职位推荐系统 招聘推荐系统 基于用户.项目的协同过滤推荐算法实现WebPositionCFRS 一.项目简介 1. ...

  10. 推荐系统(2)——推荐系统简介(发展与理论部分)

    推荐系统介绍 推荐系统产生的背景 随着移动互联网的快速发展,我们进入了信息爆炸时代.当前通过互联网提供服务的平台越来越多,相应的提供的服务种类(购物,视频,新闻,音乐,婚恋,社交等)层出不穷,所以我们 ...

最新文章

  1. 浅显易懂 Makefile 入门 (01)— 什么是Makefile、为什么要用Makefile、Makefile规则、Makefile流程如何实现增量编译
  2. 剑指offer:面试题32 - II. 从上到下打印二叉树 II
  3. jenkins-svn配置
  4. 异步fifo_异步FIFO设计
  5. vue 实现 js css html分离
  6. C# -- RSA加密与解密
  7. redis-cluster集群单机搭建
  8. Python入门(一) 异常处理
  9. Linux 下如何查找木马并处理
  10. 轻松搞定 Django 模板语言进阶!
  11. 深度学习9-tensorboard
  12. C#实现微信扫码登录
  13. 关于高通平台9008线刷的一些注意点,供小白食用。
  14. c语言输入的代码格式错误的是什么意思,详解输入输出格式(C语言代码)
  15. 【新知实验室】腾讯云TRTC初体验
  16. 3d建模做一单多少钱?做外包赚钱吗?
  17. android摇一摇切换配置,逍遥模拟器也可以摇一摇了 附设置教程
  18. 1.Diagno-基本概述
  19. cgb2108-day02
  20. 二叉树非递归dfs——简单思路搞定前中后序遍历

热门文章

  1. 怎么将服务器加入系统白名单,服务器怎么添加白名单
  2. 音叉公振频率与双臂质量的计算关系
  3. 计算机junit测试类,复利计算器4.0之再遇JUnit
  4. springboot 中favicon.ico 图标不显示问题,后台日志报错找不到favicon.ico 文件问题 解决
  5. 河南信息统计学院微信公众平台API汇总
  6. 怎么复制黑苹果config配置_黑苹果主机(百分百成功硬件配置)
  7. windows防火墙 程序_如何允许应用程序通过Windows防火墙进行通信
  8. Cocos Creator入门实战:桌球小游戏
  9. 算法编程(Java)#母牛生小牛的问题【字节】
  10. linux 命令 是mmc 大小,u-boot中mmc命令使用