回覆列表
  • 1 # 悟空答題小助手1

    我們熟悉的歐氏距離雖然很有用,但也有明顯的缺點。它將樣品的不同屬性(即各指標或各變數)之間的差別等同看待,這一點有時不能滿足實際要求。例如,在教育研究中,經常遇到對人的分析和判別,個體的不同屬性對於區分個體有著不同的重要性。因此,有時需要採用不同的距離函式。? ? 如果用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..nxi1表示第一個點的第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 )即兩項間的差是每個變數值差的平方和再平方根,目的是計算其間的整體距離即不相似性。馬氏距離(Mahalanobis distances)1)馬氏距離的計算是建立在總體樣本的基礎上的,這一點可以從上述協方差矩陣的解釋中可以得出,也就是說,如果拿同樣的兩個樣本,放入兩個不同的總體中,最後計算得出的兩個樣本間的馬氏距離通常是不相同的,除非這兩個總體的協方差矩陣碰巧相同;2)在計算馬氏距離過程中,要求總體樣本數大於樣本的維數,否則得到的總體樣本協方差矩陣逆矩陣不存在,這種情況下,用歐式距離來代替馬氏距離,也可以理解為,如果樣本數小於樣本的維數,這種情況下求其中兩個樣本的距離,採用歐式距離計算即可。3)還有一種情況,滿足了條件總體樣本數大於樣本的維數,但是協方差矩陣的逆矩陣仍然不存在,比如A(3,4),B(5,6);C(7,8),這種情況是因為這三個樣本在其所處的二維空間平面內共線(如果是大於二維的話,比較複雜???)。這種情況下,也採用歐式距離計算。4)在實際應用中“總體樣本數大於樣本的維數”這個條件是很容易滿足的,而所有樣本點出現3)中所描述的情況是很少出現的,所以在絕大多數情況下,馬氏距離是可以順利計算的,但是馬氏距離的計算是不穩定的,不穩定的來源是協方差矩陣,這也是馬氏距離與歐式距離的最大差異之處。我們熟悉的歐氏距離雖然很有用,但也有明顯的缺點。它將樣品的不同屬性(即各指標或各變數)之間的差別等同看待,這一點有時不能滿足實際要求。馬氏距離有很多優點。它不受量綱的影響,兩點之間的馬氏距離與原始資料的測量單位無關;由標準化資料和中心化資料(即原始資料與均值之差)計算出的二點之間的馬氏距離相同。馬氏距離還可以排除變數之間的相關性的干擾。它的缺點是誇大了變化微小的變數的作用。?馬氏距離的計算:[plain] view plain copy print?%歐氏距離和馬氏距離的計算 ?x=[1 2;1 3;2 2;3 1]; ?[mx,nx]=size(x); ?Dis=ones(mx,nx);%產生全1的矩陣 ?C=cov(x);%計算協方差 ?for i=1:mx ?? ? for j=1:nx ?? ? ? ? D(i,j)=((x(i,:)-x(j,:))*inv(C)*(x(i,:)-x(j,:))‘)^0.5; ?? ? end ?end ?D ??Y=pdist(x,‘mahal‘) ?y=squareform(Y) ?[plain] view plain copy print??結果:前面.................

  • 中秋節和大豐收的關聯?
  • 13歲學什麼樂器好?