日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

数学中几种经常使用的距离

發布時間:2023/12/31 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 数学中几种经常使用的距离 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數學中有非常多不同種類的距離,經常使用于幾何、高等代數等數學研究。

多種多樣的距離在數學建模、計算機學習中有著不小的應用。

比方,A*搜索時的評估函數。

比方,在機器學習中,做分類時經常須要估算不相同本之間的類似性度量(Similarity Measurement)。這時通常採用的方法就是計算樣本間的距離。採用什么樣的方法計算距離是非常講究。甚至關系到分類的正確與否。

歐氏距離(Euclidean Distance)

歐氏距離是最易于理解的一種距離計算方法,源自歐幾里得幾何中兩點間的距離公式。

(1)二維平面上兩點a(x1,y1)與b(x2,y2)間的歐氏距離:

(2)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的歐氏距離:

也能夠用表示成向量運算的形式:

(4)Matlab計算歐氏距離

Matlab計算距離主要使用pdist函數。

若X是一個M×N的矩陣。則pdist(X)將X矩陣M行的每一行作為一個N維向量。然后計算這M個向量兩兩間的距離。

樣例:計算向量(0,0)、(1,0)、(0,2)兩兩間的歐式距離

X = [0 0 ; 1 0 ; 0 2]

D = pdist(X,'euclidean') %大家能夠去查一查pdist的參數

結果:

D =

    1.0000    2.0000    2.2361

曼哈頓距離(Manhattan Distance)

從名字就能夠猜出這樣的距離的計算方法了。想象你在曼哈頓要從一個十字路口開車到另外一個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。

實際駕駛距離就是這個“曼哈頓距離”。而這也是曼哈頓距離名稱的來源, 曼哈頓距離也稱為城市街區距離(City Block distance)。

(1)二維平面兩點a(x1,y1)與b(x2,y2)間的曼哈頓距離

(2)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的曼哈頓距離

(3) Matlab計算曼哈頓距離

樣例:計算向量(0,0)、(1,0)、(0,2)、(2,2)兩兩間的曼哈頓距離

X = [0 0 ; 1 0 ; 0 2 ; 2 2];

D = pdist(X,'cityblock')

結果:

D =

     1     2     4     3     3     2

切比雪夫距離 ( Chebyshev Distance )

國際象棋玩過么?國王走一步能夠移動到相鄰的8個方格中的隨意一個。那么國王從格子(x1,y1)走到格子(x2,y2)最少須要多少步?自己走走試試。

你會發現最少步數總是max( | x2-x1 | , | y2-y1 | ) 步 。有一種類似的一種距離度量方法叫切比雪夫距離。

(1)二維平面兩點a(x1,y1)與b(x2,y2)間的切比雪夫距離

(2)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的切比雪夫距離

  這個公式的還有一種等價形式是

看不出兩個公式是等價的?提示一下:試試用放縮法和夾逼法則來證明。

(3)Matlab計算切比雪夫距離

樣例:計算向量(0,0)、(1,0)、(0,2)兩兩間的切比雪夫距離

X = [0 0 ; 1 0 ; 0 2]

D = pdist(X, 'chebychev')

結果:

D =

     1     2     2

閔可夫斯基距離(Minkowski Distance)

閔氏距離不是一種距離。而是一組距離的定義,上文說的幾個距離都是屬于閔可夫斯基距離的。

(1) 閔氏距離的定義

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

當中p是一個變參數。

當p=1時,就是曼哈頓距離

當p=2時,就是歐氏距離

當p→∞時,就是切比雪夫距離

依據變參數的不同。閔氏距離能夠表示一類的距離。

(2)閔氏距離的缺點

閔氏距離。包括曼哈頓距離、歐氏距離和切比雪夫距離都存在明顯的缺點。

舉個樣例:
二維樣本(身高,體重),當中身高范圍是[150,190],體重范圍是[50,60],有三個樣本:a(180,50),b(190,50),c(180,60)。
那么a與b之間的閔氏距離(不管是曼哈頓距離、歐氏距離或切比雪夫距離)等于a與c之間的閔氏距離,可是身高的10cm真的等價于體重的10kg么?因此用閔氏距離來衡量這些樣本間的類似度非常有問題。

簡單說來。閔氏距離的缺點主要有兩個:
(1)將各個分量的量綱(scale),也就是“單位”當作相同的看待了。
(2)沒有考慮各個分量的分布(期望,方差等)可能是不同的。

(3)Matlab計算閔氏距離

樣例:計算向量(0,0)、(1,0)、(0,2)兩兩間的閔氏距離(以變參數為2的歐氏距離為例)

X = [0 0 ; 1 0 ; 0 2]

D = pdist(X,'minkowski',2)

結果:

D =

    1.0000    2.0000    2.2361

標準化歐氏距離 (Standardized Euclidean distance )

(1)標準歐氏距離的定義

標準化歐氏距離是針對簡單歐氏距離的缺點而作的一種改進方案。

標準歐氏距離的思路:既然數據各維分量的分布不一樣。那先將各個分量都“標準化”到均值、方差相等。

均值和方差標準化到多少呢?這里先復習點統計學知識吧。如果樣本集X的均值(mean)為m,標準差(standard deviation)為s,那么X的“標準化變量”表示為:
X?=X?ms
標準化變量的數學期望為0。方差為1。因此樣本集的標準化過程(standardization)用公式描寫敘述就是:

標準化后的值 = ( 標準化前的值 - 分量的均值 ) /分量的標準差

經過簡單的推導就能夠得到兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的標準化歐氏距離的公式:

如果將方差的倒數看成是一個權重,這個公式能夠看成是一種加權歐氏距離(Weighted Euclidean distance)。

(2)Matlab計算標準化歐氏距離

