作為推薦系統 這一系列的第二篇文章,我們今天主要來聊一聊目前比較流行的一種推薦演算法——協調過濾;
當然,這裡我們只講理論,並不會涉及到相關**或者相關框架的使用,在這一系列的後續文章,如果可能,我們可以將我們的所有理論知識整合一下,實踐乙個 推薦系統的 實戰。
顧名思義,協同過濾就是指使用者可以齊心協力,通過不斷地和**互動,使自己的推薦列表能夠不斷過濾掉自己不感興趣的物品,從而越來越滿足自己的需求。這種僅僅基於使用者行為資料設計的推薦演算法一般稱為協同過濾演算法,一般來說可以分為以下幾種:
而今天我們要說的 基於使用者的協調過濾 就是一種基於鄰域的方法
;
基於鄰域的方法 又可以分為以下兩種演算法:。
實踐(只是為了加深理解哈)
上面都是空洞洞的文字描述,下面我們就乙個列子來加深一下理解
收集資料,假設我們現以收集如下資料
user
item1
item2
item3a1
10b1
11c0
11這是乙個簡單的 user 和 item 的矩陣,如果user購買過item 則標識為1 ,否則為 0。
計算使用者之間的相似度:
相似度的計算是有很多種方法的,如何準確的計算出兩個使用者之間的相似度是該演算法的乙個最重要的環節,至於相似度的計算,網上還是有相當多的資料的,這裡就不再贅述,下面我簡單的列舉了一些比較常用和簡單的計算方式
這裡囉嗦一下,雖然演算法分簡單 和 複雜,但是和演算法的效果是沒有絕對的關係的,所以不要小看那些簡單的演算法噢。找到和推薦使用者相似的使用者集合 ,並推薦
這裡我們只有乙個3個使用者,所以我們這個集合那就定為乙個吧,如果我們要給a推薦,那麼先找到與a相似的使用者集合
推薦既然我們找到了a使用者的相似使用者們是 b,而且也可以很簡單的發現 b 買過 item3,而a沒有買過,所以我們就給 a 推薦 item3
總結
基於使用者的協調過濾差不多就是這個樣子,當然實際生產環境你肯定得考慮很多其他因素,比如資料規模,資料特徵選取,特徵的權重等等等等。當然這些都不在討論之列,我們只要知道該演算法是個什麼,怎麼做的,有什麼用就好了。最後我們再來總結下這個演算法優劣吧:+
好了,就說到這裡吧,文中一會買,一會用,一會感興趣,大家就別太計較了哈,理解意思就好。。。。嘿嘿嘿嘿
推薦系統之基於使用者的協調過濾
在如何海量的資料時代,如何從海量的商品中選擇相關產品?在1100萬首itunes曲目中,肯定有一部分 是你特別喜愛的,那麼該如何找到它們呢?專家點評推薦 影評家 通過商品本身尋找 我喜歡披頭四的一張 所以會認為他們的另一張 也不錯 資料探勘不僅僅是用來推薦商品,或是單單給商人增加銷量,同時也能擴充套...
推薦演算法之基於使用者的協調過濾
基於使用者的的協調過濾演算法是推薦統統最古老的演算法,簡稱usercf。該演算法的誕生一定程度上標誌著推薦系統的誕生。本文將對usercf演算法原理進行講解,並且基於movielens資料集給出實現 供大家交流學習。找到和目標使用者興趣相似的使用者集合 找到這個集合中使用者喜歡的且目標使用者沒有聽說...
基於使用者的協調推薦演算法
這個是實驗周拓展的任務。做的是基於使用者的協同過濾演算法,參考的是 集體智慧型程式設計 第一章的內容,選取的資料是moives的100k的資料。詳細可以見實驗周的實驗報告。coding utf 8 import codecs from math import sqrt 皮爾遜相關度評價 defsim...