推荐系统的常见推荐算法的性能比较
数据集是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.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重要性UI> ...
- 电商大数据项目-推荐系统实战之推荐算法(三)
电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...
- 在线新闻推荐网 Python+Django+Mysql开发技术 基于用户、物品的协同过滤推荐算法 个性化新闻推荐系统 协同过滤推荐算法在新闻网站中的运用 个性化推荐算法、机器学习、分布式大数据、人工智
在线新闻推荐网 Python+Django+Mysql开发技术 基于用户.物品的协同过滤推荐算法 个性化新闻推荐系统 协同过滤推荐算法在新闻网站中的运用 个性化推荐算法.机器学习.分布式大数据.人工智 ...
- 在线图书推荐网 Python+Django+Mysql开发技术 个性化图书推荐系统 协同过滤推荐算法在图书网站中的运用 基于用户、物品的协同过滤推荐算法 个性化推荐算法、机器学习、分布式大数据、人工智
在线图书推荐网 Python+Django+Mysql开发技术 个性化图书推荐系统 协同过滤推荐算法在图书网站中的运用 基于用户.物品的协同过滤推荐算法 个性化推荐算法.机器学习.分布式大数据.人工智 ...
- 如何使用Spring+SpringMVC+Mybatis开发实现个性化小说推荐系统 协同过滤推荐算法实现 基于用户、项目的协同过滤推荐 基于聚类、关联规则、内容推荐算法 WebNovelCFRS
如何使用Spring+SpringMVC+Mybatis开发实现个性化小说推荐系统 协同过滤推荐算法实现 基于用户.项目的协同过滤推荐 基于聚类.关联规则.内容推荐算法 WebNovelCFRS 一. ...
- 个性化试题推荐系统 协同过滤推荐算法在在线考试系统中的运用 基于用户/项目的协同过滤推荐算法 混合协同过滤推荐算法 协同过滤混合推荐算法
个性化试题推荐系统 协同过滤推荐算法在在线考试系统中的运用 一.项目开发技术及功能介绍 1.SSH开发框架(spring+struts+hibernate) 2.js.jquery.bootstrap ...
- 推荐系统常用的推荐算法总结
一.推荐系统的概述 个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品.随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品.这种浏 ...
- ncf 推荐系统_TopN物品推荐算法评测设置回顾
论文标题:Revisiting Alternative Experimental Settings for Evaluating Top-N Item Recommendation Algorithm ...
最新文章
- Redis概述和基础
- 网络流媒体协议 RTSP协议
- 原生app跳html页面传值,HTML页面跳转及参数传递问题
- 超级计算机和人比,和超级计算机相比,人类的大脑很弱吗
- 17 张程序员专属壁纸,有你喜欢的吗?
- MySQL左连接还有过滤条件_MySQL左连接问题,右表做筛选,左表列依然在?
- 什么网了解c语言,什么是c语言?
- java如何测controller层_用MockMvc对Spring mvc中的controller层进行单元测试
- react和angualr动态插入带html标签或不带html标签的数据
- CodeSmith连接Mysql配置
- ExtJs 系列视频教程
- 【每日新闻】三星折叠手机媒体试用出故障:屏幕失灵 铰链处凸起
- 电脑计算机丢失msvcp140.dll,电脑丢失msvcp140.dll什么意思
- molecule html5 游戏,精选超炫html5网站收集
- 我想推出这么一种应用(现代诗歌)
- 通达信缠论顶底分型选股公式(一笔优化版)
- 21313211312313
- 基于Web实现网络拓扑图
- JXTA HelloWorld on JXSE 2.5 【二】
- Hanselman的精彩事事通讯:2014年9月5日
热门文章
- MySQL数据库表引擎与字符集
- 论文《Intelligent Computing: The Latest Advances, Challenges and Future》 思维导图-仅供参考
- 聊聊一行读研时最成功的投资
- RC4算法原理、Java实现RC4加密算法、DES AES RC4算法比较
- 轻巧画图工具_网页设计师使用的20种超轻巧典雅字体
- 百度空间部分表单查询
- 华清远见-重庆中心-前端阶段技术总结
- ChatGPT超越经典,重新定义《青花瓷》的永恒之美!
- 正大国际:期货明明看对了方向,就是被止损给洗出来了,怎么办?
- Word 用 VBA 函数将数字转换为大写金额