机器学习部分:距离的度量(欧氏距离,曼哈顿距离,夹角余弦距离,切比雪夫距离,汉明距离,闵可夫斯基距离,马氏距离)
在数据挖掘领域内,这一领域中常常涉及样本间的相似度评估(Similarity),而常规做法通常是测定样本间的距离。本文旨在归纳和总结各种距离计算方法。
距离计算方法
1.欧式距离EuclideanDistance
欧几里得距离:也称欧几里得距离,在一个N维空间中计算两点之间的距离。其结果必定是非负数。其值可通过以下步骤计算:首先,在每个维度上取两点坐标的差值;然后对这些差值进行平方运算;接着将所有平方后的差值累加;最后对总和开平方得到最终结果。
(1)二维平面上两点a(x1,y1),b(x2,y2)之间的欧式距离公式:

(2) n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的欧式距离公式:

2. 曼哈顿距离(ManhattanDistance)
曼哈顿距离也被界定为" Manhattan block distance"。设想你在纽约市的街道上行驶时的情景:从一个街角开车至另一个街角所需行驶的距离即为该区域内的" Manhattan distance"。
(1)二维平面上两点a(x1,y1),b(x2,y2)之间的曼哈顿距离公式:

(2) n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的曼哈顿距离公式:

3. 夹角余弦
也称余弦相似度,在向量空间中通过计算两个向量之间夹角的余弦值来衡量个体间的差异程度。当两者的指向相同时,则表示它们越接近。当其夹角趋近于零时,则表明两者较为相近。为了确定两者方向的一致性,则需运用余弦定理来计算它们之间的具体角度。
(1)二维平面上两向量a(x1,y1),b(x2,y2)之间的夹角余弦公式:

也可直接通过向量运算:

(2) n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的夹角余弦公式:

4.切比雪夫距离(Chebyshevdistance)
在国际象棋中,国王能够进行直行、横行和斜向移动。
从一个格子(X₁,Y₁)到另一个格子(X₂,Y₂)所需最少步数被称为切比雪夫距离。
切比雪夫距离的本质是两个坐标轴上数值差的最大值,在二维空间中计算方式是取|x₂-x₁|和|y₂-y₁|中的较大者。
(1)二维平面上两点a(x1,y1),b(x2,y2)之间的切比雪夫距离公式:

(2) n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的切比雪夫距离公式:

5. 汉明距离(Hamming Distance)
相同长度的两个字符串间的汉明距离是指其各自对应位置上不同字符的数量。
计算得出~这两个二进制数~之间存在~两个不同的字符位置。
计算得出这两个六位数字之间存在三个不同的字符位置。
irei~与rise~之间存在三个不同之处。

- 定义:两个等长字符串s₁与s₂之间的汉明距离定义为:通过将其中一个转换为另一个所需的最小字符替换次数。
- 汉明重量:即该字符串相对于同样长度的零字符串而言的汉明距离。例如,在二进制情况下,其值等于1的数量;对于向量空间中的元素a和b而言,则它们之间的汉明距离等于各自汉明重量差值|a-b|。
- 应用:在信息论、编码理论以及密码学等多个领域都有广泛应用。例如,在信息编码过程中为了增强容错性应尽量增大编码间的最小汉明距离;然而当需比较不同长度的字符串时仅靠替换是不够的还需考虑插入与删除操作因此通常采用编辑距离等更为复杂的算法。
- 在Matlab中计算两个向量之间的汉明距离时,默认采用以下定义:两个向量不同分量所占总分量数的比例。
6. 闵可夫斯基距离(Minkowski Distance)
闵氏距离并不是一种单一的距离指标,而是对一系列距离计算公式的综合说明,在研究中旨在涵盖多种不同的度量方法。
- 闵氏距离定义:
- 两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:

其中p是一个变参数:
当p=1时,就是曼哈顿距离;
当p=2时,就是欧氏距离;
当p→∞时,就是切比雪夫距离。
因此,根据变参数的不同,闵氏距离可以表示某一类/种的距离。
- 闵氏距离具有明显的局限性。
- e.g. 考虑二维空间中两个样本点(身高[单位:cm],体重[单位:kg]):假设有三个样本a(180,50)、b(190,50)和c(180,60)。根据计算可知:
- a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离还是切比雪夫距离)等于a与c之间的闵氏距离。
- 然而,在实际情况中身高相差10cm与体重相差10kg并不等价。
- 闵氏距离的一个显著缺点在于:
- (1)它忽略了各个分量之间的量纲差异(即"单位"的不同),将具有不同量纲的指标视为相同的度量标准。
- e.g. 考虑二维空间中两个样本点(身高[单位:cm],体重[单位:kg]):假设有三个样本a(180,50)、b(190,50)和c(180,60)。根据计算可知:
(2)未考虑各个分量的分布(期望,方差等)可能是不同的。
Matlab计算闵氏距离(以p=2的欧氏距离为例):
7. 马氏距离(Mahalanobis Distance)
马氏距离的引出:

在图中展示两个正态分布的整体。这两个整体分别具有均值参数a和b,并且由于它们具有不同的方差。那么,在图中A点距离哪一个整体更近呢?或者换句话说,在这种情况下(即)下(虽然两者之间的欧氏距离较大),在情况(即)下(虽然两者之间的欧氏距离较大),在情况(即)下(虽然两者之间的欧氏距离较大),在情况(即)下(虽然两者之间的欧氏距离较大)。因此,在这种情况下(尽管两者之间的欧氏距离较大),在情况(即)下(虽然两者之间的欧氏距离较大),所以答案是
*概念:马氏距离基于样本分布而形成的一种度量方式;其物理意义相当于在经规范化后的主元空间中所对应的欧氏距离;所谓的规范化主元空间即为主元分析应用于数据降维后的结果空间;随后会对所有主元分解得到的轴进行标准化处理以建立新的坐标基准;这些标准化后的轴所构成的空间即为规范化后的主元空间

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

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

当相关系数矩阵为单位矩阵(各样本向量相互独立且服从同一多元正态分布)时,则Xi与Xj之间的Mahalanobis距离等于它们的Euclidean距离:

若协方差矩阵是对角矩阵,则就是标准化欧氏距离。
- 欧式距离&马氏距离:


- 马氏距离的特点如下:
- 不受量纲影响且能够消除各变量间相互关联的影响;
- 基于总样本数据集进行计算得出的结果具有特殊性:若将同一组观测数据代入不同统计群体中进行比较时(比如来自不同分布的数据集),最终所得出的距离值通常会有所差异(除非这两个统计群体具有完全相同的协方差矩阵);
- 在实际应用过程中需要注意以下几点:当总样本数量少于变量维度时(即观察指标数目),马氏距离计算中的协方差矩阵逆矩阵可能无法求取;此时建议采用欧氏距离进行替代计算。
Matlab计算马氏距离:
