機器學(xué)習(xí)——幾種距離度量方法比較

https://my.oschina.net/hunglish/blog/787596

1. 歐氏距離(Euclidean Distance)

歐氏距離是最容易直觀理解的距離度量方法,我們小學(xué)、初中和高中接觸到的兩個點在空間中的距離一般都是指歐氏距離。



Matlab計算歐氏距離:

Matlab計算距離使用pdist函數(shù)。若X是一個m×n的矩陣,則pdist(X)將X矩陣每一行作為一個n維行向量,然后計算這m個向量兩兩間的距離。



2. 曼哈頓距離(Manhattan Distance)

顧名思義,在曼哈頓街區(qū)要從一個十字路口開車到另一個十字路口,駕駛距離顯然不是兩點間的直線距離。這個實際駕駛距離就是“曼哈頓距離”。曼哈頓距離也稱為“城市街區(qū)距離”(City Block distance)。



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

國際象棋中,國王可以直行、橫行、斜行,所以國王走一步可以移動到相鄰8個方格中的任意一個。國王從格子(x1,y1)走到格子(x2,y2)最少需要多少步?這個距離就叫切比雪夫距離。



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

閔氏距離不是一種距離,而是一組距離的定義,是對多個距離度量公式的概括性的表述。

閔氏距離定義:

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


其中p是一個變參數(shù):

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

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

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

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

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

e.g.?二維樣本(身高[單位:cm],體重[單位:kg]),現(xiàn)有三個樣本:a(180,50),b(190,50),c(180,60)。那么a與b的閔氏距離(無論是曼哈頓距離、歐氏距離或切比雪夫距離)等于a與c的閔氏距離。但實際上身高的10cm并不能和體重的10kg劃等號。

閔氏距離的缺點:

(1)將各個分量的量綱(scale),也就是“單位”相同的看待了;

(2)未考慮各個分量的分布(期望,方差等)可能是不同的。

Matlab計算閔氏距離(以p=2的歐氏距離為例):

5. 標(biāo)準(zhǔn)化歐氏距離 (Standardized Euclidean Distance)

?定義: 標(biāo)準(zhǔn)化歐氏距離是針對歐氏距離的缺點而作的一種改進。標(biāo)準(zhǔn)歐氏距離的思路:既然數(shù)據(jù)各維分量的分布不一樣,那先將各個分量都“標(biāo)準(zhǔn)化”到均值、方差相等。假設(shè)樣本集X的均值(mean)為m,標(biāo)準(zhǔn)差(standard deviation)為s,X的“標(biāo)準(zhǔn)化變量”表示為:


6. 馬氏距離(Mahalanobis Distance)

?馬氏距離的引出:


上圖有兩個正態(tài)分布的總體,它們的均值分別為a和b,但方差不一樣,則圖中的A點離哪個總體更近?或者說A有更大的概率屬于誰?顯然,A離左邊的更近,A屬于左邊總體的概率更大,盡管A與a的歐式距離遠一些。這就是馬氏距離的直觀解釋。

概念:馬氏距離是基于樣本分布的一種距離。物理意義就是在規(guī)范化的主成分空間中的歐氏距離。所謂規(guī)范化的主成分空間就是利用主成分分析對一些數(shù)據(jù)進行主成分分解。再對所有主成分分解軸做歸一化,形成新的坐標(biāo)軸。由這些坐標(biāo)軸張成的空間就是規(guī)范化的主成分空間。



歐式距離&馬氏距離:

? ??????


馬氏距離的特點:

量綱無關(guān),排除變量之間的相關(guān)性的干擾;

馬氏距離的計算是建立在總體樣本的基礎(chǔ)上的,如果拿同樣的兩個樣本,放入兩個不同的總體中,最后計算得出的兩個樣本間的馬氏距離通常是不相同的,除非這兩個總體的協(xié)方差矩陣碰巧相同;

計算馬氏距離過程中,要求總體樣本數(shù)大于樣本的維數(shù),否則得到的總體樣本協(xié)方差矩陣逆矩陣不存在,這種情況下,用歐式距離計算即可。

Matlab計算馬氏距離:

7. 余弦距離(Cosine Distance)

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

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


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

cos(\theta )=\frac{a\cdot b}{|a|~|b|} 即,? ??cos(\theta )=\frac{\sum_{k=1}^nx_{1k}x_{2k}  }{\sqrt{\sum_{k=1}^nx_{1k}^2} \sqrt{\sum\nolimits_{ k=1}^n x_{2k}^2 } }

夾角余弦取值范圍為[-1,1]。余弦越大表示兩個向量的夾角越小,余弦越小表示兩向量的夾角越大。當(dāng)兩個向量的方向重合時余弦取最大值1,當(dāng)兩個向量的方向完全相反余弦取最小值-1。

Matlab計算夾角余弦(Matlab中的pdist(X, ‘cosine’)得到的是1減夾角余弦的值):


9. 杰卡德距離(Jaccard Distance)

杰卡德相似系數(shù)(Jaccard similarity coefficient):兩個集合A和B的交集元素在A,B的并集中所占的比例,稱為兩個集合的杰卡德相似系數(shù),用符號J(A,B)表示:

J(A,B)=\frac{|A\cap B|}{|A\cup B|}

杰卡德距離(Jaccard Distance):與杰卡德相似系數(shù)相反,用兩個集合中不同元素占所有元素的比例來衡量兩個集合的區(qū)分度:

J_{\delta } (A,B)=1-J(A,B)=\frac{|A\cup B|-|A\cap B |}{A\cup B}

Matlab計算杰卡德距離(Matlab中將杰卡德距離定義為不同的維度的個數(shù)占“非全零維度”的比例):


10. 相關(guān)距離(Correlation distance)

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

11. 信息熵(Information Entropy)

?以上的距離度量方法度量的皆為兩個樣本(向量)之間的距離,而信息熵描述的是整個系統(tǒng)內(nèi)部樣本之間的一個距離,或者稱之為系統(tǒng)內(nèi)樣本分布的集中程度(一致程度)、分散程度、混亂程度(不一致程度)。系統(tǒng)內(nèi)樣本分布越分散(或者說分布越平均),信息熵就越大。分布越有序(或者說分布越集中),信息熵就越小。


基于概率分布的距離度量

基于皮爾遜相關(guān)系數(shù)的距離度量

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容