舉個例子,假設我有一個非常簡單的數據集。我給了一個csv三列,user_id,book_id,rating。評分可以是0-5的任何數字,其中0表示用戶具有而不是評價該書。正確解釋餘弦角距離相似度和歐幾里得距離相似度
比方說,我隨機挑三個用戶,我得到這些功能/評級向量。
馬丁:< 3,3,5,1,2,3,2,2,5>
雅各布:< 3,3,5,0,0,0,0,0,0>
格蘭特:< 1,1,1,2,2,2,2,2,2>
相似度計算:
+--------------+---------+---------+----------+ | | M & J | M & G | J & G | +--------------+---------+---------+----------+ | Euclidean | 6.85 | 5.91 | 6.92 | +--------------+---------+---------+----------+ | Cosine | .69 | .83 | .32 | +--------------+---------+---------+----------+
現在,我相似的期望是,馬丁和賈玉米棒將是最相似的。我期待這一點,因爲他們對這兩本書評價的書籍的評分完全相同。但我們最終發現馬丁和格蘭特是最相似的。
我從數學上理解我們如何得出這個結論,但我不明白如何依靠餘弦角距離或歐幾里德距離作爲計算相似性的方法,如果發生這種類型的事情。馬丁和格蘭特比馬丁和雅各布更類似的解釋是什麼?
我以爲有一個想法就是計算歐幾里德距離,但忽略一個用戶沒有評價過該書的所有書籍。
我然後用這個
+--------------+---------+---------+----------+ | | M & J | M & G | J & G | +--------------+---------+---------+----------+ | Euclidean | 0 | 5.91 | 6.92 | +--------------+---------+---------+----------+ | Cosine | .69 | .83 | .32 | +--------------+---------+---------+----------+
當然我現在有0歐幾里得距離,這符合我期望的推薦系統的結束。我看到很多教程和講座都使用餘弦角度距離來忽略未分級的書籍,而不是使用歐幾里德並忽略它們,所以我認爲這一般不會工作。
編輯:
只是嘗試了一下,我調整雅各布的特徵向量更加相似:
雅各布:< 3,3,5,1,2,3,2,0, 0>
當我計算與馬丁的餘弦角距離時,我仍然只得到.82!與馬丁和格蘭特相比,仍然不那麼相似,但通過檢查,我預計這兩者會非常相似。
有人可以幫助解釋我的思維錯誤,並可能提出另一種相似性措施嗎?