[发明专利]一种基于Hadoop的加权Slope One推荐算法在审
申请号: | 201810022872.6 | 申请日: | 2018-01-10 |
公开(公告)号: | CN108133040A | 公开(公告)日: | 2018-06-08 |
发明(设计)人: | 杜友明;顾嘉奇;吴宏杰;杨茹;戴大东;沈华祥 | 申请(专利权)人: | 苏州科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06Q30/02 |
代理公司: | 苏州睿昊知识产权代理事务所(普通合伙) 32277 | 代理人: | 张敏 |
地址: | 215000 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 电影 预测 加权 矩阵 加权算法 评分矩阵 用户评价 一次性 算法 统计 输出 | ||
本发明公开了一种基于Hadoop技术的slope one加权算法,根据给出的用户评分文件,求出每个用户对电影的评分矩阵;建立电影的同现矩阵;统计同时看过两部电影的人数;获取所有用户评过分的电影,并输出每位用户对每部电影的评分,未评过则记为0;计算得出用户评价过的电影评分加上预测电影与该电影的平均差的和;统计得出每个用户对每个预测电影和另一部评价过的电影,且也评价过的其他用户对此电影评价的加权值之和及同时评价过这两部电影的用户数;计算获取用户对未评价的电影的预测值。本发明计算更便捷,可一次性计算出多个待评价电影的预测值。
技术领域
本发明涉及计算机应用问题,尤其是涉及一种基于Hadoop的加权SlopeOne推荐算法。
背景技术
目前采用多种方法来对电影评分进行预测,如KNN算法、SVD算法、UserCF算法、ItemCF算法,Slope One算法是一种简单方便,且精确度较高的算法。Slope One算法是由Daniel Lemire教授在2005年提出的,虽然是一种简单的C.F.的算法,但是确实解决了若干个难以解决的问题,和其它类似算法相比,它的最大优点在于算法很简单,易于实现,执行效率高,同时推荐的准确性相对很高。现在常用的算法存在一些缺陷,通过的时间复杂度、空间复杂度较高,计算量较大,并且现在的算法没有加权。
发明内容
本发明要解决的技术问题是提供基于Hadoop技术的slope one加权算法。
为了解决上述技术问题,本发明提供了一种基于Hadoop的加权Slope One推荐算法,包括以下步骤:
S101读取用户评分文件中的数据,形成每个用户对不同项目的评分矩阵;
S102读取评分矩阵中的数据,计算每个用户对自己评价过的每两部电影之间的评分差值,整理统计每两部电影的全部评分差值总和以及对此评价的用户数,计算这两部电影的平均评分差值;
S103读取评分矩阵中的数据,将其中每个用户评价过的每两部电影筛选出来,最终统计得到同时看过两部电影的总人数;
S104读取用户评分文件中的数据,获取所有用户评分过的电影,输出每位用户对每部电影的评分,未评过则记为0,保存所有数据;
S105计算得出用户评价过的电影评分加上预测电影与该电影的平均差的和;
S106统计得出每个用户对每个预测电影和另一部评价过的电影,且也评价过的其他用户对此电影评价的加权值之和,以及同时评价过这两部电影的用户数;
S107计算获取用户对未评价的电影的预测值。
优选地,S101的算法为:
输入:ratings.dat,
输入格式:userID::movieID::pref::time,
输出:Step1Output,
输出格式:userID movieID1:pref1,movieID2:pref2,...
读取ratings.dat中的数据,
map操作:
读取数据;
每条数据用split(::)分割;
将key设为userID,value设为movieID:pref;
将键值收集传递给shuffle整理;
reduce操作:
将shuffle整理过的键值按照键,将值读进;
每个值之间加入一个,;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州科技大学,未经苏州科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810022872.6/2.html,转载请声明来源钻瓜专利网。