基於距離的計算方法

2021-07-04 05:58:51 字數 2803 閱讀 8554

1. 歐氏距離(euclidean distance)

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

(1)二維平面上兩點a(x1,y1)與b(x2,y2)間的歐氏距離:

(2)三維空間兩點a(x1,y1,z1)與b(x2,y2,z2)間的歐氏距離:

(3)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的歐氏距離:

也可以用表示成向量運算的形式:

(4)matlab計算歐氏距離

matlab計算距離主要使用pdist函式。若x是乙個m×n的矩陣,則pdist(x)將x矩陣m行的每一行作為乙個n維向量,然後計算這m個向量兩兩間的距離。

例子:計算向量(0,0)、(1,0)、(0,2)兩兩間的歐式距離

x = [0 0 ; 1 0 ; 0 2]

d = pdist(x,'euclidean')

結果:d =

1.0000

2.0000

2.2361

2. 曼哈頓距離(manhattan distance)

從名字就可以猜出這種距離的計算方法了。想象你在曼哈頓要從乙個十字路口開車到另外乙個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。實際駕駛距離就是這個「曼哈頓距離」。而這也是曼哈頓距離名稱的**, 曼哈頓距離也稱為城市街區距離(city block distance)

(1)二維平面兩點a(x1,y1)與b(x2,y2)間的曼哈頓距離

(2)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的曼哈頓距離

(3) matlab計算曼哈頓距離

例子:計算向量(0,0)、(1,0)、(0,2)兩兩間的曼哈頓距離

x = [0 0 ; 1 0 ; 0 2]

d = pdist(x, 'cityblock')

結果:d =

1 2

33. 標準化歐氏距離(standardized euclidean distance )

(1)標準歐氏距離的定義

標準化歐氏距離是針對簡單歐氏距離的缺點而作的一種改進方案。標準歐氏距離的思路:既然資料各維分量的分布不一樣,好吧!那我先將各個分量都「標準化」到均值、方差相等吧。均值和方差標準化到多少呢?這裡先複習點統計學知識吧,假設樣本集x的均值(mean)為m,標準差(standard deviation)為s,那麼x的「標準化變數」表示為:

而且標準化變數的數學期望為0,方差為1。因此樣本集的標準化過程(standardization)用公式描述就是:

標準化後的值 = ( 標準化前的值 - 分量的均值 ) /分量的標準差

經過簡單的推導就可以得到兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的標準化歐氏距離的公式:

如果將方差的倒數看成是乙個權重,這個公式可以看成是一種加權歐氏距離(weighted euclidean distance)

(2)matlab計算標準化歐氏距離

例子:計算向量(0,0)、(1,0)、(0,2)兩兩間的標準化歐氏距離 (假設兩個分量的標準差分別為0.5和1)

x = [0 0 ; 1 0 ; 0 2]

d = pdist(x, 'seuclidean',[0.5,1])

結果:d =

2.0000

2.0000

2.8284

4. 夾角余弦(cosine)

有沒有搞錯,又不是學幾何,怎麼扯到夾角余弦了?各位看官稍安勿躁。幾何中夾角余弦可用來衡量兩個向量方向的差異,機器學習中借用這一概念來衡量樣本向量之間的差異。

(1)在二維空間中向量a(x1,y1)與向量b(x2,y2)的夾角余弦公式:

(2) 兩個n維樣本點a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夾角余弦

類似的,對於兩個n維樣本點a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用類似於夾角余弦的概念來衡量它們間的相似程度。

即:

夾角余弦取值範圍為[-1,1]。夾角余弦越大表示兩個向量的夾角越小,夾角余弦越小表示兩向量的夾角越大。當兩個向量的方向重合時夾角余弦取最大值1,當兩個向量的方向完全相反夾角余弦取最小值-1。

夾角余弦的具體應用可以參閱參考文獻[1]。

(3)matlab計算夾角余弦

例子:計算(1,0)、( 1,1.732)、( -1,0)兩兩間的夾角余弦

x = [1 0 ; 1 1.732 ; -1 0]

d = 1- pdist(x, 'cosine') % matlab中的pdist(x, 'cosine')得到的是1減夾角余弦的值

結果:d =

0.5000

-1.0000

-0.5000

基於距離的計算方法

基於距離的計算方法 原文 1.歐氏距離 euclidean distance 歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。1 二維平面上兩點a x1,y1 與b x2,y2 間的歐氏距離 2 三維空間兩點a x1,y1,z1 與b x2,y2,z2 間的歐氏距離 3 兩個...

基於距離的計算方法

1.歐氏距離 euclidean distance 歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。1 二維平面上兩點a x1,y1 與b x2,y2 間的歐氏距離 2 三維空間兩點a x1,y1,z1 與b x2,y2,z2 間的歐氏距離 3 兩個n維向量a x11,x12...

基於距離的數學計算方法

1.歐氏距離 euclidean distance 歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。1 二維平面上兩點a x1,y1 與b x2,y2 間的歐氏距離 2 三維空間兩點a x1,y1,z1 與b x2,y2,z2 間的歐氏距離 3 兩個n維向量a x11,x12...