在机器学习领域,距离度量是许多算法如KNN、SVM和逻辑回归等的基础。这些算法通常依赖于数据点之间的距离来执行分类和回归任务。本文将探讨这些算法中距离度量的重要性,并介绍几种常用的距离度量方法。
K-最近邻(KNN)是一种监督学习算法,主要用于解决分类问题,有时也用于回归问题。KNN算法的核心思想是相似的事物在空间上是接近的,即如果一个点X在一组点中被标记为正例,那么与X接近的点也很可能是正例。为了更好地理解最近邻的概念,来看一个简单的二分类案例。假设有一个数据集D,其中包含正例和负例的点,每个点Xi属于R维空间,Yi是对应的标签(正例或负例)。
考虑一个二维空间中的查询点Xq,其标签未知。Xq周围的点被视为Xq的邻居,而与Xq距离最近的点则是最近邻。那么,如何确定一个点是否最近呢?这就需要用到距离度量方法。
在理论上,距离度量是一种客观的评分,用于总结特定领域中两个对象之间的差异。尽管存在多种距离度量技术,但只使用其中的一部分,包括:
欧几里得距离是最常用的距离度量方法之一,用于计算连续点之间的距离,特别适用于计算两个实数值向量之间的距离。使用欧几里得距离时,需要对数据进行归一化或标准化处理,否则结果可能不理想。
以二维向量为例,假设X1和X2是位于二维空间中的两个点,X1的坐标为(x1, y1),X2的坐标为(x2, y2)。可以使用勾股定理来计算这两点之间的距离,即最短直线距离。
d = || X1 – X2 ||
对于D维向量,如果X1属于R^D,X2也属于R^D,那么它们之间的距离可以表示为:
distance = sqrt( (x2 - x1)^2 + (y2 - y1)^2 )
例如,如果X1(3, 4)和X2(4, 7),那么它们之间的欧几里得距离为:
distance = sqrt( (4-3)^2 + (7-4)^2 ) = sqrt( 10 ) ≈ 3.1
曼哈顿距离,也称为出租车距离或城市街区距离,是一种简单的距离度量方法。它计算的是两点之间的绝对值距离,即不考虑对角线或最短路径,而是沿着实际路径计算距离。
Manhatten Distance = sum for i to N sum || X1i – X2i ||
例如,如果一个出租车从点X1出发到达点X2,不考虑最短路径,而是计算其实际行驶的绝对路径。根据曼哈顿距离公式:
distance = absolute sum ||xi-yi|| = (7 + 4) = 11
Minkowski Distance = ( ∑i=1 to n( X1i – X2i )^P )^(1/P)
Hamming Distance(X1, X2) = 3