[發明專利]一種基于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.szxzyx.cn/pat/books/201810022872.6/2.html,轉載請聲明來源鉆瓜專利網。





