基於距離的計算方法
原文:
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 3
5.
標準化歐氏距離
(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
7.
夾角余弦
(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 兩個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...
基於距離的數學計算方法
1.歐氏距離 euclidean distance 歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。1 二維平面上兩點a x1,y1 與b x2,y2 間的歐氏距離 2 三維空間兩點a x1,y1,z1 與b x2,y2,z2 間的歐氏距離 3 兩個n維向量a x11,x12...