基於物品 使用者 的推薦演算法

2021-08-30 21:46:41 字數 1856 閱讀 3718

用mapreduce計算框架實現了3個小demo: wordcount、基於物品的推薦演算法(itemcf)和基於使用者的推薦演算法(usercf)

**連線:

map輸入:key:longwritable型別,每一行的起始偏移量 value: text型別 userid,itemid,score

map輸出:key:text型別 itemid value: text型別 userid_score

reduce輸入:key:text型別 itemid value: text型別

reduce輸出:key:text型別 itemid value: text型別 userid1_score,userid2_score,userid3_score

此外,評分矩陣還要作為快取,在setup方法裡實現

map輸入:key:longwritable型別,每一行的起始偏移量 value: text型別 itemid userid1_score,userid2_score,userid3_score

map輸出:key:text型別,itemid value:text型別 itemid1_sim

reduce輸入:key:text型別,itemid value:text型別

reduce輸出:key:text型別 itemid value: text型別 itemid1_sim,itemid3_sim,itemid5_sim

map輸入:key:longwritable型別,每一行的起始偏移量 value: text型別 itemid userid1_score,userid2_score,userid3_score

map輸出:key:text型別 userid value: text型別 itemid_score

reduce輸入:key: text型別 userid value: text型別

reduce輸出:key: text型別 userid value: text型別 itemid1_score,itemid3_score,itemid2_score

此時,轉置後的評分矩陣要作為快取,在setup方法裡實現

map輸入:key:longwritable型別,每一行的起始偏移量 text型別 itemid itemid1_sim,itemid3_sim,itemid5_sim

map輸出:key:text型別 itemid value: text型別 userid_score

reduce輸入:key:text型別 itemid value: text型別

reduce輸出:key:text型別 itemid value: text型別 userid1_score, userid2_score,userid3_score

此時,評分矩陣作為快取,在setup方法裡實現

map輸入:key:longwritable型別,每一行的起始偏移量 value: text型別 itemid userid1_score, userid2_score,userid3_score

map輸出:key:text型別 userid value: text型別 itemid_score

reduce輸入:key:text型別 userid value: text型別

reduce輸出:key:text型別 userid value: text型別 itemid1_score,itemid3_score,itemid5_score

和itemcf的邏輯是一樣的,區別在於以userid作為行

python推薦演算法itemCF基於物品的協同過濾

itemcf demo python 3.7 import numpy as np import math test data users u1 u2 u3 item like list a,b,c a,b,c,e,f a,e 單個商品喜歡人數 def check 1item item return...

推薦系統 基於使用者和基於物品的協同過濾演算法的比較

首先回顧一下,協同過濾演算法主要有兩種,一種是基於使用者的協同過濾演算法 usercf 另一種是基於物品的協同過濾演算法 itemcf 基於使用者的協同過濾演算法主要有兩步 1 找到和目標使用者興趣相似的使用者集合 2 找到這個集合中的使用者喜歡的,且目標使用者沒有聽說過的物品推薦給目標使用者。基於...

推薦演算法 基於物品的協同過濾演算法

itemcf itemcollaborationfilter,基於物品的協同過濾 比如,使用者a之前買過 資料探勘導論 該演算法會根據此行為給你推薦 機器學習 但是itemcf演算法並不利用物品的內容屬性計算物品之間的相似度,它主要通過分析使用者的行為記錄計算物品之間的相似度。該演算法認為,物品a和...