机器学习中的觉的距离和相似度
对于距离来说,在机器学习中用的最多的就是聚类算法Clustering,Clustering以各种距离为根据判断两条数据是否为同一类。
1. 欧几里得距离
我们从最常见的距离测量开始,即欧几里得距离。这是一种距离测量,最好的解释是连接两点的线段的长度。
这个公式相当简单,因为距离是利用毕达哥拉斯定理从平面坐标两点的计算出来的。
1.1. 缺点
尽管它是一种常见的距离测量方法,但欧氏距离不是尺度内变异的,这意味着计算出的距离可能是倾斜的,这取决于特征的单位。通常情况下,在使用这种距离测量方法之前,人们需要将数据标准化。
此外,随着数据维度的增加,欧氏距离的作用就越小。这与 "维度诅咒 "有关,即高维空间的作用并不像我们直观地从二维或三维空间期望的那样。关于一个很好的总结,见这个帖子。
1.2. 使用案例
当你有低维数据并且测量矢量的大小是很重要的情况,欧氏距离就很好用。如果在低维数据上使用欧氏距离,KNN 和 HDBSCAN 等方法就会显示出很好的结果。
尽管已经开发了许多其他的测量方法来说明欧氏距离的缺点,但它仍然是最常用的距离测量方法之一,原因很充分。它使用起来非常直观,实现起来也很简单,而且在许多使用案例中展现出很好的效果。
2. 余弦相似性
余弦相似性经常被用来抵消欧氏距离的高维问题。余弦相似性只是两个向量之间的角度的余弦。如果这两个向量被归一化为长度为1,它也有相同的内积。
两个方向完全相同的向量的余弦相似度为1,而两个截然相反的向量的相似度为-1。注意,它们的大小并不重要,因为这是一个方向的测量。
2.1. 缺点
余弦相似性的一个主要缺点是不考虑向量的大小,只考虑其方向。在实践中,这意味着数值的差异没有被充分考虑。以推荐系统为例,余弦相似性没有考虑到不同用户之间的评分标准的差异。
2.2. 使用案例
当我们有高维数据并且向量的大小不重要时,我们经常使用余弦相似性。对于文本分析来说,当数据是由字数表示的时候,这种测量方法是很经常使用的。例如,当一个词在一个文件中比另一个文件出现得更频繁时,这并不一定意味着一个文件与这个词更相关。可能是文件的长度不均匀,计数的大小就不那么重要了。那么,我们最好使用余弦相似度,它不需要考虑大小。
3. Hamming距离
Hamming距离是两个向量之间不同的值的数量。它通常用于比较两个等长的二进制字符串。它也可用于字符串,通过计算彼此不同的字符数来比较它们之间的相似程度。
3.1. 缺点
显然,当两个向量的长度不相等时,Hamming距离很难使用。你会想把相同长度的向量相互比较,以了解哪些位置不匹配。
此外,只要它们不同或相等,它就不考虑实际值。因此,当幅度是一个重要的衡量标准时,不建议使用这种距离衡量标准。
3.2. 使用案例
典型的用例包括当数据通过计算机网络传输时的错误纠正/检测。它可以用来确定二进制字中失真的比特数,作为估计错误的一种方法。
此外,你也可以用Hamming距离来测量分类变量之间的距离。
4. 曼哈顿距离
曼哈顿距离,通常称为出租车距离或城市街区距离,计算实值向量之间的距离。想象一下,向量描述的是统一网格上的物体,如棋盘。那么,曼哈顿距离是指两个向量之间的距离,如果它们只能直角移动的话。在计算距离时,不涉及对角线运动。
4.1. 缺点
尽管曼哈顿距离对于高维数据来说似乎还不错,但它是一个不如欧氏距离那么直观的度量,尤其是在高维数据中使用时。
此外,它更有可能给出一个比欧氏距离更高的距离值,因为它不可能是最短的路径。这不一定会产生问题,但你应该考虑到这一点。
4.2. 使用案例
当你的数据集有离散和/或二进制属性时,曼哈顿似乎很好用,因为它考虑到了在这些属性值中实际可能采取的路径。以欧氏距离为例,它可以在两个向量之间建立一条直线,而在现实中这可能并不可行。
5. 切比雪夫距离
切比雪夫距离被定义为两个向量之间沿任何坐标维度的最大差异。换句话说,它只是沿一个轴的最大距离。由于其性质,它经常被称为国际象棋棋盘距离,因为国王从一格到另一格所需的最小移动次数等于切比雪夫距离。
5.1. 缺点
Chebyshev通常用于非常特殊的使用场合,这使得它很难像欧氏距离或余弦相似度那样被用作多用途的距离度量。出于这个原因,我们建议只有在你绝对确定它适合你的使用情况时才使用它。
5.2. 使用案例
如前所述,切比雪夫距离可以用来提取从一个方格到另一个方格所需的最小移动数。此外,在允许不受限制的8路移动的游戏中,它也是一个有用的措施。
在实践中,切比雪夫距离经常被用于仓库物流,因为它与起重机需要移动一个物体所需的时间非常相似。
6. 闵科夫斯基
闵可夫斯基距离是一个比大多数人更复杂的度量。它是一个用于规范化矢量空间(n维实空间)的度量,这意味着它可以用于距离也可以表示为有长度的矢量的空间。
这个度量有三个要求:
- 零向量- 零向量的长度为零,而其他每个向量的长度都为正数。例如,如果我们从一个地方到另一个地方,那么这个距离总是正的。然而,如果我们从一个地方到它自己,那么这个距离就是零。
- 标量因子 - 当你用一个正数乘以向量时,它的长度会改变,同时保持其方向。例如,如果我们从一个方向走了一定的距离,再加上同样的距离,方向不会改变。
- 三角形不等式 - 两点之间最短的距离是一条直线。
闵可夫斯基距离的公式如下。
关于这个距离度量,最有趣的是使用了参数p。我们可以使用这个参数来控制距离度量,使其与其他的距离度量相近。
p的常见值是:
- p=1 - 曼哈顿距离
- p=2 - 欧几里得距离
- p=∞- 切比雪夫距离
6.1. 缺点
Minkowski的缺点与它们所代表的距离度量相同,所以对Manhattan、Euclidean和Chebyshev距离等度量的深刻理解极为重要。
此外,参数p的使用实际上是很麻烦的,因为根据你的使用情况,很难找到正确的值。
6.2. 使用案例
p的好处是可以对它进行迭代,找到最适合你的使用情况的距离测量。这样距离度量就有很大的灵活性,如果你对p和许多距离度量非常熟悉,这将是一个得天独厚的优势。
7. 雅卡德指数
雅卡德指数(或交集大于联盟)是一个用于计算样本集的相似性和多样性的指标。它是交叉点的大小除以样本集的联合点的大小。
在实践中,它是集合之间相似实体的总数除以实体的总数。例如,如果两个集合有1个共同的实体,总共有5个不同的实体,那么Jaccard指数就是1/5=0.2。
为了计算贾卡德距离,我们只需从1中减去贾卡德指数。
7.1. 缺点
Jaccard指数的一个主要缺点是,它受数据大小的影响很大。大的数据集会对该指数产生很大的影响,因为它可以在保持相交点相似的情况下大大增加联合点。
7.2. 使用案例
雅卡德指数经常被用于使用二进制或二进制数据的应用中。当你有一个深度学习模型来预测一个图像的片段,例如一辆汽车,那么雅卡德指数就可以用来计算给定真实标签的预测片段的准确性。
同样,它可以用于文本相似性分析,以衡量文档之间有多少词汇选择重叠。因此,它可以用来比较模式的集合。
8. 哈维辛
Haversine距离是指球体上两点之间的距离,给定其经度和纬度。它与欧几里得距离非常相似,都是计算两点之间最短的直线。主要的区别是,不可能是直线,因为这里的假设是两点都在一个球体上。
8.1. 缺点
这种距离测量法的一个缺点是,它假定各点位于一个球体上。在实践中,这种情况很少发生,例如,地球并不是完全圆形的,这可能使某些情况下的计算变得困难。相反,我们可以把目光投向假设为椭圆体的Vincenty distance,这将是一个合适的做法。
8.2. 使用案例
正如你可能已经预料到的那样,哈维辛距离经常被用于导航中。例如,你可以用它来计算在两个国家之间飞行时的距离。请注意,如果距离本身已经不是那么大,它就不太适合了。曲率不会有那么大的影响。
9. 索伦森-戴斯指数
索伦森-戴斯指数与贾卡德指数非常相似,它衡量样本集的相似性和多样性。尽管它们的计算方法相似,但索伦森-戴斯指数更直观一些,因为它可以被看作是两个集合之间的重叠百分比,它是一个介于0和1之间的值。
9.1. 缺点
和Jaccard指数一样,它们都夸大了几乎没有基础真相的正数集的重要性。因此,它可能会过于看重多个集合的平均得分。它对每个项目的权重与相关集合的大小成反比,而不是平等处理。
9.2. 用例
使用情况与Jaccard指数相似,甚至相同。你会发现它通常用于图像分割任务或文本相似性分析。
10.皮尔森相关系数
皮尔森相关系数 (Pearson Correlation Coefficient):用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。
分子是两个集合的交集大小,分母是两个集合大小的几何平均值。是余弦相似性的一种形式。
皮尔逊相关系数具有平移不变性和尺度不变性,计算出了两个向量(维度)的相关性。在各个领域都应用广泛,例如,在推荐系统根据为某一用户查找喜好相似的用户,进而提供推荐,优点是可以不受每个用户评分标准不同和观看影片数量不一样的影响。
11.KL散度
KL散度 (Kullback-Leibler Divergence):即相对熵;是衡量两个分布 (P, Q) 之间的距离;越小越相似。
表示的就是概率 q 与概率 p 之间的差异,很显然,散度越小,说明概率 q 与概率 p 之间越接近,那么估计的概率分布于真实的概率分布也就越接近。
12. Mahalanobis
考虑特征相关性和方差的距离,通过协方差矩阵标准化。对各向同性数据退化为欧氏距离,对高度相关/量纲差异大的数据更鲁棒,常用于异常检测和分类。
13. Canberra
各分量绝对差除以各分量绝对值之和再求和,对接近 0 的值极度敏感(分母小)。常用于非负数据如人口统计、文本 TF-IDF 向量。
14. Braycurtis
两向量差绝对值之和比上两向量绝对值之和(值域 0-1),对称且符合三角不等式。常用于生态学物种丰度比较和化学指纹相似度。
参考文献
机器学习中常用的9种距离 - 知乎
常见的距离算法和相似度计算方法
