馬氏距離 vs 歐氏距離

歐氏距離定義: 歐氏距離( Euclidean distance)是一個通常採用的距離定義,它是在m維空間中兩個點之間的真實距離。

在二維和三維空間中的歐式距離的就是兩點之間的距離,二維的公式是 
d = sqrt((x1-x2)^+(y1-y2)^) 
三維的公式是 
d=sqrt(x1-x2)^+(y1-y2)^+(z1-z2)^) 
推廣到n維空間,歐式距離的公式是 
d=sqrt( ∑(xi1-xi2)^ ) 這裏i=1,2..n 
xi1表示第一個點的第i維座標,xi2表示第二個點的第i維座標 
n維歐氏空間是一個點集,它的每個點可以表示爲(x(1),x(2),...x(n)),其中x(i)(i=1,2...n)是實數,稱爲x的第i個座標,兩個點x和y=(y(1),y(2)...y(n))之間的距離d(x,y)定義爲上面的公式.

歐氏距離看作信號的相似程度。 距離越近就越相似,就越容易相互干擾,誤碼率就越高。

目前該距離也會用於Web2.0的數據相似程度的分析,例如:用戶喜好的相似程度。 
====補充====

網上google一下,終於明白了,看下圖,解釋太明顯了

其實就是我們學的最簡單的公式:a^2+b^2=c^2,因此,兩點距離其實就是:sqrt((x1-x2)^2+(y1-y2)^2)

我們熟悉的歐氏距離雖然很有用,但也有明顯的缺點。它將樣品的不同屬性(即各指標或各變量)之間的差別等同看待,這一點有時不能滿足實際要求。例如,在教育研究中,經常遇到對人的分析和判別,個體的不同屬性對於區分個體有着不同的重要性。因此,有時需要採用不同的距離函數。 
如果用dij表示第i個樣品和第j個樣品之間的距離,那麼對一切i,j和k,dij應該滿足如下四個條件: 
①當且僅當i=j時,dij=0 
②dij>0 
③dij=dji(對稱性) 
④dij≤dik+dkj(三角不等式) 
顯然,歐氏距離滿足以上四個條件。滿足以上條件的函數有多種,本節將要用到的馬氏距離也是其中的一種。 
第i個樣品與第j個樣品的馬氏距離dij用下式計算: 
dij =(x i 一x j)’S-1(x i一xj) 
其中,x i 和x j分別爲第i個和第j個樣品的m個指標所組成的向量,S爲樣本協方差矩陣。 
馬氏距離有很多優點。它不受量綱的影響,兩點之間的馬氏距離與原始數據的測量單位無關;由標準化數據和中心化數據(即原始數據與均值之差)計算出的二點之間的馬氏距離相同。馬氏距離還可以排除變量之間的相關性的干擾。它的缺點是誇大了變化微小的變量的作用。

————————————————————————

歐氏距離定義: 歐氏距離( Euclidean distance)是一個通常採用的距離定義,它是在m維空間中兩個點之間的真實距離。 
在二維和三維空間中的歐式距離的就是兩點之間的距離,二維的公式是 
d = sqrt((x1-x2)^+(y1-y2)^) 
三維的公式是 
d=sqrt(x1-x2)^+(y1-y2)^+(z1-z2)^) 
推廣到n維空間,歐式距離的公式是 
d=sqrt( ∑(xi1-xi2)^ ) 這裏i=1,2..n 
xi1表示第一個點的第i維座標,xi2表示第二個點的第i維座標 
n維歐氏空間是一個點集,它的每個點可以表示爲(x(1),x(2),…x(n)),其中x(i)(i=1,2…n)是實數,稱爲x的第i個座標,兩個點x和y=(y(1),y(2)…y(n))之間的距離d(x,y)定義爲上面的公式. 
歐氏距離看作信號的相似程度。 距離越近就越相似,就越容易相互干擾,誤碼率就越高。 
——————————————————————————–

馬氏距離是由印度統計學家馬哈拉諾比斯(P. C. Mahalanobis)提出的,表示數據的協方差距離。它是一種有效的計算兩個未知樣本集的相似度的方法。與歐式距離不同的是它考慮到各種特性之間的聯繫(例如:一條關於身高的信息會帶來一條關於體重的信息,因爲兩者是有關聯的),並且是尺度無關的(scale-invariant),即獨立於測量尺度。

