欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年12月23日 17:01:31   作者:gmHappy  
今天小編就為大家分享一篇Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

夾角余弦(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)。

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庫求解
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ù)。

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

皮爾遜相關(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庫求解
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))。

相關(guān)文章

  • Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

    Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

    這篇文章主要介紹了Django + Celery 實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • R語言繪制條形圖及分布密度圖代碼總結(jié)

    R語言繪制條形圖及分布密度圖代碼總結(jié)

    這篇文章主要為大家介紹了R語言條形圖及分布密度圖代碼總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 關(guān)于Python中的元組介紹

    關(guān)于Python中的元組介紹

    大家好,本篇文章主要講的是關(guān)于Python中的元組介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python創(chuàng)建普通菜單示例【基于win32ui模塊】

    Python創(chuàng)建普通菜單示例【基于win32ui模塊】

    這篇文章主要介紹了Python創(chuàng)建普通菜單,結(jié)合實(shí)例形式分析了Python基于win32ui模塊創(chuàng)建普通菜單及添加菜單項(xiàng)的相關(guān)操作技巧,并附帶說明了win32ui模塊的安裝命令,需要的朋友可以參考下
    2018-05-05
  • np.where()[0] 和 np.where()[1]的具體使用

    np.where()[0] 和 np.where()[1]的具體使用

    這篇文章主要介紹了np.where()[0] 和 np.where()[1]的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • PyQt 5 設(shè)置Logo圖標(biāo)和Title標(biāo)題的操作

    PyQt 5 設(shè)置Logo圖標(biāo)和Title標(biāo)題的操作

    這篇文章主要介紹了PyQt 5 設(shè)置Logo圖標(biāo)和Title標(biāo)題的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 探究Python中isalnum()方法的使用

    探究Python中isalnum()方法的使用

    這篇文章主要介紹了探究Python中isalnum()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 命令行運(yùn)行Python腳本時(shí)傳入?yún)?shù)的三種方式詳解

    命令行運(yùn)行Python腳本時(shí)傳入?yún)?shù)的三種方式詳解

    這篇文章主要介紹了命令行運(yùn)行Python腳本時(shí)傳入?yún)?shù)的三種方式詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 用vscode開發(fā)python的步驟詳解

    用vscode開發(fā)python的步驟詳解

    這篇文章主要介紹了用vscode開發(fā)python的步驟詳解,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • python?sklearn?畫出決策樹并保存為PDF的實(shí)現(xiàn)過程

    python?sklearn?畫出決策樹并保存為PDF的實(shí)現(xiàn)過程

    這篇文章主要介紹了python?sklearn?畫出決策樹并保存為PDF的實(shí)現(xiàn)過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評(píng)論