跳转到内容

常见距离计算公式

在数据分析、机器学习和模式识别中,衡量数据点之间的距离或相似度是一项核心任务。以下详细解析欧氏距离、余弦相似度、曼哈顿距离、切比雪夫距离和汉明距离这五种重要的度量方法。

  • 概念: 欧氏距离是我们在数学几何中最常接触的距离概念,指的是多维空间中两点之间 最短的直线距离
  • 用途: 它是最常用的一种距离度量,特别适用于那些 各维度量纲一致 且希望 距离与坐标值大小 严格相关的场景。
  • 公式 (在 $n$ 维空间中,点 $A(x_1, x_2, \dots, x_n)$ 和点 $B(y_1, y_2, \dots, y_n)$ 之间):

$$d(A, B) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}$$

  • 特点:
    • 距离受 绝对数值 的影响。
    • 在 $n=2$ 时,即为平面直角坐标系中的两点距离公式。
    • 它是闵可夫斯基距离 ($L_p$ 范数) 在 $p=2$ 时的特例。
  • 概念: 余弦相似度衡量的是多维空间中两个向量之间的 夹角 的余弦值。它关注的是两个向量在 方向上的一致性,而非其绝对距离或长度。
  • 用途: 广泛应用于文本相似度计算(将文本转换为词向量)、推荐系统等场景。特别适用于向量的 长度(模)不重要,而 方向(模式)更重要 的场合。
  • 公式 (在 $n$ 维空间中,向量 $\mathbf{A}$ 和 $\mathbf{B}$ 之间):

$$\text{Similarity}(\mathbf{A}, \mathbf{B}) = \cos(\theta) = \frac{\mathbf{A} \cdot \mathbf{B}}{||\mathbf{A}|| \cdot ||\mathbf{B}||} = \frac{\sum_{i=1}^{n} x_i y_i}{\sqrt{\sum_{i=1}^{n} x_i^2} \sqrt{\sum_{i=1}^{n} y_i^2}}$$

  • 特点:
    • 结果范围在 $[-1, 1]$ 之间。
      • $1$ 表示完全相同(夹角 $0^\circ$)。
      • $0$ 表示正交/不相关(夹角 $90^\circ$)。
      • $-1$ 表示完全相反(夹角 $180^\circ$)。
    • 对向量的长度不敏感。例如,向量 $(1, 1)$ 和 $(100, 100)$ 的欧氏距离很大,但它们的余弦相似度为 $1$。
  • 概念: 曼哈顿距离,又称 城市街区距离 (City Block Distance) 或 $L_1$ 范数。它指的是在网格状路径中,两点之间沿着坐标轴方向移动的距离总和。想象一下在曼哈顿的街道上,你只能沿着横向或纵向移动。
  • 用途: 在不允许斜向移动的网格或棋盘问题中很常见。相比欧氏距离,它对异常值(Outliers)的 鲁棒性更强
  • 公式 (在 $n$ 维空间中,点 $A(x_1, \dots, x_n)$ 和点 $B(y_1, \dots, y_n)$ 之间):

$$d(A, B) = \sum_{i=1}^{n} |x_i - y_i|$$

  • 特点:
    • 距离只计算各个维度差的 绝对值之和
    • 它是闵可夫斯基距离 ($L_p$ 范数) 在 $p=1$ 时的特例。

4. 切比雪夫距离 (Chebyshev Distance)

Section titled “4. 切比雪夫距离 (Chebyshev Distance)”
  • 概念: 切比雪夫距离,又称 $L_{\infty}$ 范数,指的是两点在各个坐标维度上的 差值的最大绝对值
  • 用途: 常用于国际象棋等场景(例如,王从一个格子走到另一个格子所需的最少步数)。在需要确保所有维度的误差都控制在某个最大值内时很有用。
  • 公式 (在 $n$ 维空间中,点 $A(x_1, \dots, x_n)$ 和点 $B(y_1, \dots, y_n)$ 之间):

$$d(A, B) = \max_{i=1}^{n} (|x_i - y_i|)$$

  • 特点:
    • It 只受 差异最大的那个维度 的影响。
    • 它是闵可夫斯基距离 ($L_p$ 范数) 在 $p \rightarrow \infty$ 时的极限形式。
  • 概念: 汉明距离用于衡量两个 等长字符串二进制序列(通常是编码后的数据)之间 不同位 (bit) 的数量。
  • 用途: 主要用于 错误检测与纠正 编码领域(例如,判断数据传输中发生了多少位错误)。它本质上是计算两个向量 异或 (XOR) 结果中 $1$ 的个数。
  • 公式 (对于等长字符串/序列 $A$ 和 $B$):

$$d(A, B) = \sum_{i=1}^{n} (x_i \ne y_i)$$

(其中 $x_i$ 和 $y_i$ 是序列 $A$ 和 $B$ 在第 $i$ 个位置上的元素,$n$ 是序列长度。)
  • 特点:
    • 仅适用于等长序列
    • 通常用于离散数据(如二进制、字符),而不是连续的浮点数向量。

度量方式关注点数据类型几何意义鲁棒性/敏感度
欧氏距离 ($L_2$)绝对差异;最短直线距离连续/离散直线距离对异常值敏感
余弦相似度方向一致性;夹角连续/离散 (向量)向量夹角余弦对向量长度不敏感
曼哈顿距离 ($L_1$)绝对差异之和;轴向移动连续/离散”城市街区” 距离对异常值有较好的鲁棒性
切比雪夫距离 ($L_{\infty}$)维度上的最大差异连续/离散最大维度差只关注最差的那个维度
汉明距离不同位数/位置的数量离散/类别 (等长序列)错误位数专用于序列比较