工程计算和数据科学中常用的9种测量距离

很多算法中,无论是自动驾驶算法还是人工智能算法,都会涉及到距离测量的内容。例如:欧氏距离或者cos相似度,在KNN、UMAP、HDBSCAN等算法中很常见。

工程计算和数据科学中常用的9种测量距离

理解这些距离测量使用的具体领域,对于我们理解不同类型的算法至关重要。以KNN为例,一般而言,KNN经常使用欧式距离,从欧式距离本身来说,就是一种非常优异的距离测量方法。

但是,如果你的测试数据纬度很高,那么,欧氏距离是否还适用?如果你的数据中包含地理空间信息,这样的话或许使用haversine距离来测量更合适。

本文中,我们将讲解多种不同测量距离方法的使用,并且探索如何在不同场景下,使用哪种测量距离。此外,我们将总结不同测量距离的不足之处,这样你就可以在实际工作或学习中,熟练驾驭这些测量距离。

1. 欧氏距离

工程计算和数据科学中常用的9种测量距离

首先,我们介绍最简单常用的欧氏距离。简而言之,欧氏距离----测量由两点连接的一端距离的长度。

公式也是相当直观,使用勾股定理计算笛卡尔坐标系中的点之间距离关系。

工程计算和数据科学中常用的9种测量距离

1.1. 不足之处

尽管它是一种常见的距离度量,但欧几里得距离不是尺度不变的,这意味着计算的距离可能会根据数据的单位而出现偏差。因此,需要在使用此距离度量之前对数据进行归一化

此外,随着数据维度的增加,欧几里得距离变得越来越没用。这与维度灾难有关,造成纬度灾难的一个原因是高维空间中的运行状态与我们所认为的二维或三维空间运行状态大相径庭。

华盛顿大学Pedro Domingos教授的一篇文章解释“来自三维世界的直觉通常不适用于高维世界。在高维中,多元高斯分布的大部分质量不在均值附近,而是在其周围越来越远的“壳”中;而高维橙的大部分体积都在皮,而不是果肉。如果恒定数量的示例均匀分布在一个高维超立方体中,则在某些维度之外,大多数示例更靠近超立方体的一个面,而不是它们最近的邻居。如果我们通过将超球面刻在超立方体中来近似超球面,那么在高维中,几乎所有超立方体的体积都在超球面之外。这对于机器学习来说是个坏消息,其中一种类型的形状通常由另一种类型的形状近似。”

1.2. 用例

当你拥有低维数据并且向量的大小对测量很重要时,欧几里得距离非常有效。如果在低维数据上使用欧几里德距离,kNN 和 HDBSCAN 等方法会显示出很好的开箱即用结果。

尽管已经开发了许多其他度量来解决欧几里得距离的缺点,但它仍然是最常用的距离度量之一,这是有充分理由的。它使用起来非常直观,易于实现,并在许多用例中显示出很好的结果。

2. Cosine相似度

工程计算和数据科学中常用的9种测量距离

余弦相似度经常被用来解决欧几里得距离的高维问题,余弦相似度只是两个向量之间夹角的余弦值。如果将它们归一化为长度均为 1,则它也具有相同的向量内积。

具有完全相同方向的两个向量的余弦相似度为 1,而彼此截然相反的两个向量的相似度为 -1。请注意,它们的大小并不重要,因为这是方向的度量。

工程计算和数据科学中常用的9种测量距离

2.1. 不足之处

余弦相似度的一个主要缺点是不考虑向量的大小,只考虑它们的方向。在实践中,这意味着没有充分考虑值的差异。以推荐系统为例,余弦相似度并没有考虑到不同用户之间评分量表的差异。

2.2. 用例

当我们有高维数据并且向量的大小不重要时,我们经常使用余弦相似度。对于文本分析,当数据以字数表示时,此度量非常常用。例如,当一个词在一个文档中比另一个更频繁地出现时,这并不一定意味着一个文档与该词更相关。可能是文档的长度不均匀,计数的大小不太重要。然后,我们最好使用忽略大小的余弦相似度。

