最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Numpy計(jì)算各類距離的方法

 更新時(shí)間:2019年07月05日 10:56:38   作者:_yuki_  
這篇文章主要介紹了Python Numpy計(jì)算各類距離的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

詳細(xì):

1.閔可夫斯基距離(Minkowski Distance)

2.歐氏距離(Euclidean Distance)

3.曼哈頓距離(Manhattan Distance)

4.切比雪夫距離(Chebyshev Distance)

5.夾角余弦(Cosine)

6.漢明距離(Hamming distance)

7.杰卡德相似系數(shù)(Jaccard similarity coefficient)

8.貝葉斯公式

1.閔氏距離的定義:

兩個(gè)n維變量A(x11,x12,…,x1n)與 B(x21,x22,…,x2n)間的閔可夫斯基距離定義為:


其中p是一個(gè)變參數(shù)。

當(dāng)p=1時(shí),就是曼哈頓距離

當(dāng)p=2時(shí),就是歐氏距離

當(dāng)p→∞時(shí),就是切比雪夫距離

根據(jù)變參數(shù)的不同,閔氏距離可以表示一類的距離。

np.linalg.norm #是適合使用這個(gè)公式

2.歐氏距離(Euclidean Distance)

歐氏距離(L2范數(shù))是最易于理解的一種距離計(jì)算方法,源自歐氏空間中兩點(diǎn)間的距離公式(如圖1.9)。


python實(shí)現(xiàn)歐式距離公式的:

vector1 = np.array([1,2,3])
vector2 = np.array([4,5,6])
 
op1=np.sqrt(np.sum(np.square(vector1-vector2)))
op2=np.linalg.norm(vector1-vector2)
print(op1)
print(op2)
#輸出:
#5.19615242271
#5.19615242271

3.曼哈頓距離(Manhattan Distance)

從名字就可以猜出這種距離的計(jì)算方法了。想象你在曼哈頓要從一個(gè)十字路口開車到另外一個(gè)十字路口,駕駛距離是兩點(diǎn)間的直線距離嗎?顯然不是,除非你能穿越大樓。實(shí)際駕駛距離就是這個(gè)“曼哈頓距離”(L1范數(shù))。而這也是曼哈頓距離名稱的來源,曼哈頓距離也稱為城市街區(qū)距離(City Block distance)(如圖1.10)。


python實(shí)現(xiàn)曼哈頓距離:

vector1 = np.array([1,2,3])
vector2 = np.array([4,5,6])
 
op3=np.sum(np.abs(vector1-vector2))
op4=np.linalg.norm(vector1-vector2,ord=1)
#輸出
#9
#9.0

4.切比雪夫距離(Chebyshev Distance)

國際象棋玩過么?國王走一步能夠移動(dòng)到相鄰的8個(gè)方格中的任意一個(gè)(如圖1.11)。那么國王從格子(x1,y1)走到格子(x2,y2)最少需要多少步?自己走走試試。你會(huì)發(fā)現(xiàn)最少步數(shù)總是max(| x2-x1| , |y2-y1| ) 步。有一種類似的一種距離度量方法叫切比雪夫距離(L∞范數(shù))。


 Python實(shí)現(xiàn)切比雪夫距離:

vector1 = np.array([1,2,3])
vector2 = np.array([4,7,5])
op5=np.abs(vector1-vector2).max()
op6=np.linalg.norm(vector1-vector2,ord=np.inf)
print(op5)
print(op6)
#輸出:
#5
#5.0

5. 夾角余弦(Cosine)

幾何中夾角余弦可用來衡量兩個(gè)向量方向的差異,機(jī)器學(xué)習(xí)中借用這一概念來衡量樣本向量之間的差異(如圖1.12)。


(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è)向量的夾角越小,夾角余弦越小表示兩向量的夾角越大。當(dāng)兩個(gè)向量的方向重合時(shí)夾角余弦取最大值1,當(dāng)兩個(gè)向量的方向完全相反夾角余弦取最小值-1。

python實(shí)現(xiàn)夾角余弦

vector1 = np.array([1,2,3])
vector2 = np.array([4,7,5])
 
