溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計(jì)算實(shí)例

發(fā)布時(shí)間:2020-10-04 12:24:02 來源:腳本之家 閱讀:311 作者:gmHappy 欄目:開發(fā)技術(shù)

夾角余弦(Cosine)

也可以叫余弦相似度。 幾何中夾角余弦可用來衡量?jī)蓚€(gè)向量方向的差異,機(jī)器學(xué)習(xí)中借用這一概念來衡量樣本向量之間的差異。

(1)在二維空間中向量A(x1,y1)與向量B(x2,y2)的夾角余弦公式:

(2) 兩個(gè)n維樣本點(diǎn)a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夾角余弦

類似的,對(duì)于兩個(gè)n維樣本點(diǎn)a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用類似于夾角余弦的概念來衡量它們間的相似程度。

即:

余弦取值范圍為[-1,1]。求得兩個(gè)向量的夾角,并得出夾角對(duì)應(yīng)的余弦值,此余弦值就可以用來表征這兩個(gè)向量的相似性。夾角越小,趨近于0度,余弦值越接近于1,它們的方向更加吻合,則越相似。當(dāng)兩個(gè)向量的方向完全相反夾角余弦取最小值-1。當(dāng)余弦值為0時(shí),兩向量正交,夾角為90度。因此可以看出,余弦相似度與向量的幅值無關(guān),只與向量的方向相關(guān)。

Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計(jì)算實(shí)例

import numpy as np
x=np.random.random(10)
y=np.random.random(10)
 
#方法一:根據(jù)公式求解
d1=np.dot(x,y)/(np.linalg.norm(x)*np.linalg.norm(y))
 
#方法二:根據(jù)scipy庫(kù)求解
from scipy.spatial.distance import pdist
X=np.vstack([x,y])
d2=1-pdist(X,'cosine')

兩個(gè)向量完全相等時(shí),余弦值為1,如下的代碼計(jì)算出來的d=1。

d=1-pdist([x,x],'cosine')

皮爾遜相關(guān)系數(shù)(Pearson correlation)

(1) 皮爾遜相關(guān)系數(shù)的定義

前面提到的余弦相似度只與向量方向有關(guān),但它會(huì)受到向量的平移影響,在夾角余弦公式中如果將 x 平移到 x+1, 余弦值就會(huì)改變。怎樣才能實(shí)現(xiàn)平移不變性?這就要用到皮爾遜相關(guān)系數(shù)(Pearson correlation),有時(shí)候也直接叫相關(guān)系數(shù)。

如果將夾角余弦公式寫成:

Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計(jì)算實(shí)例

皮爾遜相關(guān)系數(shù)具有平移不變性和尺度不變性,計(jì)算出了兩個(gè)向量(維度)的相關(guān)性。

在python中的實(shí)現(xiàn):'

import numpy as np
x=np.random.random(10)
y=np.random.random(10)
 
#方法一:根據(jù)公式求解
x_=x-np.mean(x)
y_=y-np.mean(y)
d1=np.dot(x_,y_)/(np.linalg.norm(x_)*np.linalg.norm(y_))
 
#方法二:根據(jù)numpy庫(kù)求解
X=np.vstack([x,y])
d2=np.corrcoef(X)[0][1]

相關(guān)系數(shù)是衡量隨機(jī)變量X與Y相關(guān)程度的一種方法,相關(guān)系數(shù)的取值范圍是[-1,1]。相關(guān)系數(shù)的絕對(duì)值越大,則表明X與Y相關(guān)度越高。當(dāng)X與Y線性相關(guān)時(shí),相關(guān)系數(shù)取值為1(正線性相關(guān))或-1(負(fù)線性相關(guān))。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI