在乙個線上的個性化推薦系統中,當乙個使用者需要個性化推薦時, 找到與使用者有相同的興趣愛好的使用者來進行推薦物品是乙個不錯的選擇。
(1)找到和目標使用者興趣相似的使用者集合。
(2)找到此相似集合中使用者沒有購買過, 但是可能喜歡的商品進行推薦。
步驟(1):
對於相似使用者的查詢,就需要用乙個方法去衡量這個相似度。
衡量相似度的方法有一下幾種:
①:jaccard公式
②:余弦相似度
③:改進版本的余弦相似度:
借用《推薦系統實踐》中的說法,兩個使用者同時都買了《新華字典》, 這絲毫不能說明他們的興趣相似。
但是如果兩個使用者都買過《資料探勘導論》,那麼這麼兩個使用者的興趣很可能相似。
話句話說,兩個使用者對冷門的物品採取過相同的行為更能說明兩個使用者的興趣相似。
所以一下的懲減相似度去計算兩個使用者的興趣相似度
在求上述做法的時候 可以通過下圖的方式進行,以增加進行的速率
首先建立物品到使用者的倒排表,對於每個物品都去儲存對該物品產生過行為的使用者列表。 然後通過建立洗漱矩陣的方式去計算①公式中的分子部分, 為了很好的儲存這個矩陣,我們不必去建立numpy矩陣浪費大量的memory,我們可以通過雙重字典的方式去儲存這些內容。 之後計算w值。
步驟二:
在得到使用者之間的興趣相似度後,下一步的做法是給使用者(u)可能感興趣的物品(i)進行評分。
usercf中用以下的方式去進行計算使用者對物品的感興趣程度。
其中s(u,k) 表示對使用者u興趣最近接的k個使用者。
這樣就能做基於使用者的協同過濾推薦了。
協同過濾演算法 基於使用者
背景 使用基於使用者的協同過濾演算法進行 讀取檔案,處理每一行資料,把使用者id和 id轉化為long型別 因為協同過濾模型這兩列為long類 並轉化為datamodel 模型輸入資料 轉化出使用者評分矩陣 沒有的填充0 如下表所示 部分 使用者id id110 100101 102103 1041...
協同過濾 基於使用者的協同過濾itemCF
基於使用者的協同過濾演算法也被稱為最近鄰協同過濾或knn k nearest neighbor,k最近鄰演算法 其核心思想就是,首先根據相似度計算出目標使用者的鄰居集合,然後用鄰居使用者評分的加權組合來為目標使用者作推薦。通常這些演算法都可以總結成三步 首先,使用使用者已有的評分來計算使用者之間的相...
基於使用者的協同過濾演算法
最近正在讀項亮博士的 推薦系統實踐 人民郵電出版社,這本書應當是目前國內為數不多的介紹推薦演算法的了。目前正在學習基於使用者的協同過濾演算法 usercf user based collaborative filtering 該演算法是推薦系統中最古老的演算法,標誌著推薦系統的誕生,該演算法在199...