#### 目录
- 欧氏距离
- 标准化欧氏距离
- 马氏距离
- 夹角余弦距离
- 汉明距离
- 曼哈顿(Manhattan)距离
欧式距离源自N维欧氏空间中两点 x1,x2 间的距离公式:
引入标准化欧式距离的原因是一个数据 xi 的各个维度之间的尺度不一样。
【对于尺度无关的解释】如果向量中第一维元素的数量级是100,第二维的数量级是10,比如v1=(100,10,30),v2 = (500,40),则计算欧式距离
标准化欧式距离即是将集合 X={ xi} 先进行归一化,映射到正太分布N(0,1)的区间:
xipost=(xi−u)/s
其中u为均值, s2 为方差。
其实,这就是马氏距离要做的事。马氏距离的结果也是将数据投影到N(0,1)区间并求其欧式距离。
马氏距离又称为数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与标准化欧氏距离不同的是它考虑到各种特性之间的联系。
假设 ux 为向量 X={ x1,x2,...,xN} 的均值, uy 为 Y={ y1,y2,...yN} 的均值, Σ 是协方差矩阵,则x的马氏距离:
其中 Σ 是X与Y的协方差矩阵
可见:
如果 Σ 是单位矩阵,则马氏距离退化成欧式距离;
如果 Σ 是对角矩阵,则称为归一化后的欧式距离。
首先抛出马氏距离的特点:
马氏距离可以通过协方差自动生成相应的权重,而使用逆则抵消掉这些权重。
最典型的就是根据距离作判别问题,即假设有n个总体,计算某个样品X归属于哪一类的问题。此时虽然样品X离某个总体的欧氏距离最近,但是未必归属它,比如该总体的方差很小,说明需要非常近才能归为该类。对于这种情况,马氏距离比欧氏距离更适合作判别。比如下图表示男女两类身高和体重的采样数据,假如男和女先验分布已知,可以用马氏距离判别新的数据。
严格来讲余弦距离不是距离,而只是相似性。其他距离直接测量两个高维空间上的点的距离,如果距离为0则两个点“相同”,但余弦的结果为1,只能确定两者高度相似。
从几何上看,n维向量空间的一条线段作为底边和原点组成的三角形,其顶角大小是不确定的。对于两条空间向量,即使两点距离一定,他们的夹角余弦值也可以随意变化。
假设两用户只对两件商品评分,向量分别为(3,3)和(5,5),这两位用户的认知其实是一样的,但是欧式距离给出的解显然没有余弦值合理。
相对于标准化后的欧式距离,余弦距离少了将数据投影到一个均值为0的区间里这一步骤。对于点X和点Y,其余弦距离:
优点:余弦距离根据向量方向重合度来判断向量相似度,不受样本
缺点:没有对每个维度进行0均值化处理,如在图片分类中一张图片受光照影响后,前后的余弦距离可能就非常大了。
汉明距离是两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。比如:
1011101 与 1001001 为 2
2143896 与 2233796 是 3
可以把它看做将一个字符串变换成另外一个字符串所需要替换的字符个数。
此外,汉明重量是字符串相对于同样长度的零字符串的汉明距离,如:
11101 的汉明重量是 4。
所以两者间的汉明距离等于它们汉明重量的差a-b
曼哈顿距离的定义如下:
先将 Σ 进行SVD分解(由于协方差矩阵是对称矩阵,因此此处严格说来是特征值分解EVD)。
由于协方差矩阵是对称的,
[1]马氏距离及其几何解释
http://www.weixinnu.com/tag/article/1082683923
[2]欧氏距离和余弦相似度的区别是什么?
https://www.zhihu.com/question/19640394