項目地址: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)、B(b1,b2)兩點之間的街區距離爲:
dist(A,B)=∣a1−b1∣+∣a2−b2∣
下面給出兩n維向量a與b的曼哈頓距離計算公式:
dist(a,b)=i=1∑n∣ai−bi∣
Euclidean Distance
歐幾里得距離是現實生活中最常用的一種距離計算方法,在數學上也被稱爲幾何距離。歐氏距離計算的是兩點之間在空間上的一個真實距離或最短距離。
dist(a,b)=i=1∑n(ai−bi)2
Minkowski Distance
不難發現,曼哈頓距離與歐氏距離分別相當於兩向量相減然後再取一個L1範數與L2範數。那麼將其擴展,就得到了閔可夫斯基距離(Minkowski Distance)。
dist(a,b)=pi=1∑n(ai−bi)p
Hamming distance
海明距離是在信息領域中用於對比信息差異的一種度量方法,它計算的是兩個位串數據相異的位數:
dist(s1,s2)=i=1∑nI(s1[i]̸=s2[i])
其中I(x)爲指示函數,當x成立時取值爲1,否則爲0。
Similarity
inner product
度量兩向量之間的相似性,首先想到的應該是向量之間的內積:
a⋅b=abT=i=1∑naibi
在歐幾里得空間中,內積還可以表示成幾何表達式:
a⋅b=∣a∣∣b∣cosθ
其中θ爲兩向量的餘弦夾角。
Cosine
由上述啓發不難想到,夾角餘弦(cosine)可以用來度量兩向量在方向上的相似度,兩向量同向爲1,反向則爲−1。
cos<a,b>=∣a∣∣b∣a⋅b