欧式距离(Euclidean distance)

欧式距离最常见的两点之间距离度量表示法,即欧几里得度量。

二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离:

\[ d_{ab} = \sqrt[] {(x_1 - x_2)^2 + (y_1 - y_2)^2} \]

三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:

\[ d_{ab} = \sqrt[] {(x_1 - x_2)^2 + (y_1 - y_2)^2 + (z_1 - z_2)^2} \]

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量):

\[ d_{ab} = \sqrt[] {\sum_{k = 1}^{n} (x_{1k} - x_{2k})^2} \]

曼哈顿距离(Manhattan distance)

曼哈顿距离也称为城市街区距离(City Block distance),也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。 曼哈顿距离其实就相当于两点在各个坐标轴上的投影距离之和。

如下图所示:

其中,绿线表示欧式距离,红、蓝、黄表示相等的曼哈顿距离。

二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离:

\[ d_{ab} = |x_1 - x_2| + |y_1 - y_2| \]

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:

\[ d_{ab} = \sum_{k = 1}^{n}|x_{1k} - x_{2k}| \]

切比雪夫距离(Chebyshev distance)

数学上,切比雪夫距离(Chebyshev distance)是向量空间中的一种度量,二个点之间的距离定义为其各座标数值差的最大值。

若将国际象棋棋盘放在二维直角座标系中,格子的边长定义为1,座标的x轴及y轴和棋盘方格平行,原点恰落在某一格的中心点,则王从一个位置走到其他位置需要的步数恰为二个位置的切比雪夫距离,因此切比雪夫距离也称为棋盘距离。

二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离:

\[ d_{ab} = max(|x_1 - x_2|, |y_1 - y_2|) \]

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的切比雪夫距离:

\[ d_{ab} = \max \limits_ {i}(|x_{1i} - x_{2i}|) \]

闵可夫斯基距离(Minkowski Distance)

闵氏距离不是一种距离,而是一组距离的定义

两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:

\[ d_{ab} = (\sum_{i = 1}^{n}|x_i - y_i|^p)^{1/p} \]

对于不同的P值,如下:

图中清晰的展示了随着p值的增大,与原点的闵式距离为1的点的图形的演化过程。我们可以看到:

p=1时,闵式距离即为曼哈顿距离; p=2时,闵式距离即为欧氏距离; p=∞时,闵式距离即为切比雪夫距离;

所以闵式距离可以看做是前三种距离的总结,前三种距离是闵式距离的特例。

标准化欧氏距离(Standardized Euclidean distance)

标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,先将各个分量都“标准化”到均值、方差相等。均值和方差标准化到多少呢?假设样本集X的均值(mean)为m,标准差(standard deviation)为s,那么X的“标准化变量”表示为:

\[ X^* = \frac {X - m}{s} \]

而且标准化变量的数学期望为0,方差为1。

推广到两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的标准化欧氏距离的公式:

\[ d_{ab} = \sqrt[]{\sum_{k = 1}^{n}(\frac{x_{1k} - x_{2k}}{s_k})^2} \]

如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)。

马氏距离/马哈拉诺比斯距离(Mahalanobis Distance)

马氏距离是基于样本分布的一种距离。物理意义就是在规范化的主成分空间中的欧氏距离。所谓规范化的主成分空间就是利用主成分分析对一些数据进行主成分分解。再对所有主成分分解轴做归一化,形成新的坐标轴。由这些坐标轴张成的空间就是规范化的主成分空间。

有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:

\[ D(X) = \sqrt[]{(X - \mu)^TS^{-1}(X-\mu)} \]

而其中向量Xi与Xj之间的马氏距离定义为:

\[ D(X_i, X_j) = \sqrt[]{(X_i - X_j)^TS^{-1}(X_i - X_j)} \]

若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:

\[ D(X_i, X_j) = \sqrt[]{(X_i - X_j)^T(X_i - X_j)} \]

则Xi与Xj之间的马氏距离等于他们的欧氏距离。

马氏距离的特点

量纲无关,排除变量之间的相关性的干扰;

马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;

计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。

汉明距离

两个等长字符串s1与s2之间的汉明距离定义为:将其中一个变为另外一个所需要作的最小替换次数

字符串“1111”与“1001”之间的汉明距离为2。

The Hamming distance between “toned” and “roses” is 3.

夹角余弦(Cosine)

几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异

在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:

\[ cos (\theta) = \frac {x_1 x_2 + y_1 y_2}{\sqrt[]{x_1^2 + y_1^2} \sqrt[]{x_2^2 + y_2^2}}​ \]

扩展到n维,则两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦为:

\[ cos(\theta) = \frac{a \cdot b}{|a| |b|} = \frac{ \sum_{k = 1}^n x_{1k} x_{2k} }{ \sqrt[]{\sum_{k = 1}^n x_{1k}^2} \sqrt[]{\sum_{k = 1}^n x_{2k}^2} } \]

Reference

https://baike.baidu.com/item/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E5%BA%A6%E9%87%8F/1274107?fromtitle=%E6%AC%A7%E6%B0%8F%E8%B7%9D%E7%A6%BB&fromid=1798948&fr=aladdin

https://baike.baidu.com/item/%E6%9B%BC%E5%93%88%E9%A1%BF%E8%B7%9D%E7%A6%BB/743092?fr=aladdin

https://baike.baidu.com/item/%E5%88%87%E6%AF%94%E9%9B%AA%E5%A4%AB%E8%B7%9D%E7%A6%BB/8955729?fr=aladdin

https://baike.baidu.com/item/%E9%97%B5%E5%8F%AF%E5%A4%AB%E6%96%AF%E5%9F%BA%E7%A9%BA%E9%97%B4/11013307?fr=aladdin

https://en.wikipedia.org/wiki/Mahalanobis_distance