【思维导图】机器学习中的几种常见距离与相似度计算
【全网最细致】机器学习距离与相似度计算
欧几里得距离
o如果我们将两个点分别记作(p1,p2,p3,p4…)和(q1,q2,q3,14,…),则欧几里得距离的计算公式为:
ofrom math import *
odef euclidean_distance(x, y):
return sqrt(sum(pow(a - b, 2) for a, b in zip(x, y)))
oprint(euclidean_distance([0, 3, 4, 5], [7, 6, 3, -1]))
o优化
可以看到,欧几里得距离得到的结果是一个非负数,最大值是正无穷大,但是通常情况下相似度结果的取值范围在 [-1, 1] 之间。可以对它求倒数将结果转化到 (0, 1]之间。
分母+1是为了避免遇到被0整除的错误。
标准化欧式距离
o标准化欧氏距离是针对简单欧氏距离的缺点(各维度分量的分布不一样)而作的一种改进方案。
o子主题
o如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)。
曼哈顿距离
o曼哈顿距离是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。
o上图中红线代表曼哈顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和橙色代表等价的曼哈顿距离。
汉明距离
o在误差检测与校正码的基础性论文
o是指两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。
o汉明距离有一个最为鲜明的特点就是它比较的两个字符串必须等长,否则距离不成立。
o它的核心原理就是如何通过字符替换(最初应用在通讯中实际上是二进制的0-1替换),能将一个字符串替换成另外一个字符串。维基百科给定了几个样例。
o“karolin” 和 “kathrin” 的汉明距离为(字符2 3 4替换)“karolin” 和 “kerstin” 的汉明距离为(字符1 3 4替换) 1011101 和 1001001 的汉明距离为(字符2 4替换)2173896 和 2233796 的汉明距离为(字符1 2 4替换)
赛切比雪夫距离
o子主题
兰氏距离
o兰氏距离(Lance and Williams distance)堪培拉距离(Canberra Distance),被认为是曼哈顿距离的加权版本。
o子主题
闵科夫斯基距离
o闵可夫斯基距离是欧氏空间中的一种测度,被看做是欧氏距离和曼哈顿距离的一种推广。
优化
闵科夫斯基距离
如果我们将两个点分别记作(p1,p2,p3,p4…)和(q1,q2,q3,14,…),则欧几里得距离的计算公式为:
上图中红线代表曼哈顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和橙色代表等价的曼哈顿距离。
在误差检测与校正码的基础性论文
子主题
曼哈顿距离是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。
子主题
标准化欧式距离
欧几里得距离
子主题
兰氏距离
曼哈顿距离
赛切比雪夫距离