【概述】
在数据挖掘中,经常需要计算样本之间的相似度,通常做法是计算样本之间的距离。
比如判断 A、B、C 三种商品之间的相似性,可以先按照商品特征构建 A、B、C 各自的向量,然后求向量间的距离,距离近就表示彼此相似度高。
【曼哈顿距离】
曼哈顿距离又称马氏距离(Manhattan distance),想象在曼哈顿街道上,从一个十字路口开车到另一个十字路口,驾驶距离就
是这个“曼哈顿距离”。
两个 n 维向量 与
间的曼哈顿距离为:
特点:曼哈顿距离在某些情况下具有更高的稳定性,但是如果数据集中某些特征值很大,用曼哈顿距离的话,这些特征会
掩盖其他特征间的邻近关系。
【欧式距离】
欧氏距离(Euclidean Distance)是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。
两个 n 维向量 与
间的欧氏距离为:
特点:欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异。
但当数据集有很多特征,但是任意一对个体之间的欧氏距离都相等,那么就无法通过欧氏距离进行比较。
【余弦距离】
机器学习中可以把两点看成是空间中的两个向量,余弦距离是通过两向量夹角的余弦值作为衡量两样本之间差异大小。相比欧氏距离,余弦距离更加注重两个向量在方向上的差异。
从下图可以看出,如果保持A点位置不变,B点朝原方向远离坐标轴原点,那么这个时候由于夹角没有变化,因此余弦距离是保持不变的,而A、B两点的距离显然在发生改变。故而欧氏距离衡量的是空间各点的绝对距离,跟各个点所在的位置坐标直接相关;而余弦距离衡量的是空间向量的夹角,更加体现在方向上的差异。
两个 n 维向量 与
间的余弦距离为:
特点:余弦距离更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分兴趣的相似度和差异,而且由于余弦距离对绝对数值不敏感,因此同时修正了用户间可能存在的度量标准不统一的问题。适用于特征向量很多的情况,但是丢弃了向量长度所包含的在某些场景下可能会很有用的一些信息。
【切比雪夫距离】
数学上,切比雪夫距离(Chebyshev distance)是向量空间中的一种度量,二个点之间的距离定义为其各坐标数值差的最大值。
例如:国际象棋中,国王从格子 (x1,y1) 走到格子 (x2,y2) 最少需要的步数就是切比雪夫距离,最少步数总是 步。
两个 n 维向量 与
间的切比雪夫距离为:
【汉明距离】
汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。
例如:
- 1011101与 1001001 之间的汉明距离是2
- 2143896与 2233796 之间的汉明距离是3
- irie与 rise之间的汉明距离是 3