提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、欧式距离
- 二、余弦距离
- 三、曼哈顿距离
- 四、切比雪夫距离
- 五、闵可夫斯基距离
- 六、汉明距离(编辑距离)
- 总结
前言
记录一下常用的距离公式
一、欧式距离
欧式距离最简单的理解就是两点间的直线距离了,就算是多维空间,也是一样的。
对于点A(x1,y1),B(x2,y2),A和B的欧式距离为:
d=√[(x1-x2)^2 + (y1-y2)^2]
二、余弦距离
余弦距离是求两个向量的夹角余弦值,在自然语言处理的句子相似度匹配经常使用。
对于向量A(x1,y1),B(x2,y2),A和B的余弦距离为:
d=(x1*x2+y1*y2)/[√(x1^2 + y1^2) * √(x2^2 + y2^2)]
三、曼哈顿距离
曼哈顿距离是街道距离,也是国际象棋的方格距离,以前见过求国际象棋的后,从某一点到另一点的最短距离,相当于坐标系方向的距离和。
对于坐标系上的点A(x1,y1),B(x2,y2),A和B的欧式距离为:
d=|x1-x2|+|y1-y2|
四、切比雪夫距离
这个。。。我没用过这个距离,不知道用在什么地方,单纯记下来而已。
对于点A(x1,y1),B(x2,y2),A和B的切比雪夫距离为:
d=max(|x1-x2|,|y1-y2|)
对于多维向量,A(a1,a2,…,an)和B(b1,b2,…,bn):
d=max(|ai-bi|) i=1...n
更专业的表达方式,可以去看专业的博客,我不懂,就不乱说了。
五、闵可夫斯基距离
对于点A(x1,y1),B(x2,y2),A和B的闵可夫斯基距离为:
d=[(x1-x2)^p + (y1-y2)^p ]^(1/p)
(1/p)这个是开p次方,应该能看懂吧。
当p=1时,闵可夫斯基距离等于曼哈顿距离
当p=2时,闵可夫斯基距离等于欧式距离
当p=无穷时,闵可夫斯基距离等于切比雪夫距离
所以,闵可夫斯基距离要来干嘛的。。。。。。见识少的我又写不了了。
(我写文章才发现,不能用双等于,会变黄色)
六、汉明距离(编辑距离)
这个嘛,毕业生的校招面试笔试,经常遇到。就是求字符串s1变成字符串s2的最少步骤,在自然语言处理中,也可以比较两个句子的相似程度。
从字符串s1变成s2可用的步骤:
1、插入一个字符
2、替换一个字符
3、删除一个字符
算法原理也很简单,把两个字符串编成二维数组a[size(s1),size(s2)],初始值为0;
a[i,j]=min(a[i-1][j],a[i][j-1],a[i-1][j-1])+(s1[i]=s2[j]?0:1)
总结
常用到的距离公式就几个,每个领域设计的距离公式可能都不同,我也没有见过太多,那些我根本用不到的就没有记录,更多的公式可以去看专业一点的文章,多维向量下的公式,我也没写,因为公式太难打了。。。。。想了解的可以多看看别人的文章。