`
zhc0822
  • 浏览: 230553 次
  • 性别: Icon_minigender_1
  • 来自: 宝仔的奇幻城堡
社区版块
存档分类
最新评论

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

阅读更多

 

数据集是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。

 

  • 大小: 6.9 KB
  • 大小: 9.2 KB
  • 大小: 7.2 KB
4
0
分享到:
评论
2 楼 sunjialiang2011 2015-07-03  
谢谢 学习了!
1 楼 xmxzlee 2013-10-09  
请问你是用什么平台进行的实验

相关推荐

    常见算法 常见算法 常见算法

    总结来说,理解和掌握常见算法对于IT专业人士至关重要,它们不仅有助于解决日常编程问题,还能为优化系统性能、提升用户体验提供强大支持。不断学习和实践各种算法,能帮助我们更好地应对复杂多变的计算挑战。

    常见推荐系统算法总结报告与性能比较.docx

    ### 常见推荐系统算法总结报告与性能比较 #### 一、常用推荐系统算法概述 本文档旨在总结并比较几种常见的推荐系统算法,并探讨它们各自的特点与应用场景。推荐系统在现代互联网产品和服务中扮演着极其重要的角色...

    操作系统常见算法算法演示

    本资源“操作系统常见算法算法演示”通过FLASH动画的形式,直观地展示了这些算法的工作原理,为学习者提供了生动的教学辅助。 1. **进程调度算法**:操作系统中的进程调度是决定哪个进程获得CPU执行权的关键步骤。...

    常用推荐系统算法总结及性能比较.pdf

    本文将对几种常见的推荐系统算法进行详细总结,并比较它们的性能特点。 1. ItemCF(基于商品的协同过滤) ItemCF算法关注商品之间的相似性,常用于如电商、电影和音乐推荐。它计算商品之间的相似度矩阵,当用户对某...

    C#实验用的推荐系统

    在实践中,你可以尝试调整参数,比较不同相似度计算方法的效果,或者探索更复杂的推荐算法,如矩阵分解(Matrix Factorization)、深度学习模型(如神经网络推荐系统)等,进一步提升推荐系统的性能。

    常用推荐系统算法总结及性能比较.docx

    以下是几种常见的推荐系统算法的总结和性能比较: 1. ItemCF(基于商品的协同过滤) ItemCF算法主要关注商品间的相似性,计算商品之间的关联度。它适用于商品种类多、用户数量相对较小的情况,如电商网站。由于...

    springboot基于协同过滤算法商品推荐系统(源码+部署文档+演示视频)

    基于协同过滤算法的商品推荐系统是一种常见的推荐系统,它利用用户行为数据来预测用户可能喜欢的商品。协同过滤算法主要基于两个原则:用户-用户协同过滤和物品-物品协同过滤。 在Spring Boot中构建基于协同过滤...

    操作系统页面置换算法

    在测试和性能比较这些算法时,通常会使用不同的页面访问序列,包括随机序列和模拟实际程序执行的特定序列。通过模拟实验,可以分析各种算法在不同场景下的性能,帮助理解它们的优缺点,为实际操作系统设计提供依据。...

    对比MIMO系统中LS和LMMSE两种信道估计算法的性能,以及对应的信道容量,不同天线对MIMO系统的性能影响分析。

    在"多天线、单天线、两种算法的容量比较、估计性能"的文档中,可能详细分析了不同天线配置下,LS和LMMSE算法的信道估计性能和对应的信道容量。这些分析可能包括仿真结果、理论推导和实际场景的应用案例,旨在为MIMO...

    常见程序的算法

    9. 哈希算法:哈希表提供了快速的查找、插入和删除操作,广泛应用于数据库索引、缓存系统和唯一标识生成。 这些算法不仅在理论上有重要价值,也是实际编程中不可或缺的工具。理解并掌握这些算法,能够提升解决问题...

    操作系统实验 作业调度算法、进程调度算法、分区式存储管理算法、页面调度算法

    这些算法是保证操作系统性能和响应速度的关键。 一、作业调度算法 作业调度是操作系统中决定哪些后台任务(作业)应当获得CPU执行权的过程。常见的作业调度算法有先来先服务(FCFS)、短作业优先(SJF)、高响应比...

    矩阵分解的推荐算法 matlab实现

    2. **选择分解方法**:常见的矩阵分解方法有奇异值分解(SVD)、主成分分析(PCA)以及更适用于推荐系统的如 Alternating Least Squares (ALS) 和 Stochastic Gradient Descent (SGD)。MATLAB内置了`svds`函数用于...

    亚马逊推荐系统

    亚马逊推荐系统是电商行业中的一个典范,其推荐算法在帮助用户发现商品方面具有卓越的性能。该系统通过分析客户的兴趣,生成推荐列表,从而个性化在线商店体验。推荐系统被广泛应用在电商网站,它们通过输入客户兴趣...

    推荐算法数据集

    # 进行交叉验证以评估算法性能 cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True) ``` 在这个例子中,`cross_validate`函数进行5折交叉验证,计算均方根误差(RMSE)和平均绝对误差(MAE)...

    前后端+算法完整项目, 使用的推荐算法:基于协同过滤算法的AI图书推荐系统.zip

    该项目是一个综合性的前后端开发与算法应用实例,主要利用了协同过滤算法来构建一个AI图书推荐系统。在本文中,我们将深入探讨这个系统的各个组成部分、技术栈以及协同过滤算法的基本原理。 1. **协同过滤算法**: ...

Global site tag (gtag.js) - Google Analytics