距離度量方法


1.曼哈頓距離(Manhattan Distance)

  定義:在歐幾里德空間的固定直角坐標系上兩點所形成的線段對軸產生的投影的距離總和。

 

  想象你在曼哈頓要從一個十字路口開車到另外一個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。實際駕 駛距離就是這個“曼哈頓距離”,也稱為城市街區距離(City Block distance)。

2.歐式距離(Euclidean Distance)

  定義:歐幾里得距離或歐幾里得度量是歐幾里得空間中兩點間“普通”(即直線)距離。

  歐式距離是一個通常采用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)

  圖中紅線代表曼哈頓距離,綠色代表歐式距離,也就是直線距離,而藍色和黃色代表等價的曼哈頓距離。

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

  定義:切比雪夫距離是向量空間中的一種度量,二個點之間的距離定義是其各坐標數值差絕對值的最大值。

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

  其中p是一個變參數。
  當 p = 1 時,就是曼哈頓距離
  當 p = 2 時,就是歐氏距離
  當 p → ∞ 時,就是切比雪夫距離

  閔可夫斯基距離比較直觀,但是它與數據的分布無關,具有一定的局限性,如果 x 方向的幅值遠遠大於 y 方向的值,這個距離公式就
會過度放大 x 維度的作用。所以,在計算距離之前,我們可能還需要對數據進行 z-transform 處理,即減去均值,除以標准差(即 標准化歐式
距離)。
  這種方法在假設數據各個維度不相關的情況下利用數據分布的特性計算出不同的距離。如果維度相互之間數據相關(例如:身高較高的
信息很有可能會帶來體重較重的信息,因為兩者是有關聯的),這時候就要用到馬氏距離(Mahalanobis distance)了。

5. 標准化歐式距離(Standardized Euclidean distance)

  思路:既然數據各維分量的分布不一樣,那先將各個分量都“標准化”到均值、方差相等。假設樣本集 X 的均值(mean)為 m ,標准差(standard deviation)為 s , X 的“標准化變量”表示為:

  則標准化后的歐式距離公式為:

  如果將方差的倒數看成一個權重,也可稱之為加權歐氏距離(Weighted Euclidean distance)

6.馬氏距離(Mahalanobis distance)

  馬氏距離表示數據的協方差距離,是一種有效的計算兩個未知樣本集的相似度的方法。其計算是建立在總體樣本的基礎上的。即,它考慮到各種特性之間的聯系,是尺度無關的(獨立於測量尺度)。

  一原始多維樣本數據 Xnm ( m 維,n 個樣本 X=(X1, X2,...,Xn)):

 

 

  對於一個樣本的總體均值為μX=(μX1X2,...,μXm),其協方差為Σ,的多變量矢量X=(X1, X2,...,Xn)T,其到樣本中心 u 的馬氏距離為:

  而馬氏距離也可以定義兩個服從同一分布並且其協方差矩陣為Σ的兩個隨機變量的差異程度:

  如果協方差矩陣為單位矩陣,馬氏距離就簡化為歐氏距離。

  而馬氏距離如何不受到量綱的影響呢?

     1. 下圖為二元數據的散點圖:

    將坐標拿掉以后,如下圖:

    2. 根據數據本身的提示信息來引入新的坐標軸。 坐標的原點在這些點的中央(根據點的平均值算得)。第一個坐標軸(下圖中藍色的線)沿着數據點的“脊椎”,並向兩端延伸,定義為使得數據方差最大的方向。第二個坐標軸(下圖紅色的線)會與第一個坐標軸垂直並向兩端延伸。

 

 

    3. 然后,我們需要一個比例尺度。用數據沿着每一個坐標軸的標准差來定義一個單位長度。要記住68-95-99.7法則:大約2/3的點需要在離原點一個單位長度的范圍內;大約95%的點需要在離原點兩個單位的長度范圍內。

    4.讓我們重新沿着正確的方向畫圖——從左到右,從下到上(相當於旋轉一下數據)。同時,並讓每個軸方向上的單位長度相同,這樣橫坐標上一個單位的長度就與縱坐標上的單位長度相同。 

    假設數據分布是一個二維的正橢圓,x 軸 y 軸均值都為0,x軸的方差為1000,y軸的方差為1,考慮兩個點 (1, 0) , (0, 1) 到原點的距離,如果計算的是歐氏距離那么兩者相等,但是仔細想一下,因為x軸的方差大,所以 (0, 1) 應該是更接近中心的點,也就是正態分布標准差的 (68, 95, 99.7) 原則。這時候需要對 x , y 軸進行縮放,對應的操作就是在協方差矩陣的對角上加上歸一化的操作,使得方差變為1。 假設數據分布是一個二維的橢圓,但是不是正的,比如橢圓最長的那條線是45°的,因為矩陣的對角只是對坐標軸的歸一化,如果不把橢圓旋轉回來,這種歸一化是沒有意義的,所以矩陣上的其他元素(非對角)派上用場了。如果橢圓不是正的,說明變量之間是有相關性的(x 大 y 也大,或者負相關),加上協方差非對角元素的意義就是做旋轉。

  馬氏距離,歐式距離,標准化歐式距離小結:

  1. 歐式距離

  2. 標准化歐式距離:能夠體現各個特性在變差大小上的不同,同時,距離與各個特性所用單位無關 

  3. 馬氏距離 : 各種特性之間的聯系(如身高與體重)

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

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

    滿足了條件總體樣本數大於樣本的維數,但是協方差矩陣的逆矩陣仍然不存在,如三個樣本在其所處的二維空間平面內共線。這種情況下,也采用歐氏距離計算。

 

 

7.余弦相似度(Cosine Similarity)

  余弦相似度更多的是從方向上區分差異,而對絕對的數值不敏感。因此沒法衡量每個維數值的差異,會導致這樣一個情況:比如用戶對內容評分,5分制,X 和 Y 兩個用戶對兩個內容的評分分別為(1,2)和(4,5),使用余弦相似度得出的結果是0.98,兩者極為相似,但從評分上看 X 似乎不喜歡這2個內容,而 Y 比較喜歡,余弦相似度對數值的不敏感導致了結果的誤差,需要修正這種不合理性,就出現了調整余弦相似度,即所有維度上的數值都減去一個均值,比如 X 和 Y 的評分均值都是3,那么調整后為(-2,-1)和(1,2),再用余弦相似度計算,得到-0.8,相似度為負值並且差異不小,但顯然更加符合現實。

8.漢明距離(Hamming Distance)

  兩個等長字符串 s1 與 s2 的漢明距離為:將其中一個變為另外一個所需要作的最小字符替換次數。

9.傑卡德距離(Jaccard Distance)

  傑卡德距離(Jaccard Distance) 是用來衡量兩個集合差異性的一種指標,它是傑卡德相似系數的補集,被定義為1減去Jaccard相似系數。而傑卡德相似系數(Jaccard similarity coefficient),也稱傑卡德指數(Jaccard Index),是用來衡量兩個集合相似度的一種指標。

 

 

 

 

10.皮爾遜系數(Pearson Correlation Coefficient)

   在統計學中,皮爾遜相關系數,又稱皮爾遜積矩相關系數(Pearson product-moment correlation coefficient,簡稱 PPMCC或PCCs),是用於度量兩個變量X和Y之間的相關(線性相關),其值介於-1與1之間。

 

 

   皮爾遜距離度量的是兩個變量X和Y,它可以根據皮爾遜系數定義成   我們可以發現,皮爾遜系數落在  ,而皮爾遜距離落在  

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM