在機器學習中,無論是分類問題、聚類問題或降維問題,經常需要度量不同樣本之間的相似性。不過如何友好地表徵不同樣本之前的相似性?通常採用的方法就是計算樣本間的「距離」。
距離計算方法有很多,對於實際遇到的問題到底採用什麼樣的方法來計算距離是很講究的,因為相似性度量的好壞很多時候直接關係到原始問題的求解結果。為了加深大家對各個距離方法的理解,本文就對常用的相似性度量策略作乙個總結,希望對各位後續處理機器學習問題有所幫助。
歐式距離
歐氏距離是乙個通常採用的距離定義,指在
n 維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。兩個
n維向量x1
=(x11
,x12,
…,x1
n)與 x2
=(x21
,x22,
…,x2
n)間的歐氏距離為d(
x1,x
2)=∑
i=1n
(x1i
−x2i
)2‾‾
‾‾‾‾
‾‾‾‾
‾‾‾‾
⎷
.曼哈頓距離
曼哈頓距離是由十九世紀的赫爾曼·閔可夫斯基所創的詞彙 ,是一種使用在幾何度量空間的幾何學用語,用以標明兩個點在標準座標系上的絕對軸距總和。兩個
n 維向量x1
=(x11
,x12,
…,x1
n)與 x
2=(x
21,x22
,…,x
2n) 間的曼哈頓距離為d(
切比雪夫距離
二個點之間的切比雪夫距離定義是其各座標數值差絕對值的最大值。因此兩個
n 維向量x1
=(x11
,x12,
…,x1
n)與 x
2=(x
21,x22
,…,x
2n) 間的切比雪夫距離為d(
x1,x
2)=maxi(
|x1i
−x2i
|),
等價於 d(
x1,x
2)=limk→
∞(∑i
=1n(
x1i−
x2i)
k)1/
k.閔氏距離
閔氏距離是以俄裔德國數學家閔可夫斯基命名的,它代表的不是一種距離,而是一組距離的定義。兩個
n 維向量x1
=(x11
,x12,
…,x1
n)與 x
2=(x
21,x22
,…,x
2n) 間的閔氏距離為 d(
x1,x
2)=∑
i=1n
(x1i
−x2i
)k‾‾
‾‾‾‾
‾‾‾‾
‾‾‾‾
⎷
k.其中
k 是乙個變引數。當k=
1時,就是曼哈頓距離;當k=
2 時,就是歐氏距離;當k→
∞ 時,就是切比雪夫距離。根據變引數的不同,閔氏距離可以表示一類的距離。
馬氏距離
馬氏距離(mahalanobis distance)是由印度統計學家馬哈拉諾比斯(p. c. mahalanobis)提出的,表示資料的協方差距離。兩個
n 維向量x1
=(x11
,x12,
…,x1
n)與 x
2=(x
21,x22
,…,x
2n) 間的馬氏距離為d(
x1,x
2)=(
x1−x
2)s−
1(x1
−x2)
t‾‾‾
‾‾‾‾
‾‾‾‾
‾‾‾‾
‾‾‾‾
‾‾‾√
. 其中s
為x1,
x2的協方差矩陣。如果協方差矩陣為單位矩陣,那麼馬氏距離就簡化為歐氏距離。
夾角余弦兩個
n 維向量x1
=(x11
,x12,
…,x1
n)與 x
2=(x
21,x22
,…,x
2n) 間的夾角余弦距離為
cosθ=d
(x1,
x2)=
x1xt
2|x1
||x2
|=∑n
i=1x
1ix2
i∑ni
=1x2
1i‾‾
‾‾‾‾
‾‾√∑
ni=1
x21i
‾‾‾‾
‾‾‾‾
√.根據余弦函式的性質可知夾角余弦取值範圍為[−
1,1]
。相似性強弱隨著夾角余弦值單調遞增:夾角余弦越大表示兩個向量的夾角越小,兩者的相似性較強;夾角余弦越小表示兩向量的夾角越大,兩者的相似性較弱。當兩個向量的方向重合時,夾角余弦取最大值1,當兩個向量的方向完全相反時,夾角余弦取最小值-1。
夾角余弦距離衡量的是空間向量的夾角,更加體現在方向上的差異,而不是位置,因此其對絕對的數值距離不敏感。
相關係數/距離
相關係數是最早由統計學家卡爾·皮爾遜設計的統計指標,是衡量隨機變數
x 與
y相關程度的一種方法,定義如下: ρx
y=co
v(x,
y)d(
x)‾‾
‾‾‾√
d(y)
‾‾‾‾
‾√=e
[(x−
ex)(
y−ey
)]d(
x)‾‾
‾‾‾√
d(y)
‾‾‾‾
‾√.
相關係數的取值範圍是[-1,1]。相關係數定量地刻畫了
x 與
y的相關程度,即 ρx
y 越大,相關程度越大; ρx
y 越小,對應相關程度越低。當
x 與
y線性相關時,相關係數取值為1(正線性相關)或-1(負線性相關);當ρx
y=0 時,對應的相關性最低。相關距離的定義: dx
y=1−
ρxy 。
漢明距離
漢明距離是以理查德·衛斯里·漢明的名字命名的。兩個等長字串s1
與s2 之間的漢明距離定義為將其中乙個變為另外乙個所需要作的最小替換次數。若想快速計算兩個字串的漢明距離,可以對兩個字串進行異或運算,然後統計結果為1的個數,那麼這個數就是兩者的漢明距離。例如字串「1111」與「1001」之間的漢明距離為2,「11110011」與「10011000」之間的漢明距離為5。
傑卡德相似係數/距離
傑卡德相似係數:兩個集合a和b的交集元素在a,b的並集中所佔的比例,稱為兩個集合的傑卡德相似係數,用符號j(a,b)表示。它是衡量兩個集合相似度的一種指標。 j(
a,b)
=|a∩
b||a
∪b|.
傑卡德相似度演算法沒有考慮向量中潛在數值的大小,而是簡單的處理為0和1,不過做了這樣的處理之後,傑卡德方法的計算效率肯定是比較高的,畢竟只需要做集合操作。
傑卡德距離:傑卡德相似係數相反的概念是傑卡德距離(jaccard distance),它用兩個集合中不同元素佔所有元素的比例來衡量兩個集合的區分度。傑卡德距離可用如下公式表示: jδ
(a,b
)=1−
|a∩b
||a∪
b|=|
a∪b|
−|a∩
b||a
∪b|.
參考資料
1. 余弦距離、歐氏距離和傑卡德相似性度量的對比分析
2. 閔可夫斯基距離(minkowskidistance)
3. 機器學習中的相似性度量
軌跡相似度度量
有四種方法可以度量軌跡相似度 1 lcss,longest comon subsequence 2 frechet distance 3 dtw,dynamic time warping 4 edit distance 軌跡ta,包含若干個 t,a 點。其中,a為位置點,t為時間戳。有乙個簡單的理解...
NLP 相似度度量
一 提取特徵階段 1 tf idf 簡介 tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案 現的次數成正比增加,但同時會隨著它在語料庫 現的頻率成反比下降。兩個重要的概念 1 tf 詞頻 term frequency,tf 指的...
余弦計算相似度度量
余弦計算相似度度量 相似度度量 similarity 即計算個體間的相似程度,相似度度量的值越小,說明個體間相似度越小,相似度的值越大說明個體差異越大。對於多個不同的文字或者短文本對話訊息要來計算他們之間的相似度如何,乙個好的做法就是將這些文字中詞語,對映到向量空間,形成文字中文字和向量資料的對映關...