馬氏距離不受量綱的影響,兩點之間的馬氏距離與原始數據的測量單位無關;由標準化數據和中心化數據(即原始數據與均值之差)計算出的二點之間的馬氏距離相同。馬氏距離還可以排除變量之間的相關性的干擾。它的缺點是誇大了變化微小的變量的作用。

下面是關於馬氏距離的計算方法(參考:http://topic.csdn.net/u/20080911/14/f4402565-3b4f-4de4-a4fa-f4c020dd1477.html )

兩個樣本: 
His1 = {3,4,5,6} 
His2 = {2,2,8,4}

它們的均值爲: 
U = {2.5, 3, 6.5, 5} 
協方差矩陣爲: 
S = 
| 0.25 0.50 -0.75 0.50 | 
| 0.50 1.00 -1.50 1.00 | 
|-0.75 -1.50 2.25 -1.50 | 
| 0.50 1.00 -1.50 1.00 | 
其中S(i,j)={[His1(i)-u(i)]*[His1(j)-u(j)]+[His2(i)-u(i)]*[His2(j)-u(j)]}/2

下一步就是求出逆矩陣S^(-1) 
馬氏距離 D=sqrt{[His1-His2] * S^(-1) * [(His1-His2)的轉置列向量]}

歐氏距離(http://en.wikipedia.org/wiki/Euclidean_distance )即兩項間的差是每個變量值差的平方和再平方根,目的是計算其間的整體距離即不相似性。我們熟悉的歐氏距離雖然很有用,但也有明顯的缺點。它將樣品的不同屬性(即各指標或各變量)之間的差別等同看待,這一點有時不能滿足實際要求。例如,在教育研究中,經常遇到對人的分析和判別,個體的不同屬性對於區分個體有着不同的重要性。因此,有時需要採用不同的距離函數。

補充說明:(來源:http://topic.csdn.net/u/20090819/15/4d4ccbe6-f186-48e6-a150-61c1f41dc4d2.html )

馬氏距離(Mahalanobis distances) 
1)馬氏距離的計算是建立在總體樣本的基礎上的,這一點可以從上述協方差矩陣的解釋中可以得出,也就是說,如果拿同樣的兩個樣本,放入兩個不同的總體中,最後計算得出的兩個樣本間的馬氏距離通常是不相同的,除非這兩個總體的協方差矩陣碰巧相同; 
2)在計算馬氏距離過程中,要求總體樣本數大於樣本的維數,否則得到的總體樣本協方差矩陣逆矩陣不存在,這種情況下,用歐式距離來代替馬氏距離,也可以理解爲,如果樣本數小於樣本的維數,這種情況下求其中兩個樣本的距離,採用歐式距離計算即可。 
3)還有一種情況,滿足了條件總體樣本數大於樣本的維數,但是協方差矩陣的逆矩陣仍然不存在,比如A(3,4),B(5,6);C(7,8),這種情況是因爲這三個樣本在其所處的二維空間平面內共線(如果是大於二維的話,比較複雜???)。這種情況下,也採用歐式距離計算。 
4)在實際應用中“總體樣本數大於樣本的維數”這個條件是很容易滿足的,而所有樣本點出現3)中所描述的情況是很少出現的,所以在絕大多數情況下,馬氏距離是可以順利計算的,但是馬氏距離的計算是不穩定的,不穩定的來源是協方差矩陣,這也是馬氏距離與歐式距離的最大差異之處。 
我們熟悉的歐氏距離雖然很有用,但也有明顯的缺點。它將樣品的不同屬性(即各指標或各變量)之間的差別等同看待,這一點有時不能滿足實際要求。馬氏距離有很多優點。它不受量綱的影響,兩點之間的馬氏距離與原始數據的測量單位無關;由標準化數據和中心化數據(即原始數據與均值之差)計算出的二點之間的馬氏距離相同。馬氏距離還可以排除變量之間的相關性的干擾。它的缺點是誇大了變化微小的變量的作用。

參考自:

http://rogerdhj.blog.sohu.com/39020502.html

http://hzcamel.spaces.live.com/blog/cns!30CA297C0520B02C!351.entry

http://54pe.javaeye.com/blog/478242

http://blog.chinaunix.net/u/30503/showart_2065838.html

http://www.shamoxia.com/html/y2009/261.html

發佈了16 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章