皮爾遜相關度

2021-08-08 21:30:41 字數 975 閱讀 9217

在進行影片相似度計算的時候,有的人對於影片的評分習慣偏低,有的人習慣偏高,皮爾遜方法可以修正「誇大分值」的情況。

如果某人總是傾向於給出比另乙個人更高的分值,而二者的分值又始終保持一致,則他們也會存在很高的相關性。

# recommendations.py

# 返回p1和p2的相關係數

def sim_pearson(prefs,p1,p2):

# 得到雙方都曾評價過的物品列表

si={}

foritem

in prefs[p1]:

ifitem

in prefs[p2]:

si[item]=1

# 列表元素的個數

n=len(si)

# 如果兩者沒有共同之處,則返回1

if n==0:return

1# 對所有的偏好求和

sum1=sum([prefs[p1][it]for

itin si])

sum2=sum([prefs[p2][it]for

itin si])

#求平方和

sum1sq=sum([pow(prefs[p1][it],2)for

itin si])

sum2sq=sum([pow(prefs[p2][it],2)for

itin si])

#求乘積之和

psum=sum([prefs[p1][it]*prefs[p2][it]for

itin si])

# 計算皮爾遜評價值

num=psum-(sum1*sum2/n)

den=sqrt((sum1sq-pow(sum1,2)/n)*(sum2sq-pow(sum2,2)/n))

if den==0:return

0 r=num/den

return r

該函式將會返回乙個介於-1和1之間的數值。

皮爾遜相關度評價

1 用在資料不是很規範的時候 2 最佳擬合線 3 誇大分值 4 皮爾遜積差係數 其中,e是數學期望,cov表示協方差,和是標準差。因為,同樣地,對於 可以寫成 當兩個變數的標準差都不為零,相關係數才有定義。從柯西 施瓦茨不等式可知,相關係數的絕對值不超過1。當兩個變數的線性關係增強時,相關係數趨於1...

歐幾里德距離 皮爾遜相關度 Tanimoto

集體智慧型程式設計正式開始了接觸,第一課便是如何尋找想進使用者 也就是兩者的相似程度 正如大多數的推送服務一樣,通過計算你和其他的使用者的相似程度,給你推薦最佳匹配人認為很好的但是你還沒有購買的東西。測試資料如下 就是巢狀字典,共7個人對使用過的商品的評價 critics gene seymour ...

皮爾遜相關度歐式距離以及曼哈頓距離

有些時候我們需要獲得一些事物的相似度評價值,例如我們可以獲取到大量的資料用以分析人們在品味方面的相似度,為此,我們可以將沒個人與所有其他人進行對比,並計算他們的相似度評價。有很多種方法能夠幫助我們來實現這個目的,而我們今天要提到的則是歐幾里得距離和皮耶爾遜相關度,同時作為引申,簡單地涉及一些曼哈頓距...