Bootstrap

机器学习-距离的度量方法

一. 欧式距离

欧式距离(Euclidean distance):多维空间中两点之间的直线距离
在这里插入图片描述
对于两个点 ( A = ( x 1 , x 2 , . . . , x n ) ) 和 ( B = ( y 1 , y 2 , . . . , y n ) ) ( A = (x_1, x_2, ..., x_n) ) 和 ( B = (y_1, y_2, ..., y_n) ) (A=(x1,x2,...,xn))(B=(y1,y2,...,yn)),欧式距离的公式为:

d ( A , B ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + . . . + ( x n − y n ) 2 d(A, B) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2 + ... + (x_n - y_n)^2} d(A,B)=(x1y1)2+(x2y2)2+...+(xnyn)2

在二维空间中(即 ( n = 2 )),欧式距离简化为:

d ( A , B ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 d(A, B) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2} d(A,B)=(x1y1)2+(x2y2)2

二. 曼哈顿距离

曼哈顿距离,也叫做“城市街区距离”或“L1范数”,度量的是在网格状的空间中,两点之间的总直线距离。它计算的是两个点在各个坐标轴上差值的绝对值之和。
在这里插入图片描述

对于两个点 ( A = ( x 1 , x 2 , . . . , x n ) ) ( A = (x_1, x_2, ..., x_n) ) (A=(x1,x2,...,xn)) ( B = ( y 1 , y 2 , . . . , y n ) ) ( B = (y_1, y_2, ..., y_n) ) (B=(y1,y2,...,yn)),曼哈顿距离的公式为:

d ( A , B ) = ∣ x 1 − y 1 ∣ + ∣ x 2 − y 2 ∣ + . . . + ∣ x n − y n ∣ d(A, B) = |x_1 - y_1| + |x_2 - y_2| + ... + |x_n - y_n| d(A,B)=x1y1+x2y2+...+xnyn

在二维空间中(即 ( n = 2 )),曼哈顿距离简化为:

d ( A , B ) = ∣ x 1 − y 1 ∣ + ∣ x 2 − y 2 ∣ d(A, B) = |x_1 - y_1| + |x_2 - y_2| d(A,B)=x1y1+x2y2

三. 切比雪夫距离

切比雪夫距离度量的是两点之间的最大坐标差。它反映了两点在“棋盘式”格局下的最短路径(即每一步可以沿着坐标轴的任何方向移动)。
在这里插入图片描述
在这里插入图片描述

对于两个点 ( A = ( x 1 , x 2 , . . . , x n ) ) ( A = (x_1, x_2, ..., x_n) ) (A=(x1,x2,...,xn)) ( B = ( y 1 , y 2 , . . . , y n ) ) ( B = (y_1, y_2, ..., y_n) ) (B=(y1,y2,...,yn)),切比雪夫距离的公式为:

d ( A , B ) = max ⁡ ( ∣ x 1 − y 1 ∣ , ∣ x 2 − y 2 ∣ , . . . , ∣ x n − y n ∣ ) d(A, B) = \max(|x_1 - y_1|, |x_2 - y_2|, ..., |x_n - y_n|) d(A,B)=max(x1y1,x2y2,...,xnyn)

在二维空间中(即 ( n = 2 )),切比雪夫距离简化为:

d ( A , B ) = max ⁡ ( ∣ x 1 − y 1 ∣ , ∣ x 2 − y 2 ∣ ) d(A, B) = \max(|x_1 - y_1|, |x_2 - y_2|) d(A,B)=max(x1y1,x2y2)

四. 闵式距离

闵式距离(Minkowski Distance)是一类距离度量的泛化形式,包括了欧几里得距离、曼哈顿距离和切比雪夫距离等作为特例。闵式距离的一般定义为:

d p = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 / p d_p = \left( \sum_{i=1}^{n} |x_i - y_i|^p \right)^{1/p} dp=(i=1nxiyip)1/p

其中, ( x = ( x 1 , x 2 , … , x n ) ) ( x = (x_1, x_2, \dots, x_n) ) (x=(x1,x2,,xn)) ( y = ( y 1 , y 2 , … , y n ) ) ( y = (y_1, y_2, \dots, y_n) ) (y=(y1,y2,,yn))是 n 维空间中的两个点, ( p ) ( p ) (p) 是一个正数,称为距离的阶数(也可以称为“闵式指数”)。闵式距离的定义可以通过不同的 ( p ) ( p ) (p) 值得到不同的距离度量。

