数据集是movielens-1M(下载)版本。

1. 训练集大小对于推荐性能的影响

使用SlopeOne算法,每次随机选取6%的用户预测其喜好,进行5次实验,取MAE的均值,得到下表:

训练集大小(%)

MAE

90

0.71718149

70

0.73005925

50

0.77483222

30

0.83092947

10

0.98020104

绘制成折线图,如下图所示:

由此可知,训练集越大,则推荐的准确率越高。

2. 不同相似度度量对性能的影响

使用ItemCF算法,训练集大小为数据集的90%,每次随机选取30%的用户预测其喜好,进行5次实验,取MAE的均值,得到下表:

相似度度量方法

MAE

皮尔逊相关系数

0.86158483

曼哈顿距离

0.82744657

欧几里德距离

0.80844643

对数似然值相似度

0.80750607

Jaccard相似度

0.78540776

余弦相似度

0.81422523

绘制成直方图,如下图:

由此可知,Jaccard相似度的性能略好于其他几种相似度,但是优势很小。使用不同相似度度量方法差别不大。

3. 不同推荐算法的性能

使用皮尔逊相关系数作为相似度,训练集大小为数据集的90%,每次随机选取6%的用户预测其喜好,进行5次实验,取MAE的均值。其中KNN算法取近邻大小为5;EM算法的学习速度为0.005,过度拟合值为0.02,随机噪声值为0.005,EM的迭代次数为20。得到下表:

推荐算法

MAE

ItemCF

0.86158483

UserCF

1.03740876

Slope One

0.71718149

KNN(k = 5)

0.83184328

SVD

(Compute SVD using EM Algorithm:

learning rate = 0.005,

overfitting prevention = 0.02,

random noise = 0.005,

epoch = 20)

0.70493273

绘制成直方图,如下图:

由此可知,SVD和Slope One算法的推荐结果最为精确,UserCF最差。这个数据和推荐系统相关著作中的结论是吻合的。

此外,在内存方面,Slope One最占内存,1G内存下最多只能处理6%左右的用户。而其他算法均能轻松地处理30%以上的用户量。

在速度方面,SVD速度最快,处理每个用户的平均时间约为4ms,Slope One的平均时间约为30ms,ItemCF和UserCF的平均处理时间都在10ms左右。KNN的速度是最慢的,平均处理时间约为100ms。

文章出处:http://fantasticinblur.iteye.com/blog/1333899

推荐系统的常见推荐算法的性能比较相关推荐

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

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

  2. 推荐系统常用的推荐算法

    转载自  推荐系统常用的推荐算法 一.推荐系统概述和常用评价指标 1.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重要性UI> ...

  3. 电商大数据项目-推荐系统实战之推荐算法(三)

    电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...

  4. 在线新闻推荐网 Python+Django+Mysql开发技术 基于用户、物品的协同过滤推荐算法 个性化新闻推荐系统 协同过滤推荐算法在新闻网站中的运用 个性化推荐算法、机器学习、分布式大数据、人工智

    在线新闻推荐网 Python+Django+Mysql开发技术 基于用户.物品的协同过滤推荐算法 个性化新闻推荐系统 协同过滤推荐算法在新闻网站中的运用 个性化推荐算法.机器学习.分布式大数据.人工智 ...

  5. 在线图书推荐网 Python+Django+Mysql开发技术 个性化图书推荐系统 协同过滤推荐算法在图书网站中的运用 基于用户、物品的协同过滤推荐算法 个性化推荐算法、机器学习、分布式大数据、人工智

    在线图书推荐网 Python+Django+Mysql开发技术 个性化图书推荐系统 协同过滤推荐算法在图书网站中的运用 基于用户.物品的协同过滤推荐算法 个性化推荐算法.机器学习.分布式大数据.人工智 ...

  6. 如何使用Spring+SpringMVC+Mybatis开发实现个性化小说推荐系统 协同过滤推荐算法实现 基于用户、项目的协同过滤推荐 基于聚类、关联规则、内容推荐算法 WebNovelCFRS

    如何使用Spring+SpringMVC+Mybatis开发实现个性化小说推荐系统 协同过滤推荐算法实现 基于用户.项目的协同过滤推荐 基于聚类.关联规则.内容推荐算法 WebNovelCFRS 一. ...

  7. 个性化试题推荐系统 协同过滤推荐算法在在线考试系统中的运用 基于用户/项目的协同过滤推荐算法 混合协同过滤推荐算法 协同过滤混合推荐算法

    个性化试题推荐系统 协同过滤推荐算法在在线考试系统中的运用 一.项目开发技术及功能介绍 1.SSH开发框架(spring+struts+hibernate) 2.js.jquery.bootstrap ...

  8. 推荐系统常用的推荐算法总结

    一.推荐系统的概述 个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品.随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品.这种浏 ...

  9. ncf 推荐系统_TopN物品推荐算法评测设置回顾

    论文标题:Revisiting Alternative Experimental Settings for Evaluating Top-N Item Recommendation Algorithm ...

最新文章

  1. Redis概述和基础
  2. 网络流媒体协议 RTSP协议
  3. 原生app跳html页面传值,HTML页面跳转及参数传递问题
  4. 超级计算机和人比,和超级计算机相比,人类的大脑很弱吗
  5. 17 张程序员专属壁纸,有你喜欢的吗?
  6. MySQL左连接还有过滤条件_MySQL左连接问题,右表做筛选,左表列依然在?
  7. 什么网了解c语言,什么是c语言?
  8. java如何测controller层_用MockMvc对Spring mvc中的controller层进行单元测试
  9. react和angualr动态插入带html标签或不带html标签的数据
  10. CodeSmith连接Mysql配置
  11. ExtJs 系列视频教程
  12. 【每日新闻】三星折叠手机媒体试用出故障:屏幕失灵 铰链处凸起
  13. 电脑计算机丢失msvcp140.dll,电脑丢失msvcp140.dll什么意思
  14. molecule html5 游戏,精选超炫html5网站收集
  15. 我想推出这么一种应用(现代诗歌)
  16. 通达信缠论顶底分型选股公式(一笔优化版)
  17. 21313211312313
  18. 基于Web实现网络拓扑图
  19. JXTA HelloWorld on JXSE 2.5 【二】
  20. Hanselman的精彩事事通讯:2014年9月5日

热门文章

  1. MySQL数据库表引擎与字符集
  2. 论文《Intelligent Computing: The Latest Advances, Challenges and Future》 思维导图-仅供参考
  3. 聊聊一行读研时最成功的投资
  4. RC4算法原理、Java实现RC4加密算法、DES AES RC4算法比较
  5. 轻巧画图工具_网页设计师使用的20种超轻巧典雅字体
  6. 百度空间部分表单查询
  7. 华清远见-重庆中心-前端阶段技术总结
  8. ChatGPT超越经典,重新定义《青花瓷》的永恒之美!
  9. 正大国际:期货明明看对了方向,就是被止损给洗出来了,怎么办?
  10. Word 用 VBA 函数将数字转换为大写金额