提供推薦

1. Collaborative Filtering

Collaborative Filtering: 經過喜愛相近的人構造推薦列表。html

如何表示喜愛?用嵌套字典表示不一樣人對不一樣影片的評分。嵌套字典的數據結構就像一棵樹,葉子節點(鍵值)表示最終的屬性。(源代碼下載地址)數據結構

>>>from recommendations import critics
>>> critics['Toby']
{'Snakes on a Plane': 4.5, 'Superman Returns': 4.0, 'You, Me and Dupree': 1.0}
>>> critics['Toby']['Superman Returns']
4.0

 

2. Finding Similar Users

Euclidean Distance Scoreide

評價公式:ui

該值越大,喜愛越類似,沒有共同評價過的電影,則返回 0.idea

Pearson Correlation Scorespa

數據不是很規範,好比有人習慣給高分,有人習慣給低分,用皮爾遜相關度評價效果更好。code

Pearson Correlation 實際上就是兩個向量的餘弦值,等於兩個向量中心化後(減去均值)的內積除以長度的乘積:htm

一樣,數值越大,兩個向量角度越小,喜愛越類似。此外,類似度度量方法還有 Jaccard 係數或者曼哈頓距離等,更多關於類似度度量信息能夠參考這篇博客.blog

Ranking the Criticsget

根據不一樣的類似度度量方法返回從高到低排好序的的類似者.

>>> from recommendations import *
>>> topMatches(critics, 'Toby', similarity=sim_pearson, n=3)
[(0.9912407071619299, 'Lisa Rose'), (0.9244734516419049, 'Mick LaSalle'), (0.8934051474415647, 'Claudia Puig')]

 

3. Recommending Items

如今咱們只獲得喜愛相同的人,怎麼才能獲得推薦的物品?咱們能夠查找與本身品味相投的人,並從他們喜愛的影片中找到本身沒有看過的電影,可是這樣不夠全面。能夠利用下面公式給本身沒有看過的電影進行評分預測:

相關文章
相關標籤/搜索