限時干貨下載: 回復【7】免費獲取【完整數據分析資料?。ò⊿PSS、SAS、SQL、EXCEL、Project)!】 來源:https://segmentfault.com/a/1190000005152849 作者:肥肥的兔子 1 前言 我和室友們產生了劇荒,萌生出要做一個個人用的推薦系統,解決劇荒的問題的想法,經過一輪的死纏爛打,這個個人推薦系統終于成型了。 今天來分享一下心得,對此感興趣的朋友可以自己對著寫一個。 2 傳統推薦算法系統 首先介紹一下傳統的推薦系統方法,之所以叫它傳統,是因為大部分學習資料上都是用這一個方法。 我們來假設有這么一個矩陣(用 矩陣的行代表用戶,列表示物品,其交點表示用戶對該物品的評分。 假設現在用戶1需要選商品,推薦系統則假設其會選擇并未選擇過的商品,因此,系統會在第一行中尋找評分為0的物品,顯然會找到B和C。這時,該怎么知道是推薦B還是C呢?(假設用戶只需推薦一個),這時則需要計算B、C和用戶以前選擇過的物品(已評分)的相似度。 僅僅算出相似度還不夠,因為你不能判斷這到底是好的那一部分相似還是壞的部分相似。所以這時,我們需要引入用戶的評分作為相似度計算的權重, 顯然,上述問題的核心在于如何計算相似度。 這里給出計算相似度的兩種方法:
AB為兩列向量,||A||表示A的2范數 3 少用戶推薦系統的創新 在上述的內容中,我們可以發現傳統的方法有一個特出的問題,傳統的算法需要大量的用戶評分,即矩陣的行數需要較多才能得出的結果才值得參考。這一個需求咋看起來是沒什么問題,也符合我們的邏輯,唯有數據量足夠,我們才能找到較為準確的規律嘛。 但回到我的需求上來說,這可是一個明顯的缺點,在前言我說明的需求上說過這是一個給宿舍甚至是個人使用的推薦系統。 也就是說:
因此,傳統的推薦算法有很多不適合我需求的地方,但是看問題要看本質。無非就是根據用戶的特性,或者根據商品特性,進行與訓練好的模型進行相似性比較。抓住這些特點,我做了少少的'創新'
實現上述想法,在python中,我們可以這么做,實現如下字典 在實現推薦時,則較為容易實現,給定
這樣,一個適合少用戶的推薦系統就弄出來啦~ 現在正在宿舍投入運行,至于效果如何可能要一段時間才知道了 4 后話 github 地址:https://github.com/MashiMaroLjc/ML-and-DM-in-action/tree/master/DouBanMovie 說明一下,github上只是提供了一個實現了上述改進后思路的類
|
|
來自: 昵稱35093561 > 《python》