推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

协同过滤Python软件包的实现

更新时间:2019-12-21 10:19:25 大小:900K 上传用户:songhuahua查看TA发布的资源 标签:python数据挖掘 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

数据爆炸时代,信息过载已成为社会性问题。基于物品的协同过滤算法设计并实现一款Python软件包ItemCollab,可有效解决这一问题。ItemCollab包括数据处理、物品推荐和质量评价3个模块。数据处理模块实现数据导入、稀疏度分析和训练集划分功能;物品推荐模块实现了目前主流的几种推荐算法,质量评价模块实现对推荐质量的图表展示功能。ItemCollab扩展性好,便于调用,可帮助用户构建自己的个性化推荐系统。


部分文件列表

文件名 大小
协同过滤Python软件包的实现.pdf 900K

部分页面预览

(完整内容请下载后查看)
计 算 机 与 网 络  
技术论坛  
协同过滤 Python 软件包的实现  
张柏林  
东农业大学 信息科学与工程学院东 泰安 271018)  
:数据爆炸时代,信息过载已成为社会性问题。基于物品的协同过滤算法设计并实现一款 Python 软件包  
ItemCollab有效解决这一问题ItemCollab 包括数据处理品推荐和质量评价 个模块据处理模块实现数据导入疏  
3
度分析和训练集划分功能;物品推荐模块实现了目前主流的几种推荐算法,质量评价模块实现对推荐质量的图表展示功能。  
ItemCollab 扩展性好便于调用帮助用户构建自己的个性化推荐系统。  
关键词协同过滤性化推荐Python件包据挖掘  
中图分类号TP393 文献标志码:  
A
文章编号1008-1739201904-64-3  
ZHANG Bolin  
(College of Information Science and Engineering, Shandong Agricultural University, Tai an 271018, China)  
The item-based collaborative filtering algorithm is one of the effective ways to solve the social problem of information  
overload. A Python software package ItemCollab is design and implemented in this paper. ItemCollab is composed of such three  
modules as data processing, item recommendation and quality evaluation. The data processing module implements such functions as  
data import, sparsity analysis and training set partition; the item recommendation module implements several popular recommendation  
algorithms; the quality evaluation module implements the chart display function of recommended quality. ItemCollab has higher  
expansibility and is convenient for transfer, and users can use it to build their own personalized recommendation system.  
collaborative filtering; personalized recommendation; Python; software package; data mining  
0
引言  
互联网数据呈指数级爆炸式增长息过载问题随之而  
[1]荐系统是解决信息过载的有效途径之一依据用户  
兴趣从低价值密度的庞大数据中甄别出有效信息而提供  
个性化推荐服务用一类常见的推荐方法—基于物品的  
协同过滤现一个 Python 软件包使系统开发者不必过多  
关注算法实现细节通过接口调用就可方便简洁地构建自  
己的个性化推荐系统。  
1
数据处理模块运行效果图  
规模包含 943 个用户对 1 682 部影片的 10 万评分数据,评分  
区间在 分之间ItemCollab 选择这一规模数据作为内置  
示例数据集。  
ItemCollab 通过 loadMovieLens(path)来导入内置数据集,  
1
数据处理模块  
1
5  
此模块主要有数据集导入、稀疏度分析和训练集测试集  
合划分 3 个主要功能ItemCollab 内置的数据集 MovieLens  
同时对外提供接口 loadDatasets(path)path 指定数据所在  
路径使用户导入.csv 格式的自身数据集。  
为例行效果如图 1 所示。  
1.1 数据导入  
1.2 稀疏度分析  
MovieLens (https://grouplens.org/) 是 明 尼 苏 达 大 学  
GroupLens 研究项目提供的具有多种规模的数据集中最小  
收稿日期2018-10-02  
数据稀疏度通常用(  
1
行计算[2]。数据集的稀疏度可  
作为下一步选择合适的推荐算法的依据。  
64  
计 算 机 与 网 络  
技术论坛  
(1)  
(3)  
式中Max Min 分别表示当前评分体系中的最大值和最小  
值; 表示某一物品的评分结果; 表示 的归一化结果。  
原本的取值范围为3理后, 的归一化结果  
的取值范围变为[-1,1]。  
1.3 训练集划分  
对同一用户所评分的所有物品按原始数据中的顺序前  
80%作为训练集20%作为测试集。训练集和测试集的划  
分是质量评价模块功能实现的前提。  
(4)  
2
物品推荐模块  
式中(  
所有评分物品中每个和 得分相似的某一物品相似指  
的是在根据( )出的相似度矩阵中存在 的一个得  
分值, ( )表示所有这些物品组成的集合。 表示 与  
的相似度(  
结果( )算出。  
, 示预测出的用户 对物品 的评分; 表示 的  
此模块利用几种常见的基于物品的协同过滤算法来生成  
2
推荐些算法包括调整后的余弦相似度Slope One  
各种改进算法,如加权 Slope One、双极 Slope One 以及 SVD  
Slope One  
,
2算出,  
表示  
的归一化评分  
,
4
在实际应用中统的用户和资源分布情况不同同的  
推荐算法表现也不同。调整后的余弦相似度算法在评分结果  
中减去每个用户给出的平均评分,可以很好地处理不同用户  
2.2 算法流程  
输入预测用户 标物品 分结果数据集前评  
分体系最值;  
输出户 对目标物品 的预测值 ( , )  
利用 ( , )计算每 个物品之间的余弦相似度到物  
品的相似度矩阵;  
利用 式对评分结果数据集进行归一化处理,得到  
物品的归一化评分矩阵;  
根据( )( )到的矩阵 ( , )求出  
的归一化预测评分;  
逆向使用  
的评分尺度问题。Lemire  
Maclachlan 提出的标准 Slope One  
算法根据已有评分和两两物品评分偏差的平均值来预测用户  
对新物品的评分物品评分矩阵较为稠密时表现良好。其主  
要优点是简洁于实现且运算效率高没有考虑矩阵的稀  
疏性,推荐结果易受用户数量、用户偏好的影响。加权 Slope  
One 算法将用户数量作为权重衡了其他物品对目标物品的  
影响[3]Slope One 算法考虑用户偏好问题用户对物品  
的厌恶程度也加入评价体系[4]SVD Slope One 算法通过矩阵  
奇异值分解[5]低评分矩阵的稀疏度而得到更准确的推  
荐结果[6]。  
2
2
3
4到的评分转化为正常评分  
区间内的数据为最终结果。  
2.3 运行效果  
总的来说些算法各有利弊不同的数据集上有不同  
的性能和准确度表现,用户应根据数据处理模块得到的数据  
集性质择合适的算法。下面以调整后的余弦相似度为例,  
叙述该算法的数学理论法流程及运行效果。  
假设一个评分结果数据集如表  
1
所示,第一行表示 user1  
null 表示 user1 没有对物  
1 评分察 user1 对物品 1 的预测评分ItemCollab 的运行  
对物品 2345 的评分别是 3541,  
效果如图 2 所示。  
2.1 数学理论  
1 评分结果数据表  
调整后的余弦相似度引入了归一化的思想,它主要包括  
用于衡量两两物品间相似程度的相似度计算2于对评  
分结果数值变换的归一化3及用于预测用户对某一物  
品评分结果的评分预测4。  
(2)  
式中,( , )表示物品 和物品 的相似度; 表示所有同时对  
和 进行过评分的用户组成的集合; 表示用户 对 的评  
分; 表示 对所有物品评分的平均值分子中于每个同  
时对 2 个物品评分的用户,将 2 个物品归一化评分结果相乘,  
然后对结果求和。在分母中归一化评分结果的平方求  
后对 进行相同处理后求它们乘积的平方根。  
2 物品推荐模块运行效果图  
65  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载