計算幾何 —— 二維幾何基礎 —— 距離度量方法

Alex_McAvoy發表於2018-10-29

【概述】

在資料探勘中,經常需要計算樣本之間的相似度,通常做法是計算樣本之間的距離。

比如判斷 A、B、C 三種商品之間的相似性,可以先按照商品特徵構建 A、B、C 各自的向量,然後求向量間的距離,距離近就表示彼此相似度高。

【曼哈頓距離】

曼哈頓距離又稱馬氏距離(Manhattan distance),想象在曼哈頓街道上,從一個十字路口開車到另一個十字路口,駕駛距離就

是這個“曼哈頓距離”。

兩個 n 維向量 a(x_1,x_2,...,x_n)b(y_1,y_2,...,y_n) 間的曼哈頓距離為:

特點:曼哈頓距離在某些情況下具有更高的穩定性,但是如果資料集中某些特徵值很大,用曼哈頓距離的話,這些特徵會
掩蓋其他特徵間的鄰近關係。

【歐式距離】

歐氏距離(Euclidean Distance)是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。

兩個 n 維向量 a(x_1,x_2,...,x_n)b(y_1,y_2,...,y_n) 間的歐氏距離為:

特點:歐氏距離能夠體現個體數值特徵的絕對差異,所以更多的用於需要從維度的數值大小中體現差異的分析,如使用使用者行為指標分析使用者價值的相似度或差異。

但當資料集有很多特徵,但是任意一對個體之間的歐氏距離都相等,那麼就無法通過歐氏距離進行比較。

【餘弦距離】

機器學習中可以把兩點看成是空間中的兩個向量,餘弦距離是通過兩向量夾角的餘弦值作為衡量兩樣本之間差異大小。相比歐氏距離,餘弦距離更加註重兩個向量在方向上的差異。

從下圖可以看出,如果保持A點位置不變,B點朝原方向遠離座標軸原點,那麼這個時候由於夾角沒有變化,因此餘弦距離是保持不變的,而A、B兩點的距離顯然在發生改變。故而歐氏距離衡量的是空間各點的絕對距離,跟各個點所在的位置座標直接相關;而餘弦距離衡量的是空間向量的夾角,更加體現在方向上的差異。

 

兩個 n 維向量 a(x_1,x_2,...,x_n)b(y_1,y_2,...,y_n) 間的餘弦距離為:

特點:餘弦距離更多的是從方向上區分差異,而對絕對的數值不敏感,更多的用於使用使用者對內容評分來區分興趣的相似度和差異,而且由於餘弦距離對絕對數值不敏感,因此同時修正了使用者間可能存在的度量標準不統一的問題。適用於特徵向量很多的情況,但是丟棄了向量長度所包含的在某些場景下可能會很有用的一些資訊。

【切比雪夫距離】

數學上,切比雪夫距離(Chebyshev distance)是向量空間中的一種度量,二個點之間的距離定義為其各座標數值差的最大值。

例如:國際象棋中,國王從格子 (x1,y1) 走到格子 (x2,y2) 最少需要的步數就是切比雪夫距離,最少步數總是 max( | x2-x1 | , | y2-y1 | ) 步。

兩個 n 維向量 a(x_1,x_2,...,x_n)b(y_1,y_2,...,y_n) 間的切比雪夫距離為:

【漢明距離】

漢明距離是一個概念,它表示兩個(相同長度)字對應位不同的數量,兩個等長字串之間的漢明距離是兩個字串對應位置的不同字元的個數。 

例如:

  • 1011101與 1001001 之間的漢明距離是2 
  • 2143896與 2233796 之間的漢明距離是3   
  • irie與 rise之間的漢明距離是 3  

相關文章