核心概念与数学定义
在一个集合 ( X ) 中,一个距离度量(或度量函数) ( d(x, y) ) 是一个函数:( X \times X \to [0, \infty) ),它必须满足以下四个公理:

- 非负性: ( d(x, y) \ge 0 )
距离最小为0,表示没有差异。
- 同一性: ( d(x, y) = 0 ) 当且仅当 ( x = y )
只有完全相同的两个点,距离才为0。
- 对称性: ( d(x, y) = d(y, x) )
从A到B的距离等于从B到A的距离。
- 三角不等式: ( d(x, z) \le d(x, y) + d(y, z) )
两点间的直接距离,不会大于经过第三点的折线距离,这是保证“距离”符合直觉的关键。
满足以上四个条件的函数才能被称为 “度量” ,有时我们也会使用不满足所有公理的“距离”函数(如不满足三角不等式的),它们通常被称为 “非度量距离” 或 “差异性度量”。
常见距离度量及其直观理解
以下是一些最常用的距离度量,我们用二维或三维空间中的点来举例,但它们可以推广到更高维度(特征空间)。
欧氏距离
- 公式: ( d = \sqrt{\sum_{i=1}^n (x_i - y_i)^2} )
- 描述:两点间的直线距离,是最直观、最常用的距离。
- 比喻:在平整地面上,两点之间的最短直线路径。
- 特点:对各个维度的差异敏感,且受量纲影响大。
曼哈顿距离
- 公式: ( d = \sum_{i=1}^n |x_i - y_i| )
- 描述:各维度坐标差的绝对值之和。
- 比喻:在城市棋盘状街道(如曼哈顿)中,从A点开车到B点需要经过的街区数,只能沿网格线走。
- 特点:对异常值不如欧氏距离敏感。
切比雪夫距离
- 公式: ( d = \max_i (|x_i - y_i|) )
- 描述:所有维度坐标差中绝对值最大的那个。
- 比喻:国际象棋中“国王”从一个格子走到另一个格子所需的最少步数(国王可以朝8个方向移动一步)。
- 特点:由最大差异的维度主导。
闵可夫斯基距离
- 公式: ( d = (\sum_{i=1}^n |x_i - y_i|^p)^{1/p} )
- 描述:欧氏距离和曼哈顿距离的一般化形式。
- 当 ( p=1 ) 时,就是曼哈顿距离。
- 当 ( p=2 ) 时,就是欧氏距离。
- 当 ( p \to \infty ) 时,就是切比雪夫距离。
- 特点:通过参数p可以调节对各个维度差异的敏感度。
余弦相似度与余弦距离
- 相似度公式: ( \text{similarity} = \frac{x \cdot y}{||x|| \cdot ||y||} ) (向量点积除以模长乘积)
- 距离公式: ( d = 1 - \text{similarity} )
- 描述:衡量两个向量的方向差异,而非绝对距离,值在[-1, 1]之间,1表示方向完全相同。
- 比喻:比较两篇文章的主题是否相似,而不关心文章的长短。
- 应用:文本分析、推荐系统(忽略大小,关注模式)。
汉明距离
- 描述:比较两个等长字符串(或二进制序列)在对应位置上值不同的个数。
- 例子:
“karolin”和“kathrin”的汉明距离是3。 - 应用:信息编码、纠错码。
杰卡德距离
- 相似度公式: ( J(A, B) = \frac{|A \cap B|}{|A \cup B|} )
- 距离公式: ( d = 1 - J(A, B) )
- 描述:衡量两个集合的差异性,基于交集与并集的大小。
- 应用:比较样本集合的相似性,如用户购买的商品集合、文档的词语集合。
马氏距离
- 描述:考虑数据协方差结构的距离,它是对欧氏距离的修正,消除了特征间的相关性和量纲影响。
- 直观:在椭圆形的数据分布中,马氏距离衡量的是点在数据分布中的“概率距离”,而不是物理空间中的直线距离。
- 应用:多元统计分析、异常检测(能更准确地识别分布之外的离群点)。
如何选择距离度量?
选择哪种距离没有绝对标准,取决于:
-
数据的类型:
- 连续数值特征:常用欧氏、曼哈顿、马氏距离。
- 文本或高维稀疏数据:常用余弦相似度。
- 集合或二元数据:常用杰卡德距离。
- 分类数据:需要专门的距离(如重叠度量)。
-
问题的目标:
- KNN、K-Means聚类:需要定义“最近邻”,欧氏距离最常见,但需注意量纲。
- 相似性搜索:余弦距离常用于文档、图像特征向量的比较。
- 异常检测:马氏距离能更好地处理相关特征。
-
特征的尺度与相关性:
- 如果特征量纲不同(如身高[米] vs 体重[公斤]),直接使用欧氏距离会使量纲大的特征主导结果。必须进行标准化。
- 如果特征间高度相关,马氏距离比欧氏距离更合适。
关键认知要点
- 距离即差异:在机器学习中,距离度量就是我们对“差异”或“不相似性”的数学定义,不同的定义会带来完全不同的结果。
- 没有“最好”的距离:只有“最适合”当前数据和任务的距离,选择距离度量是建模的一部分。
- 高维灾难:在极高维空间中,许多距离度量(如欧氏距离)会变得不那么有效,因为所有点对之间的距离都趋于相似,这时需要降维或选择更适合高维空间的距离(如余弦距离)。
- 先标准化:对于基于坐标的距离(欧氏、曼哈顿等),在计算前对特征进行标准化(如Z-score标准化)是至关重要的步骤。
理解距离度量,就是理解我们如何用数学语言描述“相似”与“不同”,它是连接原始数据和高级算法(如分类、聚类、检索)的基石,掌握不同度量的特性、假设和应用场景,是进行有效数据分析和模型构建的关键技能。