天天看點

【機器學習算法-python實作】協同過濾(cf)的三種方法實作1.背景2.常用方法

      協同過濾(collaborative filtering)是推薦系統常用的一種方法。cf的主要思想就是找出物品相似度高的歸為一類進行推薦。cf又分為icf和ucf。icf指的是item collaborative filtering,是将商品進行分析推薦。同理ucf的u指的是user,他是找出知趣相似的人,進行推薦。通常來講icf的準确率可能會高一些,通過這次參加天貓大資料比賽,我覺得隻有在資料量非常龐大的時候才适合用cf,如果資料量很小,cf的準确率會非常可憐。部落客在比賽s1階段,大概隻有幾萬條資料的時候,嘗試了icf,準确率不到百分之一。。。。。

     cf的常用方法有三種,分别是歐式距離法、皮爾遜相關系數法、餘弦相似度法。

       測試矩陣,行表示三名使用者,清單示三個品牌,對品牌的喜愛度按照1~5增加。

【機器學習算法-python實作】協同過濾(cf)的三種方法實作1.背景2.常用方法

        就是計算每兩個點的距離,比如Nike和Sony的相似度

【機器學習算法-python實作】協同過濾(cf)的三種方法實作1.背景2.常用方法

。數值越小,表示相似的越高。

        兩個變量之間的相關系數越高,從一個變量去預測另一個變量的精确度就越高,這是因為相關系數越高,就意味着這兩個變量的共變部分越多,是以從其中一個變量的變化就可越多地獲知另一個變量的變化。如果兩個變量之間的相關系數為1或-1,那麼你完全可由變量X去獲知變量Y的值。

·         當相關系數為0時,X和Y兩變量無關系。

·         當X的值增大,Y也增大,正相關關系,相關系數在0.00與1.00之間

·         當X的值減小,Y也減小,正相關關系,相關系數在0.00與1.00之間

·         當X的值增大,Y減小,負相關關系,相關系數在-1.00與0.00之間

          當X的值減小,Y增大,負相關關系,相關系數在-1.00與0.00之間

相關系數的絕對值越大,相關性越強,相關系數越接近于1和-1,相關度越強,相關系數越接近于0,相關度越弱。

【機器學習算法-python實作】協同過濾(cf)的三種方法實作1.背景2.常用方法

            在python中用函數corrcoef實作,具體方法見http://infosec.pku.edu.cn/~dulz/doc/Numpy_Example_List.htm

         通過測量兩個向量内積空間的夾角的餘弦值來度量它們之間的相似性。0度角的餘弦值是1,而其他任何角度的

餘弦值都不大于1;并且其最小值是-1。進而兩個向量之間的角度的餘弦值确定兩個向量是否大緻指向相同的方向。兩

個向量有相同的指向時,餘弦相似度的值為1;兩個向量夾角為90°時,餘弦相似度的值為0;兩個向量指向完全相

反的方向時,餘弦相似度的值為-1。在比較過程中,向量的規模大小不予考慮,僅僅考慮到向量的指向方向。餘弦相

似度通常用于兩個向量的夾角小于90°之内,是以餘弦相似度的值為0到1之間。

【機器學習算法-python實作】協同過濾(cf)的三種方法實作1.背景2.常用方法

<a target="_blank" href="https://github.com/X-Brain/MachineLearning">代碼:點選檢視</a>