【AI知识点】欧几里得距离(Euclidean Distance)
欧几里得距离(Euclidean Distance)是一种常用的几何距离度量方法,用来计算两个点之间的直线距离。在二维或更高维空间中,欧几里得距离可以看作是“最短路径”的概念。它在机器学习、图像处理、模式识别、聚类分析等领域有广泛的应用。
1. 欧几里得距离的定义
给定两个点 A = ( x 1 , y 1 ) \mathbf{A} = (x_1, y_1) A=(x1,y1) 和 B = ( x 2 , y 2 ) \mathbf{B} = (x_2, y_2) B=(x2,y2) 在二维平面上,欧几里得距离可以通过勾股定理计算为这两个点之间的直线距离。公式为:
d ( A , B ) = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 d(\mathbf{A}, \mathbf{B}) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} d(A,B)=(x2−x1)2+(y2−y1)2
这个公式表示两点在平面上形成的直角三角形的斜边长度。
三维空间中的欧几里得距离
如果是三维空间中的两个点 A = ( x 1 , y 1 , z 1 ) \mathbf{A} = (x_1, y_1, z_1) A=(x1,y1,z1) 和 B = ( x 2 , y 2 , z 2 ) \mathbf{B} = (x_2, y_2, z_2) B=(x2,y2,z2),它们之间的欧几里得距离为:
d ( A , B ) = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 + ( z 2 − z 1 ) 2 d(\mathbf{A}, \mathbf{B}) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2} d(A,B)=(x2−x1)2+(y2−y1)2+(z2−z1)2
更高维空间中的欧几里得距离
对于n维空间中的两个点 A = ( x 1 , x 2 , … , x n ) \mathbf{A} = (x_1, x_2, \dots, x_n) A=(x1,x2,…,xn) 和 B = ( y 1 , y 2 , … , y n ) \mathbf{B} = (y_1, y_2, \dots, y_n) B=(y1,y2,…,yn),它们之间的欧几里得距离为:
d ( A , B ) = ∑ i = 1 n ( x i − y i ) 2 d(\mathbf{A}, \mathbf{B}) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2} d(A,B)=i=1∑n(xi−yi)2
即在每个维度上计算两个点的差值的平方,取这些平方和的平方根。
2. 欧几里得距离的计算示例
示例1:二维空间中的欧几里得距离
假设有两个点 A = ( 1 , 2 ) \mathbf{A} = (1, 2) A=(1,2) 和 B = ( 4 , 6 ) \mathbf{B} = (4, 6) B=(4,6),它们在二维平面上的欧几里得距离可以计算如下:
d ( A , B ) = ( 4 − 1 ) 2 + ( 6 − 2 ) 2 = 3 2 + 4 2 = 9 + 16 = 25 = 5 d(\mathbf{A}, \mathbf{B}) = \sqrt{(4 - 1)^2 + (6 - 2)^2} = \sqrt{3^2 + 4^2} = \sqrt{9 + 16} = \sqrt{25} = 5 d(A,B)=(4−1)2+(6−2)2=32+42=9+16=25=5
因此,这两个点之间的欧几里得距离为5。
示例2:三维空间中的欧几里得距离
假设有两个点 A = ( 1 , 2 , 3 ) \mathbf{A} = (1, 2, 3) A=(1,2,3) 和 B = ( 4 , 6 , 8 ) \mathbf{B} = (4, 6, 8) B=(4,6,8),它们在三维空间中的欧几里得距离为:
d ( A , B ) = ( 4 − 1 ) 2 + ( 6 − 2 ) 2 + ( 8 − 3 ) 2 = 3 2 + 4 2 + 5 2 = 9 + 16 + 25 = 50 ≈ 7.07 d(\mathbf{A}, \mathbf{B}) = \sqrt{(4 - 1)^2 + (6 - 2)^2 + (8 - 3)^2} = \sqrt{3^2 + 4^2 + 5^2} = \sqrt{9 + 16 + 25} = \sqrt{50} \approx 7.07 d(A,B)=(4−1)2+(6−2)2+(8−3)2=32+42+52=9+16+25=50≈7.07
因此,这两个点之间的距离约为7.07。
3. 欧几里得距离的直观理解
欧几里得距离可以直观地理解为平面或空间中的“直线距离”或“最短路径”。它基于勾股定理,计算两个点之间的直线距离。
例子:
在日常生活中,如果你在城市的一个街区(点A),想要到达另一条街(点B),欧几里得距离就是从A到B的直线距离。如果你可以无视街道和建筑物,直接穿越到目标点,所走的距离就是欧几里得距离。
在更高维的向量空间中,这一概念仍然适用:欧几里得距离是两个向量之间的直线距离,描述了它们在向量空间中的“最短”距离。
4. 欧几里得距离的应用场景
a. 聚类分析
在聚类分析中,欧几里得距离常用于衡量数据点之间的相似性。距离越小,表示两个数据点越相似。常见的聚类算法如K-means使用欧几里得距离来决定数据点和聚类中心之间的距离,并根据距离将数据点划分到最接近的簇中。
b. 图像处理
在图像处理任务中,欧几里得距离可以用于衡量图像特征之间的差异。图像可以通过特征向量表示,特征向量之间的欧几里得距离可以衡量图像的相似性。
c. 最近邻算法(K-NN)
在K近邻算法(K-NN)中,欧几里得距离用于衡量新样本和训练集中每个样本之间的距离。距离最近的K个点用于预测新样本的类别。
d. 物理模拟
在物理学中,欧几里得距离用于计算物体在三维空间中的实际距离。例如,两个物体之间的距离可以通过欧几里得距离来计算。
5. 欧几里得距离的优缺点
优点:
- 简单直观:欧几里得距离是最常用的距离度量之一,易于理解和计算。
- 几何解释:它具有直观的几何解释,代表了两个点之间的最短路径。
缺点:
- 维度灾难:在高维空间中,欧几里得距离的效果会受到“维度灾难”影响,即随着维度的增加,数据点之间的距离会趋于相似,从而使得距离度量失效。
- 对尺度敏感:欧几里得距离对不同特征的尺度非常敏感。如果不同特征的量纲(单位)不一致,欧几里得距离可能会被主导量纲较大的特征所主导。因此,在应用欧几里得距离之前,通常需要对数据进行归一化或标准化。
6. 欧几里得距离与其他距离度量的对比
a. 曼哈顿距离(Manhattan Distance):
曼哈顿距离表示在城市街道网格中沿着水平和垂直路线移动的距离。公式为:
d Manhattan ( A , B ) = ∑ i = 1 n ∣ x i − y i ∣ d_{\text{Manhattan}}(\mathbf{A}, \mathbf{B}) = \sum_{i=1}^{n} |x_i - y_i| dManhattan(A,B)=i=1∑n∣xi−yi∣
相比之下,欧几里得距离是直线距离。曼哈顿距离适用于需要遵循某种网格或规则的情况(如城市街道、棋盘等),而欧几里得距离则是最短路径的距离。
b. 余弦相似度(Cosine Similarity):
余弦相似度用于衡量两个向量之间的方向相似性,而不是它们的距离。余弦相似度的值范围是 [ − 1 , 1 ] [-1, 1] [−1,1],用于表示两个向量的夹角余弦值。如果两个向量的夹角为0度,表示它们的方向相同,余弦相似度为1。而欧几里得距离关注的是向量之间的“物理距离”。
c. 马氏距离(Mahalanobis Distance):
马氏距离是一种考虑数据分布的距离度量,特别适用于多元正态分布数据。它考虑了变量之间的协方差,因此在不规则数据分布的情况下,马氏距离比欧几里得距离更可靠。
7. 欧几里得距离在机器学习中的重要性
尽管欧几里得距离在高维数据中可能面临维度灾难,但它仍然是很多机器学习和数据挖掘算法中的核心度量方式。在低维或经过适当处理的数据上,