3. 汉明距离

工程计算和数据科学中常用的9种测量距离

汉明距离是两个向量之间不同的值的数量。它通常用于比较两个相等长度的二进制字符串。它还可以用于字符串,通过计算彼此不同的字符数来比较它们彼此的相似程度。

3.1. 不足之处

如你所料,当两个向量长度不同时,汉明距离很难使用。你可以将相同长度的向量用汉明距离相互比较,以了解哪些位置不匹配。

此外,只要它们不同或相等,它就不会考虑实际值。因此,当幅度是重要的度量时,不建议使用此距离度量。

3.2. 用例

典型的用例包括数据通过计算机网络传输时的纠错/检测。它可用于确定二进制字中失真位的数量,作为估计误差的一种方式。此外,您还可以使用汉明距离来衡量分类变量之间的距离。

4. 曼哈顿距离

工程计算和数据科学中常用的9种测量距离

曼哈顿距离,通常称为出租车距离或城市街区距离,用于计算实值向量之间的距离,想象一下在棋盘等统一网格上描述对象的向量。曼哈顿距离指的是两个向量之间的距离,如果它们只能移动直角,计算距离时不涉及对角线运动。

4.1. 不足之处

尽管曼哈顿距离似乎适用于高维数据,但它是一种不如欧几里德距离直观的度量,尤其是在用于高维数据时。此外,它更有可能给出比欧几里德距离更高的距离值,因为它不是可能的最短路径。这不一定会产生问题,但你应该考虑到这一点。

4.2. 用例

当你的数据集具有离散和/或二元属性时,曼哈顿距离似乎工作得很好,因为它考虑了在这些属性的值内实际可以采用的路径。以欧几里得距离为例,它会在两个向量之间创建一条直线,而实际上这可能实际上是不可能的。

5. 切比雪夫距离

工程计算和数据科学中常用的9种测量距离

切比雪夫距离定义为两个向量在任意坐标维度上的最大差值。换句话说,它只是沿一个轴的最大距离。由于其性质,它通常被称为棋盘距离,因为国王从一个方格移动到另一个方格所需的最小移动次数等于切比雪夫距离。

工程计算和数据科学中常用的9种测量距离

5.1. 不足之处

切比雪夫通常用于非常特定的情况下,这使得它难以用作通用距离度量,例如欧几里得距离或余弦相似度。因此,建议仅在你完全确定它适合你的用例时才使用它。

5.2. 用例

如前所述,切比雪夫距离可用于提取从一个方格移动到另一个方格所需的最小移动次数。此外,在允许不受限制的8向移动的游戏中,它可能是一个有用的措施。在实践中,切比雪夫距离通常用于仓库物流,因为它非常类似于桥式起重机移动物体所需的时间。

6. 闵氏距离

工程计算和数据科学中常用的9种测量距离

闵氏距离比大多数测量更复杂一些。它是在标准化向量空间(n 维实空间)中使用的度量,这意味着它可以在距离可以表示为具有长度的向量的空间中使用。

它有三个要求:

• 零向量----零向量的长度为零,而其他所有向量的长度为正。例如,如果我们从一个地方旅行到另一个地方,那么这个距离总是正的。但是,如果我们从一个地方旅行到它自己,那么这个距离就是零。

• 尺度因子----当你将向量与正数相乘时,其长度会发生变化,同时保持其方向。例如,如果我们在一个方向上走一定距离并添加相同的距离,则方向不会改变。

• 三角不等性----两点之间最短的距离是直线。

工程计算和数据科学中常用的9种测量距离

关于这个距离测量最有趣的是参数 p 的使用。我们可以使用此参数来操纵距离度量,使其与其他度量非常相似。p 的常见值为:

• p=1 ---- 曼哈顿距离

• p=2 ---- 欧氏距离

• p= ---- 切比雪夫距离

6.1. 不足之处

闵氏距离与它们所代表的距离度量具有相同的缺点,因此对曼哈顿、欧几里得和切比雪夫距离等度量的充分理解非常重要。此外,参数p实际上可能很难使用,因为根据你的用例,找到正确的值可能在计算上效率很低。

