推薦中相似度計算問題(選擇與總結)


《Dataminingguide》書閱讀,第二章 推薦系統入門

1、 曼哈頓距離

最簡單的距離計算方式。在二維計算模型中,每個人都可以用(X,Y)的點來表示。例如(X1,Y1)來表示艾米,(X2,Y2)來表示另一位人,那么他們之間的曼哈頓距離就是:
|X1-X2|+|Y1-Y2|

也就是x之差的絕對值加上y之差的絕對值。

曼哈頓距離的優點之一就是計算速度快,對於Facebook這樣需要計算百萬用戶之間的相似度時就非常有利。

2、 歐幾里得距離

還是用(X,Y)來表示一個人,那么兩個人之間的距離就是:

 
歐幾里得距離計算

在計算兩個用戶之間的相似度距離時,只取雙方都評價過的商品。

曼哈頓距離和歐幾里得距離在 數據完整 的情況下效果最好。

3、閔克夫斯基距離

可以將曼哈頓距離和歐幾里得距離歸納成一個公式,這個公式稱為閔可夫斯基距離:

 
image.png

R值越大,單個維度的差值大小會對整體距離有更大的影響。

4、 皮爾遜相關系數

分數膨脹:例如用戶對樂隊的評分,可以發現每個用戶的打分標准非常不同,A的4分相當於B的4分還是5分?

解決方法之一就是使用皮爾遜相關系數。

皮爾森相關系數用於衡量兩個變量之間的相關性,它的值在-1到1之間,1表示完全吻合,-1表示完全相悖。

皮爾遜相關系數的計算公式是:

 
image.png

上面的公式除了看起來比較復雜,另一個問題是要獲得計算結果必須對數據做多次便利,好在有另外一個公式,能夠計算皮爾遜相關系數的近似值:

 
image.png

這個公式看起來更加復雜,而且計算結果不太穩定,有一定誤差存在,但是最大的有點是用代碼實現的時候可以只遍歷一次數據。

5、 余弦相似度

余弦相似度的計算中會略過這些非零值。它的計算公式是:

 
image.png

舉個例子:

 
image.png

總結

該選擇哪種相似度計算: 如果數據存在“分數膨脹”,就是用皮爾遜相關系數。

如果數據之間比較“密集”,數據比較完整,變量之間基本存在公有值,且這些距離數據是非常重要的,那就使用歐幾里得或曼哈頓距離。
(空缺值處理:用0代替空缺值的方法可能會造成較大誤差,“平均值”填充效果好於0值填充)

如果數據是稀疏的,則使用余弦相似度。



轉自: https://www.jianshu.com/p/67f8bd5fc7ad


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM