Advertisement

求两个点的欧氏距离_机器学习中的八大距离度量

阅读量:
ff91220c5c6da5a7972352a4dbcdd7c8.png

点击菜单栏“粉丝福利”

拿小度,兑手机!

作者: 张家豪 来源: 人工智能学习圈
45d64bcbc998a8a358c541fee7a6891b.png

机器学习中往往要考虑向量之间的距离,此时曼哈顿距离,欧式距离,马氏距离等等接踵而至,帮助机器学习模型处理各种各样不同种类的数据,帮助我们解决了大问题! 但凡是“距离”,就需要满足正定性,齐次性,三角不等式这3个性质。 下面我们来一个个看看那些距离都是什么吧~

1

曼哈顿距离(Manhattan Distance)
ba443096b53732730f70255680662d3b.png 在曼哈顿街区要从一个十字路口开车到另一个十字路口,直观上看,当然是绿线的距离最短,但在现实中显然是不成立的,因为我们不能穿过房屋。驾驶距离显然不是两点间的直线距离这些实际驾驶距离就是“曼哈顿距离”,也称为“街区距离”。 注:红蓝黄线皆为曼哈顿距离,绿线为欧式距离。 c9645935efbb27bfc9216a075f437fc0.png 150165480a91e71fbf7e51a822e15f45.png

2

欧式距离(Euclidean Distance)
4d9a5ce50c5b59f42ef4e1578126d528.png 欧氏距离是最容易直观理解的距离度量方法,我们最早接触到的两个点在空间中的距离一般都是指欧氏距离。欧式距离同样也是机器学习中使用最广泛的距离。 013a362e7b5e2d6c4282c3cf234fa04e.png 535d15faefc12db9025cd7b5db9263c6.png 标准化欧氏距离是针对欧氏距离的缺点而作的一种改进,但要求必须基于一个数据集的分布。 思路:既然数据各维分量的分布不一样, 那先将各个分量都“标准化”到均值、方差相等,即使得各个维度分别满足标准正态分布。假设样本集X的均值(mean)为m, 标准差(standard deviation)为s, X的“标准化变量”表示为: f7d8107edeff7a52d99d55b8f244823f.png 化简后的标准化欧氏距离公式: e8412e8dc8f9d5cf9ace507489c9a3f0.png

3

切比雪夫距离(Chebyshev Distance)
0f65e0ebb4500d5ee6499663265ad21f.png 切比雪夫距离来源于国际象棋,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从一个格子走到另一个格子最少需要多少步?这个距离就叫切比雪夫距离。 8ba5b0a045c5c591cd6874752ec58fc3.png 2c98893b540076fae22fa17e0e6e6c2d.png

4

闵可夫斯基距离(Minkowski Distance)
1a2bc5a5d94514893382e3af3191a4d0.png 闵氏距离不是一种距离, 而是一组距离的定义, 是对多个距离度量公式的概括性的表述。 6daabcd649e882f95cb319c7eb9cc779.png 其中p是一个变参数: 当p=1时, 就是曼哈顿距离; 当p=2时, 就是欧氏距离; 当p→∞时, 就是切比雪夫距离。 根据p的不同, 闵氏距离可以表示某一种的距离。 e883bdd0d80c89e04b140b14f54b3834.png

5

余弦距离
e404eba598a3ca4fc57584341c7b7680.png

简单来说,余弦相似度,就是计算两个向量间的夹角的余弦值,取值范围[-1,1]。 c3ef1783cfd7599b886ff2277026d3e4.png 余弦距离就是用1减去这个获得的余弦相似度。 2b6c11e5ed454bdfd9b8170d90198ed6.png 由上面的余弦距离可以知道,余弦距离的取值范围为[0,2] ,这就满足了非负性的性质。 Python实现: 2776b9fbdc6169eff08f2814b39447e0.png

6

马氏距离

下图有两个正态分布的总体,它们的均值分别为a和b,但方差不一样,则图中的A点离哪个总体更近? 或者说A有更大的概率属于谁? 显然, A离左边的更近, A属于左边总体的概率更大, 尽管A与a的欧式距离远一些。 这就是马氏距离的直观解释。 4dee83b3a57eb83baa34384c97d259fc.png 马氏距离是基于样本分布的一种距离。 物理意义就是在规范化的主成分空间中的欧氏距离。所谓规范化的主成分空间就是利用主成分分析对一些数据进行主成分分解。再对所有主成分分解轴做归一化, 形成新的坐标轴。由这些坐标轴张成的空间就是规范化的主成分空间。 定义:有M个样本向量X1与Xm, 协方差矩阵记为S, 均值记为向量μ, 则其中样本向量X到μ的马氏距离表示为: bf8866a0aaa936304bdcfbab4a95eff6.png 向量Xi与Xj之间的马氏距离定义为: 351c895cb074d0704dc2f4b8fe70de3c.png 若协方差矩阵是单位矩阵(各个样本向量之间独立同分布) , 则Xi与Xj之间的马氏距离等于他们的欧氏距离(若协方差矩阵是对角矩阵, 则就是标准化欧氏距离) : 6e9e278f9c5631e2461a79dac3581007.png 261f869fde526767a5051319b420b4c2.png 若协方差矩阵是单位阵,那么右图马氏空间的样本分布就会简化为左图欧式空间的样本分布。

7

汉明距离

汉明距离一般是针对字符串,两个字符串s1与s2的汉明距离为: 将其中一个变为另外一个所需要作的最小字符替换次数。 0d7f15d1977908db91d43006eb0c39b6.png 汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是1的个数,所以11101的汉明重量是4。因此,如果向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。 下面是求两个整数的二进制字符串的汉明距离的代码实现: a3640b221e8d7aa19f3b66d47d32b216.png 应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。

8

编辑距离

编辑距离也针对于字符串,两个字符串 word1 和 word2,将 word1 转换成 word2 所使用的最少操作数 ,即为两个字符串的编辑距离。 你可以对一个单词进行如下三种操作: a.插入一个字符 b.删除一个字符 c.替换一个字符 举个例子:
输入:word1 = "horse", word2 = "ros"
输出:3
解释:
horse -> rorse (将 'h' 替换为 'r')
rorse -> rose (删除 'r')
rose -> ros (删除 'e') 1ab8b8aa7bf540a1a3022ec2b0f311c3.png 以下代码为动态规划实现编辑距离: feab2535772f6e3643bb474fba221ef1.png 这些是机器学习中常用的距离度量,还是很有必要掌握的。当然除此之外,还有流型距离等更复杂的距离,限于篇幅问题,就先不介绍啦。 37a551f579929b9b6e414a224d091cdf.png

原文链接: https://zhuanlan.zhihu.com/p/139511848
5a5793527203fa4d0795d2fd9b59a9cc.png 859dd1f869bbd03f3688c1a696b5bae6.png 2a5438cf08da0944f16f5f31175700ae.png 85242d444cbc5b0337a9c33f76fb66ea.png af23b9e0884330a34df27a5037c30b3f.png c33e192aa780e216984bb9b4e4ade44a.png 7a241224e9a20f4e080be02fde9ec804.png

全部评论 (0)

还没有任何评论哟~