多種相似距離對比

2021-09-06 23:50:12 字數 3367 閱讀 6919

因某些原因需要對樣本進行相似度方面的計算,對常見的幾種距離公式進行了一系列實驗。

目錄1. 歐氏距離

2. 切比雪夫距離

3. 曼哈度距離

4. 閔可夫斯基距離

5. 蘭氏距離

6. cos余弦距離

1. 歐氏距離

歐式**於頂頂大名的歐幾里得,那麼自然會想到空間幾何,以其名義命名的距離公式是初中就接觸到的距離公式,在二維空間中其幾何意義表示的兩點之間的直線距離,有了這個你就應該知道,在這裡它認為你的這兩維量綱是一樣的(x軸,y軸),所以什麼時候該用距離公式自己看著辦羅。(注意:距離用虛線表示)。

附上**(writen by r)

euclidean

2. 切比雪夫距離

都說切比雪夫距離公式起源於西洋棋,我不想不懂裝懂,西洋棋還真不記得怎麼玩了,anyway,猜想應該是和某種策略相關的,根據公式來看,其將各維度上最大距離作為最終距離,可以看出該公式認為不同維度的量綱也是一致的。 

chebyshev

3. 曼哈度距離

該公式**於度量城市距離,因為城市一般為方形的街區建設,因此該公式本質上是度量從地圖上某點x到某點y的街區距離,根據公式來看,其將各維度上所有距離和作為最終距離,可以看出該公式認為不同維度的量綱也是一致的。 

manhattan

目錄

1. 歐氏距離

2. 切比雪夫距離

3. 曼哈度距離

4. 閔可夫斯基距離

5. 蘭氏距離

6. cos余弦距離

4. 閔可夫斯基距離

該距離公式應該被稱為通用距離公式,其代表的是一組距離公式,當p=1的時候,其與曼哈度公式等價;當p=2的時候,其與歐氏距離等價;當p->無窮的時候,其與切比雪夫距離等價(後續進行簡單證明)

因此可以說閔可夫斯基距離是定義了通用距離,這一組通過距離公式在多種相似距離對比(一)中進行過詳細描述,他們都具有相同的特性,即認為變數的每個維度都具有同樣的量綱維度,具體說明一下:

比如我們在空間座標中存在二維向量 x(1,20),y(1,30),z(11,20),那麼利用閔可夫斯基距離組公式組計算我們會發現sim(x,y)=sim(x,z)是始終成立的,仔細觀察x與y的區別是第二維向量增加了10個單位,x與z的區別是第一維向量增加了10個單位,那麼閔氏距離組認為,向量的每個維是一樣的,因此其在不同的維度上的變換是等價的。這個是閔氏距離組的特點!

當你的向量的各個維度是有不同量綱時,即比如第一維代表身高,第二維代表體重,我們認為身高增加10cm決定不等同於體重增加10斤的時候,那麼我們直接使用閔氏距離組公式來測量距離是不合適的。那麼我如果硬是要用,該怎樣fix這種量綱上的diff呢?這裡介紹一種改進的方法可能會有用,但是不保證適用所有場景。

minkowski

z-score標準化

該方法也比較簡單,即將向量進行標準化,標準化公式為 x=(x-\mu )/\sigma,其中\mu為均值,\sigma為方差。假設兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n),那麼將歐式距離進行標準化為:

其中,sk為方差。將2換為p,開平方換為開p次方,那麼即是標準閔氏距離公式。因為方差sk可以提到括號前面前面去看做乙個常量,因此標準閔氏距離組公式也稱為加權標準閔氏距離公式。

證明

前面提到當p->無窮的時候,閔氏距離等價於切比雪夫距離,這裡給出簡單證明思路,我們首先知道乙個分數的指數,形如\frac^  ,當k>1,n趨於無窮時,其極限值趨於0。閔氏距離公式如下:

我們知道在絕對差值對|x-y|中存在最大的絕對差值對|xk-yk|,那麼d(x,y)/|xk-yk|,我們會得到n-1組值小於1的絕對差對,1組絕對值差等於1,那麼當p趨於無窮時,d(x,y)/|xk-yk|趨於1,即d(x,y)=|xk-yk|。證明完畢。

最後,附上閔氏距離,歐式距離,曼哈度距離的中心圖

目錄

1. 歐氏距離

2. 切比雪夫距離

3. 曼哈度距離

4. 閔可夫斯基距離

5. 蘭氏距離

6. cos余弦距離

5. 蘭氏距離

設x=(x1,x2,…,xn),y=(y1,y2,…,yn)為空間中的兩點,那麼蘭氏距離d(x,y)的公式為

可以看出來,蘭氏距離與前面幾種距離的不同之處即是其已經處理了其量綱,比如當x=(30,3),y=(70,7),那麼dis=|30-70|/100+|3-7|/10=0.4+0.4=0.8;當x=(40,4),y=(60,6)dis=|40-60|/100+|4-6|/10=0.2+0.2=0.4,可以看出蘭氏距離對變數的各個維度進行了量綱統一處理,即類似於上文提到的z-score變換,目的是消除各維度量綱不一致引起的距離偏差。

在上文多種相似距離對比(二)中提到的乙個case,x(1,20),y(1,30),z(11,20),其中用閔氏距離組公式計算出來sim(x,y)=sim(x,z),但通常而言,變數的各個維度有其不一樣的現實意義,最好能夠體現其不同,那麼利用蘭氏距離計算sim(x,y)=0.2,而sim(x,z)=10/21=0.48,可以看出兩者有明顯的diff,再仔細觀察一下資料,sim(x,y)中起作用的變換是20到30的變換,而sim(x,z)中起作用的變換是1到11,蘭氏距離認為1到11的變換要大於20到30的變換,這即是蘭氏距離公式的核心思想。

6. cos余弦公式

設x=(x1,x2,…,xn),y=(y1,y2,…,yn)為空間中的兩點,那麼余弦距離s(x,y)的公式為

這裡要強調的一點事余弦距離與以上幾種的不同,余弦距離的幾何意義是兩個向量的夾角大小,是另外一種意義上的"距離」。因為其實在幾何空間中進行定義,其對變數各維度也有量綱一致的要求。

總結:下圖是這6種距離在勻速增長各維度大小的時候,各種距離公式表示出來的趨勢。可以看到雖然增長的幅度不一致,但是各距離公式在自己的幅度曲線下保持著穩定的變換,因為可以說這些距離公式是穩定的;還可以看出曼哈度距離增長最快,而余弦距離增長幅度最慢,切比雪夫距離保持著勻速增長;蘭氏距離與余弦距離有類似的增長模式,增長曲線是」曲」的,而其餘的曲線是」直」的。

相關鏈結

多種相似距離對比(一)

多種相似距離對比(二)

多種相似距離對比(三)

this entry was posted in 機器學習/資料探勘/演算法 by eletva. bookmark the permalink.

余弦距離 歐式距離和傑卡德相似性對比解析

余弦距離,也稱為余弦相似度,是用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小的度量。向量,是多維空間中有方向的線段,如果兩個向量的方向一致,即夾角接近零,那麼這兩個向量就相近。而要確定兩個向量方向是否一致,這就要用到餘弦定理計算向量的夾角。餘弦定理描述了三角形中任何乙個夾角和三個邊的關...

余弦距離 歐氏距離和傑卡德相似性度量的對比分析

余弦距離,也稱為余弦相似度,是用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小的度量。向量,是多維空間中有方向的線段,如果兩個向量的方向一致,即夾角接近零,那麼這兩個向量就相近。而要確定兩個向量方向是否一致,這就要用到餘弦定理計算向量的夾角。餘弦定理描述了三角形中任何乙個夾角和三個邊的關...

余弦距離 歐氏距離和傑卡德相似性度量的對比分析

文章出處 余弦距離,也稱為余弦相似度,是用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小的度量。向量,是多維空間中有方向的線段,如果兩個向量的方向一致,即夾角接近零,那麼這兩個向量就相近。而要確定兩個向量方向是否一致,這就要用到餘弦定理計算向量的夾角。餘弦定理描述了三角形中任何乙個夾角和...