1. p不同取值,表示不同距离

  • 当 ( p = 1 ) 时,闵式距离变为曼哈顿距离(L1距离):
    d 1 = ∑ i = 1 n ∣ x i − y i ∣ d_1 = \sum_{i=1}^{n} |x_i - y_i| d1=i=1nxiyi
  • 当 ( p = 2 ) 时,闵式距离变为欧几里得距离(L2距离):
    d 2 = ( ∑ i = 1 n ∣ x i − y i ∣ 2 ) 1 / 2 d_2 = \left( \sum_{i=1}^{n} |x_i - y_i|^2 \right)^{1/2} d2=(i=1nxiyi2)1/2
  • ( p → ∞ ) ( p \to \infty ) (p) 时,闵式距离变为切比雪夫距离:
    d ∞ = max ⁡ i ∣ x i − y i ∣ d_\infty = \max_{i} |x_i - y_i| d=imaxxiyi

2. 当 ( p → ∞ ) ( p \to \infty ) (p) 时,为什么闵式距离变为切比雪夫距离

闵式距离通过参数 ( p ) ( p ) (p) 控制了度量的敏感度。随着 ( p ) ( p ) (p) 的增大,度量对坐标差异较大的维度会变得更加敏感。当 ( p ) ( p ) (p) 趋近于无穷大时,闵式距离就转化为切比雪夫距离,关注的是最大的坐标差异。

我们可以考虑闵式距离在 ( p → ∞ ) ( p \to \infty ) (p) 时的极限行为。假设我们有 ( n ) ( n ) (n) 个坐标差 ( ∣ x i − y i ∣ ) ( |x_i - y_i| ) (xiyi) 对应于 ( i = 1 , 2 , … , n ) ( i = 1, 2, \dots, n ) (i=1,2,,n)

( p ) ( p ) (p) 增加时, ( ∣ x i − y i ∣ p ) ( |x_i - y_i|^p ) (xiyip) 对较大的坐标差更加敏感。为了更清楚地说明这一点,假设我们有以下几个差值:

∣ x 1 − y 1 ∣ = 3 , ∣ x 2 − y 2 ∣ = 1 , ∣ x 3 − y 3 ∣ = 2 |x_1 - y_1| = 3, \quad |x_2 - y_2| = 1, \quad |x_3 - y_3| = 2 x1y1=3,x2y2=1,x3y3=2

随着 ( p ) ( p ) (p)增大, ( ∣ x 1 − y 1 ∣ p = 3 p ) ( |x_1 - y_1|^p = 3^p ) (x1y1p=3p)会迅速增大,而 ( ∣ x 2 − y 2 ∣ p = 1 p = 1 ) ( |x_2 - y_2|^p = 1^p = 1 ) (x2y2p=1p=1) ( ∣ x 3 − y 3 ∣ p = 2 p ) ( |x_3 - y_3|^p = 2^p ) (x3y3p=2p) 的增长速度远低于 ( 3 p ) ( 3^p ) (3p)。因此, ( ∣ x 1 − y 1 ∣ p ) ( |x_1 - y_1|^p ) (x1y1p) 在总和中占据主导地位。此时,整体的距离更依赖于最大值的坐标差,而对小的坐标差的贡献可以忽略不计。(开方为递增函数,可以削弱趋势,但改变不了趋势)

因此,当 ( p → ∞ ) ( p \to \infty ) (p) 时,闵式距离的计算会变为:

d ∞ = max ⁡ i ∣ x i − y i ∣ d_\infty = \max_{i} |x_i - y_i| d=imaxxiyi

也就是说,闵式距离的极限值就是所有坐标差中的最大值,这正是切比雪夫距离的定义。

( p → ∞ ) ( p \to \infty ) (p) 时,闵式距离变为切比雪夫距离的原因是:在极大的 ( p ) ( p ) (p) 下,较大的坐标差主导了距离的计算,而较小的坐标差对总和的贡献变得微不足道,从而使得闵式距离的计算结果转化为最大坐标差,即切比雪夫距离。

五. 总结

  • 欧几里得距离:沿直线的最短路径
  • 曼哈顿距离:移动只能沿着水平或垂直方向。
  • 切比雪夫距离:考虑沿任何方向的最大移动步数。
  • 闵式距离:一类距离度量的泛化形式

每种距离度量有不同的应用场景,选择合适的度量方式取决于具体问题的需求。

;