数据集是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
分享到:
相关推荐
总结来说,理解和掌握常见算法对于IT专业人士至关重要,它们不仅有助于解决日常编程问题,还能为优化系统性能、提升用户体验提供强大支持。不断学习和实践各种算法,能帮助我们更好地应对复杂多变的计算挑战。
### 常见推荐系统算法总结报告与性能比较 #### 一、常用推荐系统算法概述 本文档旨在总结并比较几种常见的推荐系统算法,并探讨它们各自的特点与应用场景。推荐系统在现代互联网产品和服务中扮演着极其重要的角色...
本资源“操作系统常见算法算法演示”通过FLASH动画的形式,直观地展示了这些算法的工作原理,为学习者提供了生动的教学辅助。 1. **进程调度算法**:操作系统中的进程调度是决定哪个进程获得CPU执行权的关键步骤。...
本文将对几种常见的推荐系统算法进行详细总结,并比较它们的性能特点。 1. ItemCF(基于商品的协同过滤) ItemCF算法关注商品之间的相似性,常用于如电商、电影和音乐推荐。它计算商品之间的相似度矩阵,当用户对某...
在实践中,你可以尝试调整参数,比较不同相似度计算方法的效果,或者探索更复杂的推荐算法,如矩阵分解(Matrix Factorization)、深度学习模型(如神经网络推荐系统)等,进一步提升推荐系统的性能。
以下是几种常见的推荐系统算法的总结和性能比较: 1. ItemCF(基于商品的协同过滤) ItemCF算法主要关注商品间的相似性,计算商品之间的关联度。它适用于商品种类多、用户数量相对较小的情况,如电商网站。由于...
基于协同过滤算法的商品推荐系统是一种常见的推荐系统,它利用用户行为数据来预测用户可能喜欢的商品。协同过滤算法主要基于两个原则:用户-用户协同过滤和物品-物品协同过滤。 在Spring Boot中构建基于协同过滤...
在测试和性能比较这些算法时,通常会使用不同的页面访问序列,包括随机序列和模拟实际程序执行的特定序列。通过模拟实验,可以分析各种算法在不同场景下的性能,帮助理解它们的优缺点,为实际操作系统设计提供依据。...
在"多天线、单天线、两种算法的容量比较、估计性能"的文档中,可能详细分析了不同天线配置下,LS和LMMSE算法的信道估计性能和对应的信道容量。这些分析可能包括仿真结果、理论推导和实际场景的应用案例,旨在为MIMO...
9. 哈希算法:哈希表提供了快速的查找、插入和删除操作,广泛应用于数据库索引、缓存系统和唯一标识生成。 这些算法不仅在理论上有重要价值,也是实际编程中不可或缺的工具。理解并掌握这些算法,能够提升解决问题...
这些算法是保证操作系统性能和响应速度的关键。 一、作业调度算法 作业调度是操作系统中决定哪些后台任务(作业)应当获得CPU执行权的过程。常见的作业调度算法有先来先服务(FCFS)、短作业优先(SJF)、高响应比...
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图书推荐系统。在本文中,我们将深入探讨这个系统的各个组成部分、技术栈以及协同过滤算法的基本原理。 1. **协同过滤算法**: ...