距离与相似度度量

来源:互联网 发布:新东方多媒体数据库 编辑:程序博客网 时间:2024/06/05 15:17

距离与相似度度量


在机器学习过程中,经常要用到各种距离或者相似度度量公式来处理各种信号的数据,比如在基于Wi-Fi指纹的室内定位过程中,计算实时Wi-Fi数据和指纹库中各个Wi-Fi指纹的相似程度,假设 X=(x1,x2,...,xn)Y=(y1,y2,...,yn)n 维空间中的两个向量,下面我们就分别详细说明一些典型的距离和相似度的定义和计算公式。

1. 曼哈顿距离(Manhattan Distance)

曼哈顿距离的正式意义为L1度量,也就是在欧式空间中的两点所形成的线段对轴产生的投影的距离总和,向量 XY 的曼哈度距离公式为:

dist(X,Y)=i=1n|xiyi|

2. 欧氏距离(Euclidean Distance)

欧氏距离是最常用的距离计算方式之一,它源自于欧氏空间中两点间的距离公式,向量 XY 的欧氏距离公式为:

dist(X,Y)=i=1n(xiyi)2

3. 切比雪夫距离(Chebyshev Distance)

切比雪夫距离或者$L_1$度量,定义为两个向量中各个维度坐标值差的最大值,对于向量 XY,其定义可用如下公式表示:

dist(X,Y)=limp(i=1n|xiyi|p)1p=max|xiyi|

4. 明氏距离(Minkowski Distance)

明氏距离准确的说是一组距离的定义,它是对于欧氏距离的推广,对于向量 XY,它们之间的明氏距离可定义为:

dist(X,Y)=(i=1n|xiyi|p)1p

- 其中 p 是一个变参数,根据参数的不同,明氏距离可以表示不同的距离。
- 当 p=1 时,明氏距离就是曼哈顿距离;
- 当 p=2 时,明氏距离就是欧氏距离;
- 当 p 时,明氏距离就是切比雪夫距离。

明氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离,存在着明显的缺点,简单说来就是将多维空间中各个维度的量纲(Scale)当作相同的值来看待,并且没有考虑各个维度上变量取值的分布情况,如期望和方差等。

5. 马氏距离(Mahalanobis Distance)

考虑到欧氏距离无法忽略各个维度的量纲差异,所以我们在使用欧氏距离之前一般需要对各个维度的数据进行标准化(Normalize),这进而衍生出了另外一个距离度量——马氏距离。
假设 XY 表示 n 维样本空间中的两个样本向量,协方差矩阵为 S,则两个样本向量的马氏距离定义为:

dist(X,Y)=(XY)TS1(XY)

若协方差矩阵为单位矩阵,也就是各个样本向量之间独立同分布,则马氏距离就变成了上述欧式距离的向量形式;若协方差矩阵是对角矩阵,马氏距离就变成了标准化欧式距离。

6. 其他距离

在几何中夹角余弦可以用来衡量 n 维空间中两个方向向量的差异,这被称为余弦相似度(Cosine Similarity),借用这一概念可以定义下面的公式来表征 XY 两个向量之间的距离:

dist(X,Y)=1XY|X||Y|

杰卡德距离(Jaccard Distance)用两个集合不同元素占所有元素的比例来衡量,对于两个不同的集合 AB,其杰卡德距离可用如下公式表示:

Jδ(A,B)=1J(A,B)=|AB||AB||AB|

两个字符串 S1S2 之间的汉明距离(Hamming Distance)定义为将其中一个变为另外一个所需要作的最小编辑次数,这里的编辑包括插入、删除和修改操作并且每次仅对一个字符产生影响。例如字符串”1111”和”1010”之间的汉明距离为2。

原创粉丝点击