樣例:計算向量(0,0)、(1,0)、(0,2)兩兩間的標準化歐氏距離 (如果兩個分量的標準差分別為0.5和1)

X = [0 0 ; 1 0 ; 0 2]

D = pdist(X, 'seuclidean',[0.5,1])

結果:

D =

    2.0000    2.0000    2.8284

馬氏距離(Mahalanobis Distance)

(1)馬氏距離定義

有M個樣本向量X1Xm,協方差矩陣記為S,均值記為向量μ,則當中樣本向量X到μ的馬氏距離表示為:

而當中向量Xi與Xj之間的馬氏距離定義為:

若協方差矩陣是單位矩陣(各個樣本向量之間獨立同分布),則公式就成了:

也就是歐氏距離了。

若協方差矩陣是對角矩陣,公式變成了標準化歐氏距離。

(2)馬氏距離的優缺點:量綱無關。排除變量之間的相關性的干擾。

(3) Matlab計算(1,2)、(1,3)、(2,2)、(3,1)兩兩之間的馬氏距離

X = [1 2; 1 3; 2 2; 3 1]

Y = pdist(X,'mahalanobis')



結果:

Y =

    2.3452    2.0000    2.3452    1.2247    2.4495    1.2247

夾角余弦(Cosine)

幾何中夾角余弦可用來衡量兩個向量方向的差異,機器學習中借用這一概念來衡量樣本向量之間的差異。

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

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

類似的,對于兩個n維樣本點a(x11,x12,…,x1n)和b(x21,x22,…,x2n),能夠使用類似于夾角余弦的概念來衡量它們間的類似程度。

  即:

夾角余弦取值范圍為[?1,1]。夾角余弦越大表示兩個向量的夾角越小,夾角余弦越小表示兩向量的夾角越大。

當兩個向量的方向重合時夾角余弦取最大值1,當兩個向量的方向全然相反夾角余弦取最小值-1。

(3)Matlab計算夾角余弦

樣例:計算(1,0)、(1,1.732)、(?1,0)兩兩間的夾角余弦

X = [1 0 ; 1 1.732 ; -1 0]

D = 1- pdist(X, 'cosine')  % Matlab中的pdist(X, 'cosine')得到的是1減夾角余弦的值

結果:

D =

    0.5000   -1.0000   -0.5000

漢明距離(Hamming distance)

(1)漢明距離的定義

兩個等長字符串s1與s2之間的漢明距離定義為將當中一個變為另外一個所須要作的最小替換次數。比如字符串“1111”與“1001”之間的漢明距離為2。

應用:信息編碼(為了增強容錯性。應使得編碼間的最小漢明距離盡可能大)。

作為北郵的學生,這個算的就是比較多吧。

(2)Matlab計算漢明距離

Matlab中2個向量之間的漢明距離的定義為2個向量不同的分量所占的百分比。

樣例:計算向量(0,0,0)、(0,0,1)、(0,1,0)、(1,0,0)、(0,1,1)兩兩間的漢明距離

X = [0 0 0 ; 0 0 1 ; 0 1 0 ; 1 0 0 ; 0 1 1];

D = pdist(X,'hamming')

結果:

D =

    0.3333    0.3333    0.3333    0.6667    0.6667    0.6667    0.3333    0.6667    0.3333    1.0000

杰卡德類似系數(Jaccard similarity coefficient)

(1) 杰卡德類似系數

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

杰卡德類似系數是衡量兩個集合的類似度一種指標。

(2) 杰卡德距離

與杰卡德類似系數相反的概念是杰卡德距離(Jaccard distance)。

杰卡德距離可用例如以下公式表示:

  杰卡德距離用兩個集合中不同元素占全部元素的比例來衡量兩個集合的區分度。

(3) 杰卡德類似系數與杰卡德距離的應用

可將杰卡德類似系數用在衡量樣本的類似度上。

樣本A與樣本B是兩個n維向量,并且全部維度的取值都是0或1。比如:A(0111)和B(1011)。

我們將樣本看成是一個集合,1表示集合包括該元素,0表示集合不包括該元素。

p :樣本A與B都是1的維度的個數

q :樣本A是1,樣本B是0的維度的個數

r :樣本A是0,樣本B是1的維度的個數

s :樣本A與B都是0的維度的個數

這里p+q+r可理解為A與B的并集的元素個數。而p是A與B的交集的元素個數。

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

(4)Matlab 計算杰卡德距離

Matlab的pdist函數定義的杰卡德距離跟我這里的定義有一些區別,Matlab中將其定義為不同的維度的個數占“非全零維度”的比例。

樣例:計算(1,1,0)、(1,?1,0)、(?1,1,0)兩兩之間的杰卡德距離

X = [1 1 0; 1 -1 0; -1 1 0]

D = pdist( X , 'jaccard')

結果

D =

0.5000    0.5000    1.0000

相關系數 ( Correlation coefficient )與相關距離(Correlation distance)

(1) 相關系數的定義

相關系數是衡量隨機變量X與Y相關程度的一種方法,相關系數的取值范圍是[?1,1]。相關系數的絕對值越大,則表明X與Y相關度越高。

當X與Y線性相關時,相關系數取值為1(正線性相關)或-1(負線性相關)。

(2)相關距離的定義

(3)Matlab計算(1,2,3,4)與(3,8,7,6)之間的相關系數與相關距離

X = [1 2 3 4 ; 3 8 7 6]

C = corrcoef( X' )   %將返回相關系數矩陣

D = pdist( X , 'correlation')

結果:

C =

    1.0000    0.4781

    0.4781    1.0000

D =

0.5219

      當中0.4781就是相關系數,0.5219是相關距離。

總結

以上是生活随笔為你收集整理的数学中几种经常使用的距离的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。