数据科学中的9种距离测量
数据科学中的9种距离测量
在数据科学领域,距离测量是许多算法的核心组成部分,无论是有监督学习还是无监督学习。从k-NN到UMAP,再到HDBSCAN,这些算法都依赖于不同的距离度量来实现其功能。选择合适的距离度量对于模型的性能至关重要。本文将介绍9种常用的距离测量方法,包括它们的定义、应用场景和不足之处,帮助读者更好地理解何时使用哪种距离度量。
1. 欧式距离
我们从最常见的距离度量开始,即欧式距离。这是一种距离测量方法,最好解释为连接两点的线段的长度。
该公式相当简单,因为距离是使用勾股定理根据点的笛卡尔坐标计算的。
1.1 不足之处
尽管欧式距离是一种常见的距离度量,但它不是尺度不变的,这意味着计算出的距离可能会因特征的单位而产生偏差。通常,在使用这种距离度量之前,需要对数据进行归一化处理。
此外,随着数据维数的增加,欧式距离的用处就越小。这与维度的诅咒有关,它与高维空间并不像我们直观地期望从二维或三维空间那样运作。有关很好的摘要,请参考该贴。
1.2 应用场景
当您拥有低维数据并且矢量的大小对于测量很重要时,欧式距离非常有效。如果对低维数据使用欧几里得距离,则 kNN 和 HDBSCAN 等方法可以立即显示出色的结果。
尽管已经开发了许多其他度量来解释欧式距离的缺点,但它仍然是最常用的距离度量之一,这是有充分理由的。它使用起来非常直观,易于实施,并在许多用例中显示出出色的结果。
2. 余弦相似度
余弦相似度常常被用来解决欧氏距离在高维空间中的问题。余弦相似度仅仅是两个向量之间夹角的余弦值。如果两个向量都被归一化为长度为1,那么它们的余弦相似度就是它们的内积。
如果两个向量的方向完全相同,它们的余弦相似度为1;而如果两个向量的方向完全相反,它们的相似度为-1。需要注意的是,向量的大小并不重要,因为这是一个衡量方向的度量。
2.1 不足之处
余弦相似性的一个主要缺点是没有考虑向量的大小,只考虑了它们的方向。在实践中,这意味着没有完全考虑值的差异。例如,如果您以推荐系统为例,那么余弦相似度没有考虑不同用户之间评分量表的差异。
2.2 应用场景
当我们有高维数据并且向量的大小不重要时,我们经常使用余弦相似度。对于文本分析,当数据由字数表示时,此度量值非常频繁地使用。例如,当一个单词在一个文档中出现的频率高于另一个文档时,这并不一定意味着一个文档与该单词的相关性更高。可能是文档的长度不均匀,计数的大小不太重要。然后,我们最好使用忽略幅度的余弦相似性。
3. 汉明距离
汉明距离是两个向量之间不同的值的数量。它通常用于比较两个长度相等的二进制字符串。它还可用于字符串,通过计算彼此不同的字符数来比较它们之间的相似程度。
3.1 不足之处
正如您所料,当两个向量的长度不相等时,很难使用汉明距离。您可能希望将相同长度的向量相互比较,以了解哪些位置不匹配。
此外,只要它们不同或相等,它就不会考虑实际值。因此,当量级是一个重要的度量时,不建议使用此距离度量。
3.2 应用场景
典型的用例包括通过计算机网络传输数据时的纠错/检测。它可用于确定二进制字中失真位的数量,作为估计误差的一种方式。
此外,您还可以使用汉明距离来测量分类变量之间的距离。
4. 曼哈顿距离
曼哈顿距离(通常称为 Taxi 距离或 City Block 距离)计算实值向量之间的距离。想象一下描述统一网格(如棋盘)上的对象的向量。曼哈顿距离是指两个向量之间的距离,如果它们只能移动直角。计算距离不涉及对角线移动。
4.1 不足之处
尽管曼哈顿距离似乎适用于高维数据,但它的度量方式不如欧几里得距离直观,尤其是在高维数据中使用时。
此外,它更有可能给出比欧几里得距离更高的距离值,因为它不是可能的最短路径。这不一定会产生问题,但您应该考虑这一点。
4.2 应用场景
当您的数据集具有离散和/或二进制属性时,Manhattan 似乎运行良好,因为它考虑了在这些属性的值内实际可以采用的路径。以欧几里得距离为例,它会在两个向量之间创建一条直线,而实际上这实际上可能是不可能的。
5. 切比雪夫距离
切比雪夫距离。图片由作者提供。
切比雪夫距离定义为沿任何坐标维度的两个向量之间的最大差值。换句话说,它只是沿一个轴的最大距离。由于其性质,它通常被称为棋盘距离,因为国王从一个方格走到另一个方格所需的最小步数等于切比雪夫距离。
5.1 不足之处
切比雪夫通常用于非常具体的用例,这使得它很难用作通用距离度量,如欧式距离或余弦相似度。因此,建议您仅在绝对确定它适合您的用例时才使用它。
5.2 应用场景
如前所述,切比雪夫距离可用于提取从一个方格到另一个方格所需的最小移动次数。此外,在允许不受限制的 8 向移动的游戏中,它可能是一个有用的措施。
在实践中,切比雪夫距离通常用于仓库物流,因为它与桥式起重机移动物体所需的时间非常相似。
6. 闵可夫斯基
闵可夫斯基距离是一种比大多数距离度量更为复杂的度量方法。它是一种Normed vector space(n维实空间)中使用的度量,这意味着它可以在距离可以表示为具有长度的向量的空间中使用。
这项措施有三个要求:
- 零向量 — 零向量的长度为零,而其他每个向量的长度均为正。例如,如果我们从一个地方旅行到另一个地方,那么这个距离总是正的。但是,如果我们从一个地方旅行到它自己,那么这个距离为零。
- 标量因子 - 当您将向量与正数相乘时,其长度会发生变化,同时保持其方向不变。例如,如果我们在一个方向上走了一定距离并添加了相同的距离,则方向不会改变。
- 三角形不等式 - 两点之间的最短距离是直线。
Minkowski 距离的公式如下所示:
关于这个距离测量最有趣的是参数p 的使用。我们可以利用这个参数来调整距离度量,使其更接近其他值。
参数p的常见值:
- p=1 — 曼哈顿距离
- p=2 — 欧式距离
- p=∞ — 切比雪夫距离
6.1 不足之处
闵可夫斯基距离具有其所代表的距离度量的相同缺点,因此深入了解曼哈顿距离、欧几里得距离和切比雪夫距离等度量是极为重要的。
此外,参数p在实际应用中可能会带来一些麻烦,因为在某些情况下,找到合适的p值可能会相当计算低效。
6.2 应用场景
参数p的优点在于,你可以对其进行迭代,以找到最适合你具体应用场景的距离度量。它为你提供了极大的灵活性来调整距离度量,如果你对参数p以及多种距离度量非常熟悉,这将是一个巨大的优势。
7. 杰卡德指数
Jaccard 指数(或 Intersection over Union)是用于计算样本集相似性和多样性的指标。它是交集的大小除以样本集的并集的大小。
在实践中,它是集合之间相似实体的总数除以实体总数。例如,如果两个集合有 1 个共同的实体,并且总共有 5 个不同的实体,则 Jaccard 指数将为 1/5 = 0.2。
要计算 Jaccard 距离,我们只需从 1 中减去 Jaccard 指数:
7.1 不足之处
杰卡德指数的一个主要缺点是它极易受到数据规模的影响。数据集的大小会对该指数产生重大影响,因为它可能会显著增加并集的大小,而交集的大小却保持相似。
7.2 应用场景
杰卡德指数通常用于涉及二进制或二值化数据的应用中。例如,当你有一个深度学习模型用于预测图像的某个部分(比如一辆汽车)时,杰卡德指数就可以用来计算预测部分与真实标签之间的准确性。
同样,它也可以用于文本相似性分析,以衡量不同文档之间词汇选择的重叠程度。因此,它可以用于比较模式集合。
8. 哈弗赛因距离
哈弗赛因距离(Haversine distance)是指在球面上两点之间的距离,它根据两点的经度和纬度来计算。它与欧几里得距离非常相似,因为它也计算两点之间的最短直线距离。主要区别在于,由于假设这两点位于一个球面上,因此无法存在一条真正的直线。
8.1 不足之处
这种距离计算方法的一个不足之处在于,它假设点位于一个球面上。在实际应用中,这种情况很少出现,例如地球并不是完美的球形,这可能会使某些情况下的计算变得困难。相反,采用Vincenty距离计算方法可能会更有趣,因为它假设的是一个椭球体。
8.2 使用案例
正如你可能已经预料到的,哈弗赛因距离计算方法通常用于导航领域。例如,你可以用它来计算两个国家之间的距离,当飞机在这两个国家之间飞行时。需要注意的是,如果距离本身已经不算很大,那么这种方法就不太适用了。因为在这种情况下,地球的曲率对计算结果的影响不会那么显著。
9. Sørensen-Dice Index
Sørensen-Dice 指数与 Jaccard 指数非常相似,因为它衡量样本集的相似性和多样性。尽管它们的计算方式相似,但 Sørensen-Dice 指数更直观一些,因为它可以看作是两组之间的重叠百分比,即介于 0 和 1 之间的值:
9.1 不足之处
与 Jaccard 指数一样,它们都夸大了几乎没有真值正集的集合的重要性。因此,它可能会主导多盘的平均比分。它对每个项目的权重与相关集合的大小成反比,而不是平等地对待它们。
9.2 使用案例
这些用例与 Jaccard 索引相似,如果不是相同的话。您会发现它通常用于图像分割任务或文本相似性分析。
注意: 距离度量比这里提到的 9 个要多得多。如果您正在寻找更有趣的指标,我建议您查看以下指标之一:Mahalanobis、Canberra、Braycurtis 和 KL-divergence。