op7=np.dot(vector1,vector2)/(np.linalg.norm(vector1)*(np.linalg.norm(vector2)))
print(op7)
#輸出
#0.929669680201

6. 漢明距離(Hamming distance)

(1)漢明距離的定義

兩個(gè)等長字符串s1與s2之間的漢明距離定義為將其中一個(gè)變?yōu)榱硗庖粋€(gè)所需要作的最小替換次數(shù)。例如字符串“1111”與“1001”之間的漢明距離為2。

應(yīng)用:信息編碼(為了增強(qiáng)容錯(cuò)性,應(yīng)使得編碼間的最小漢明距離盡可能大)。

(2) python實(shí)現(xiàn)漢明距離:

v1=np.array([1,1,0,1,0,1,0,0,1])
v2=np.array([0,1,1,0,0,0,1,1,1])
smstr=np.nonzero(v1-v2)
print(smstr) # 不為0 的元素的下標(biāo)
sm= np.shape(smstr[0])[0] 
print( sm )
#輸出
#(array([0, 2, 3, 5, 6, 7]),)
#6

7. 杰卡德相似系數(shù)(Jaccard similarity coefficient)

(1) 杰卡德相似系數(shù)

兩個(gè)集合A和B的交集元素在A,B的并集中所占的比例,稱為兩個(gè)集合的杰卡德相似系數(shù),用符號(hào)J(A,B)表示。


(2) 杰卡德距離

與杰卡德相似系數(shù)相反的概念是杰卡德距離(Jaccard distance)。杰卡德距離可用如下公式表示:

杰卡德距離用兩個(gè)集合中不同元素占所有元素的比例來衡量兩個(gè)集合的區(qū)分度。

(3) 杰卡德相似系數(shù)與杰卡德距離的應(yīng)用

可將杰卡德相似系數(shù)用在衡量樣本的相似度上。

樣本A與樣本B是兩個(gè)n維向量,而且所有維度的取值都是0或1。例如:A(0111)和B(1011)。我們將樣本看成是一個(gè)集合,1表示集合包含該元素,0表示集合不包含該元素。

P:樣本A與B都是1的維度的個(gè)數(shù)

q:樣本A是1,樣本B是0的維度的個(gè)數(shù)

r:樣本A是0,樣本B是1的維度的個(gè)數(shù)

s:樣本A與B都是0的維度的個(gè)數(shù)

那么樣本A與B的杰卡德相似系數(shù)可以表示為:

這里p+q+r可理解為A與B的并集的元素個(gè)數(shù),而p是A與B的交集的元素個(gè)數(shù)。

而樣本A與B的杰卡德距離表示為:


 Python實(shí)現(xiàn)杰卡德距離:

import scipy.spatial.distance as dist
 
v1=np.array([1,1,0,1,0,1,0,0,1])
v2=np.array([0,1,1,0,0,0,1,1,1])
 
matv=np.array([v1,v2])
print(matv)
ds=dist.pdist(matv,'jaccard')
print(ds)
 
#輸出
#[[1 1 0 1 0 1 0 0 1] [0 1 1 0 0 0 1 1 1]]
 
# [ 0.75]

8. 經(jīng)典貝葉斯公式

原: P(AB)=P(A | B)·P(B)=P(B | A)·P(A)


本例,我們不去研究黃色的蘋果與黃色的梨有什么差別。而承認(rèn)其統(tǒng)計(jì)規(guī)律:蘋果是紅色的概率是0.8,蘋果是黃色的概率就是1-0.8=0.2,而梨是黃色的概率是0.9,將其作為先驗(yàn)概率。有了這個(gè)先驗(yàn)概率,就可以利用抽樣,即任取一個(gè)水果,前提是抽樣對(duì)總體的概率分布沒有影響,通過它的某個(gè)特征來劃分其所屬的類別。黃色是蘋果和梨共有的特征,因此,既有可能是蘋果也有可能是梨,概率計(jì)算的意義在于得到這個(gè)水果更有可能的那一種。

條件: 10個(gè)蘋果10個(gè)梨子

用數(shù)學(xué)的語言來表達(dá),就是已知:

