pearson 相關係數是用協方差除以兩個變數的標準差得到的,雖然協方差能反映兩個隨機變數的相關程度(協方差大於0的時候表示兩者正相關,小於0的時候表示兩者負相關),但其數值上受量綱的影響很大,不能簡單地從協方差的數值大小給出變數相關程度的判斷。為了消除這種量綱的影響,於是就有了相關係數的概念。
由上圖可以總結,當相關係數為1時,成為完全正相關;當相關係數為-1時,成為完全負相關;相關係數的絕對值越大,相關性越強;相關係數越接近於0,相關度越弱。
python 實現
def pearson(self,rating1,rating2):
sum_xy = 0
sum_x = 0
sum_y = 0
sum_x2 = 0
sum_y2 = 0
num = 0
for key in rating1.keys():
if key in rating2.keys():
num += 1
x = rating1[key]
y = rating2[key]
sum_xy += x * y
sum_x += x
sum_y += y
sum_x2 += math.pow(x,2)
sum_y2 += math.pow(y,2)
if num == 0:
return 0
# 皮爾遜相關係數分母
denominator = math.sqrt( sum_x2 - math.pow(sum_x,2) / num) * math.sqrt( sum_y2 - math.pow(sum_y,2) / num )
if denominator == 0:
return 0
else:
return ( sum_xy - ( sum_x * sum_y ) / num ) / denominator
相似度計算方法
1.余弦相似度 在平面系 a向量與b向量的夾角越小,說明相似度越大,余弦值越接近1,就表明夾角越接近0度,也就是兩個向量越相似,這就叫 余弦相似性 在三維也是乙個道理 x,y,z 確定的一點與點 a,b,c 一點的夾角 高中學過向量a與向量b的乘積定義為 所以兩者的夾角為 cos a b a b 分...
相似度計算方法學習
var e x e x 2x e x 2 e x 最後推出方差就是平方的均值減去 均值的平方 協方差就是看兩個變數是否正負相關,也就是數值上變化是否同或反向 相關係數直接衡量的就是線性相關關係,取值就在 1之間,體現的含義是x和y多大程度在一條斜率存在且不為0的直線上 余弦距離,也稱為余弦相似度,是...
數學 相似度計算方法 距離
在資料分析和資料探勘以及搜尋引擎中,我們經常需要知道個體間差異的大小,進而評價個體的相似性和類別。常見的比如資料分析中比如相關分析,資料探勘中的分類聚類 k means等 演算法,搜尋引擎進行物品推薦時。相似度就是比較兩個事物的相似性。一般通過計算事物的特徵之間的距離,如果距離小,那麼相似度大 如果...