6.2. 用例

p 的好处是可以迭代它并找到最适合你的用例的距离度量,它为你的距离度量提供了极大的灵活性,如果你非常熟悉p和许多距离度量,这将是一个巨大的好处。

7. Jaccard 距离

工程计算和数据科学中常用的9种测量距离

Jaccard 指数(或 Intersection over Union)是一种用于计算样本集相似性和多样性的指标,它是交集的大小除以样本集的并集的大小。

在实践中,它是集合之间相似实体的总数除以实体的总数。例如:如果两个集合共有 1 个实体,总共有 5 个不同的实体,那么 Jaccard 指数将为 1/5 = 0.2。

要计算 Jaccard 距离,我们只需从 1 中减去 Jaccard 指数:

工程计算和数据科学中常用的9种测量距离

7.1. 不足之处

Jaccard 索引的一个主要缺点是它受数据大小的影响很大。大型数据集会对索引产生很大影响,因为它可以显着增加联合,同时保持交叉点相似。

7.2. 用例

Jaccard 索引通常用于使用二进制或二进制数据的应用程序中。当你有一个深度学习模型来预测图像的片段(例如:汽车)时,可以使用 Jaccard 指数来计算给定真实标签的预测片段的准确度。
类似地,它可以用于文本相似性分析来衡量文档之间有多少单词选择重叠。因此,它可用于比较模式集。

8. Haversine距离

工程计算和数据科学中常用的9种测量距离

Haversine距离是给定经度和纬度的球体上两点之间的距离。它与欧几里得距离非常相似,因为它计算两点之间的最短线。主要区别在于不可能有直线,因为这里的假设是两个点在一个球体上。

工程计算和数据科学中常用的9种测量距离

8.1. 不足之处

这种距离测量的一个缺点是假设点位于球体上。在实践中这种情况很少发生,例如地球不是完美的圆形,这在某些情况下可能会使计算变得困难。相反,看看文森特距离会很有趣,它假设一个椭球体。

8.2. 用例

显而易见,Haversine距离常用在导航计算中。例如:如果你刚好从其中一个国家飞往另外一个,你可以用它来计算两个国家之间的距离。注意的是:如果实际的距离不是很大的话,haversine就有点不太合适,因为曲度对于这种距离有很大的影响。

9. Dice距离

工程计算和数据科学中常用的9种测量距离

Dice指数和Jaccard指数非常相似,因为Dice也是用来衡量样本集合的相似度和差异度。虽然Dice和Jaccard很相似,但是Dice指数更加直观,因为它可以看作两个集合交集的百分比,因此它的计算值范围在0和1之间:

工程计算和数据科学中常用的9种测量距离

9.1. 不足之处

与 Jaccard 指数一样,它们都夸大了几乎没有或几乎没有基本真值正集的集合的重要性。因此,它可能会主导多组的平均得分。它对每个项目的权重与相关集的大小成反比,而不是平等对待它们。

9.2. 用例

Dice用例与 Jaccard 索引相似(如果不相同)。你会发现它通常用于图像分割任务或文本相似性分析。

我们一共总结了9种常用的距离计算测量方法,并且给出每种测量方法的不足之处和使用案例。在实际工程计算和科学计算领域,针对维度较小的数据集,我们使用较多的是欧氏距离,在维度较高的数据集中使用cos距离,对于每条数据尺度相同的数据中,使用汉明距离,曼哈顿距离特别适合网格类数据集计算,切比雪夫距离是计算最远的距离,闵氏距离是欧氏距离、曼哈顿距离和切比雪夫距离的泛化,集合操作常用Jaccard和Dice距离,以及带有经纬度信息的数据集常用haversine距离。

在实际的距离测量中,远远不止这9中测量距离,因此,我们只是对基础常用的测量距离进行总结,希望大家在此基础上,进一步学习研究。

上一篇:Java多线程之通俗易懂讲解CAS


下一篇:语义处理工具:语义版Jaccard相似度