# P(蘋果)=10/(10+10),P(梨)=10/(10+10),P(黃色|蘋果)=20%,P(黃色|梨)=90%,P(黃色)= 20% * 0.5 + 90% * 0.5 = 55%

求P(梨|黃色):

# = P(黃色|梨)P(梨)/P(黃色)
 
# = 81.8%

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pthon貪吃蛇游戲詳細(xì)代碼

    pthon貪吃蛇游戲詳細(xì)代碼

    這篇文章主要為大家詳細(xì)介紹了Python貪吃蛇游戲詳細(xì)代碼和注釋,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 我喜歡你 抖音表白程序python版

    我喜歡你 抖音表白程序python版

    我喜歡你!這篇文章主要為大家詳細(xì)介紹了抖音表白程序python版的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • flask 框架操作MySQL數(shù)據(jù)庫簡單示例

    flask 框架操作MySQL數(shù)據(jù)庫簡單示例

    這篇文章主要介紹了flask 框架操作MySQL數(shù)據(jù)庫,結(jié)合實(shí)例形式詳細(xì)分析了flask框架操作MySQL數(shù)據(jù)庫的連接、表格創(chuàng)建、數(shù)據(jù)增刪改查等相關(guān)使用技巧,需要的朋友可以參考下
    2020-02-02
  • 教你用Python腳本快速為iOS10生成圖標(biāo)和截屏

    教你用Python腳本快速為iOS10生成圖標(biāo)和截屏

    這篇文章主要介紹了教你用Python快速為iOS10生成圖標(biāo)和截屏的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • Python中的各個(gè)多線程模塊之間的區(qū)別解析

    Python中的各個(gè)多線程模塊之間的區(qū)別解析

    Python中涉及多線程的主要模塊包括threading、thread和concurrent.futures,現(xiàn)代Python編程推薦使用threading和concurrent.futures,以提供更高層次的抽象和可用性,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 如何使用Python控制攝像頭錄制視頻

    如何使用Python控制攝像頭錄制視頻

    這篇文章主要介紹了如何使用Python控制攝像頭錄制視頻,實(shí)現(xiàn)過程需要用到三個(gè)庫tkinter庫、PIL庫、cv2庫,下面將內(nèi)容詳細(xì)的一步一步實(shí)現(xiàn),希望對(duì)你有所啟發(fā)并能做一個(gè)屬于自己的攝像頭控制程序
    2022-03-03
  • Python實(shí)現(xiàn)笑臉檢測(cè)+人臉口罩檢測(cè)功能

    Python實(shí)現(xiàn)笑臉檢測(cè)+人臉口罩檢測(cè)功能

    這篇文章主要介紹了Python實(shí)現(xiàn)笑臉檢測(cè)+人臉口罩檢測(cè),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 基于Pytorch的神經(jīng)網(wǎng)絡(luò)之Regression的實(shí)現(xiàn)

    基于Pytorch的神經(jīng)網(wǎng)絡(luò)之Regression的實(shí)現(xiàn)

    本文主要介紹了基于Pytorch的神經(jīng)網(wǎng)絡(luò)之Regression的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python的flask常用函數(shù)route()

    Python的flask常用函數(shù)route()

    這篇文章主要介紹了Python的flask常用函數(shù)route(),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Ubuntu安裝Jupyter Notebook教程

    Ubuntu安裝Jupyter Notebook教程

    這篇文章主要為大家詳細(xì)介紹了Ubuntu安裝Jupyter Notebook教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評(píng)論

尖扎县| 将乐县| 龙井市| 伊宁县| 闸北区| 三河市| 清河县| 夏河县| 拉孜县| 新野县| 巨鹿县| 雷州市| 外汇| 客服| 德州市| 长海县| 马鞍山市| 土默特右旗| 屏东市| 鄯善县| 祁阳县| 汾阳市| 社会| 白沙| 武威市| 五寨县| 康乐县| 时尚| 通州区| 喀什市| 靖远县| 连城县| 莎车县| 丹江口市| 枝江市| 万源市| 临沭县| 革吉县| 大丰市| 拉孜县| 临猗县|