目录
1.欧式距离EuclideanDistance
欧式距离:也称欧几里得距离,在一个N维度的空间里,求两个点的距离,这个距离肯定是一个大于等于零的数字,那么这个距离需要用两个点在各自维度上的坐标相减,平方后加和再开方。
- (1)二维平面上两点a(x1,y1),b(x2,y2)之间的欧式距离公式:
- (2) n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的欧式距离公式:
2. 曼哈顿距离(ManhattanDistance)
曼哈顿距离也叫”曼哈顿街区距离”。想象你在曼哈顿街道上,从一个十字路口开车到另一个十字路口,驾驶距离就是这个“曼哈顿距离”。
- (1)二维平面上两点a(x1,y1),b(x2,y2)之间的曼哈顿距离公式:
- (2) n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的曼哈顿距离公式:
3. 夹角余弦
也叫余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。如果两个向量的方向一致,即夹角接近零,那么这两个向量就越相近。要确定两个向量方向是否一致,要用到余弦定理计算向量的夹角。
- (1)二维平面上两向量a(x1,y1),b(x2,y2)之间的夹角余弦公式:
也可直接通过向量运算:
- (2) n维空间上两点a(x1,x2……..xn),b(y1,y2……..yn)的夹角余弦公式:
4.汉明距离(Hamming Distance)
两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。
1011101与 1001001 之间的汉明距离是2
2143896与 2233796 之间的汉明距离是3
irie与 rise之间的汉明距离是 3
- 定义:两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。例如:
- 汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。因此,如果向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。
- 应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。
- Matlab计算汉明距离(Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比)