常用的相似性度量方法

480 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

一、欧氏距离(Euclidean Distance)

(一)定义

欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。

(二)公式

1、两个n维向量(x11,x12,…,x1n)与(x21,x22,…,x2n)间的欧氏距离为:

image.png

2、表示成向量运算的形式为:

image.png

二、曼哈顿距离(Manhattan Distance)

(一)定义

想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为城市街区距离(City Block distance)。

(二)公式

1、二维平面两点(x1,y1)与(x2,y2)间的曼哈顿距离

image.png

2、两个n维向量(x11,x12,…,x1n)与(x21,x22,…,x2n)间的曼哈顿距离

image.png

三、切比雪夫距离 ( Chebyshev Distance )

(一)定义

国际象棋中,国王走一步能够移动到相邻的8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少步数总是max( | x2-x1 | , | y2-y1 | ) 步 。有一种类似的一种距离度量方法叫切比雪夫距离。

(二)公式

1、二维平面两点(x1,y1)与(x2,y2)间的切比雪夫距离

image.png

(2)两个n维向量(x11,x12,…,x1n)与 (x21,x22,…,x2n)间的切比雪夫距离

image.png

这个公式的另一种等价形式是

image.png

四、标准化欧氏距离 (Standardized Euclidean distance )

(一)定义

标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,好吧!那我先将各个分量都“标准化”到均值、方差相等吧。均值和方差标准化到多少呢?这里先复习点统计学知识吧,假设样本集X的均值(mean)为m,标准差(standard deviation)为s,那么X的“标准化变量”表示为:

而且标准化变量的数学期望为0,方差为1。因此样本集的标准化过程(standardization)用公式描述就是:

image.png

标准化后的值 =  ( 标准化前的值  - 分量的均值 ) /分量的标准差

(二)公式

经过简单的推导就可以得到两个n维向量(x11,x12,…,x1n)与(x21,x22,…,x2n)间的标准化欧氏距离的公式为:

image.png

如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)

五、马氏距离(Mahalanobis Distance)

(一)定义

有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:

image.png

而其中向量Xi与Xj之间的马氏距离定义为:

image.png

若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:

image.png

也就是欧氏距离了。 若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。

六、夹角余弦

(一)定义

几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。

(二)公式

1、在二维空间中向量(x1,y1)与向量(x2,y2)的夹角余弦公式:

image.png

(2) 两个n维样本点(x11,x12,…,x1n)和(x21,x22,…,x2n)的夹角余弦 类似的,对于两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度。

image.png

即:

image.png

夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。

七、汉明距离

(一)定义

两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。例如字符串“1111”与“1001”之间的汉明距离为2。

(二)应用

信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。