相似度與距離度量The Similarity and Distance Measurements

項目地址:https://github.com/Daya-Jin/ML_for_learner
原博客:https://daya-jin.github.io/2019/03/20/The_Similarity_and_Distance_Measurements/

Distance

Manhattan Distance

曼哈頓距離又稱曼哈頓街區距離,在現實中的意義可以通過一個例子來說明。假如我們在城市中要由一個位置達到另一個位置,需要走多遠的距離。雖然兩點之間的距離是直線距離最短,但是因爲城市規劃是有路線限制的,我們只能沿着街道走。一般認爲街道呈十字型設計,那麼A(a1,a2)A(a_{1},a_{2})B(b1,b2)B(b_{1},b_{2})兩點之間的街區距離爲:

dist(A,B)=a1b1+a2b2 dist(A,B)=|a_{1}-b_{1}|+|a_{2}-b_{2}|

下面給出兩nn維向量a\vec{a}b\vec{b}的曼哈頓距離計算公式:

dist(a,b)=i=1naibi dist(\vec{a},\vec{b})=\sum\limits_{i=1}^{n}|a_{i}-b_{i}|

Euclidean Distance

歐幾里得距離是現實生活中最常用的一種距離計算方法,在數學上也被稱爲幾何距離。歐氏距離計算的是兩點之間在空間上的一個真實距離或最短距離。

dist(a,b)=i=1n(aibi)2 dist(\vec{a},\vec{b})=\sqrt{\sum\limits_{i=1}^{n}(a_{i}-b_{i})^{2}}

Minkowski Distance

不難發現,曼哈頓距離與歐氏距離分別相當於兩向量相減然後再取一個L1L1範數與L2L2範數。那麼將其擴展,就得到了閔可夫斯基距離(Minkowski Distance)。

dist(a,b)=i=1n(aibi)pp dist(\vec{a},\vec{b})=\sqrt[p]{\sum\limits_{i=1}^{n}(a_{i}-b_{i})^{p}}

Hamming distance

海明距離是在信息領域中用於對比信息差異的一種度量方法,它計算的是兩個位串數據相異的位數:

dist(s1,s2)=i=1nI(s1[i]s2[i]) dist(s_{1},s_{2})=\sum\limits_{i=1}^{n}I(s_{1}[i]{\ne}s_{2}[i])

其中I(x)I(x)爲指示函數,當xx成立時取值爲11,否則爲00

Similarity

inner product

度量兩向量之間的相似性,首先想到的應該是向量之間的內積:

ab=abT=i=1naibi \vec{a}\cdot\vec{b}=\vec{a}\vec{b}^{T}=\sum\limits_{i=1}^{n}a_{i}b_{i}

在歐幾里得空間中,內積還可以表示成幾何表達式:

ab=abcosθ \vec{a}\cdot\vec{b}=|\vec{a}||\vec{b}|\cos{\theta}

其中θ\theta爲兩向量的餘弦夾角。

Cosine

由上述啓發不難想到,夾角餘弦(cosine)可以用來度量兩向量在方向上的相似度,兩向量同向爲11,反向則爲1-1

cos<a,b>=abab \cos<\vec{a},\vec{b}>=\frac{\vec{a}\cdot\vec{b}}{|\vec{a}||\vec{b}|}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章