matlab 计算汉明距_[机器学习]常用距离定义与计算

  • Post author:
  • Post category:其他


4ec9ab3fe07ce719549fd238ade4f027.png

本文首发于个人blog:http://booleflow.com/

说明

此处主要使用scipy中的距离计算模块,scipy.spatial.distance

源码在这里

https://github.com/scipy/scipy/blob/v0.17.1/scipy/spatial/distance.py#L606-L634

from scipy.spatial import distance

数值向量距离

布雷柯蒂斯相异度(Bray-Curtis distance)

Bray-Curtis 相异度(Bray-Curtis dissimilarity)是生态学中用来衡量不同样地物种组成差异的测度。由J. Roger Bray and John T. Curtis 提出。其计算基于样本中不同物种组成的数量特征(多度,盖度,重要值等)。计算公式为:

x = [1, 2, 0]
y = [0, 1, 0]
dis = distance.braycurtis(x, y)
print(dis)
0.5

坎贝拉距离(Canberra distance)

Canberra distance是用来衡量两个向量空间的居间,1966年被提出,1977年被G. N. Lance和 W. T. Williams重新提出。是Manhattan distance的加权版本,Canberra distance已被用作比较排名列表和计算机安全中的入侵检测的测量。

x = [1, 2, 0]
y = [0, 1, 0]
dis = distance.canberra(x, y)
print(dis)
1.3333333333333333

切比雪夫距离(Chebyshev distance)

切比雪夫距离(Chebyshev distance)是向量空间中的一种度量,二个点之间的距离定义是其各坐标数值差绝对值的最大值。以数学的观点来看,切比雪夫距离是由一致范数(uniform norm)(或称为上确界范数)所衍生的度量,也是超凸度量(injective metric space)的一种。计算公式为

下图是国际象棋棋盘上所有位置距f6位置的切比雪夫距离

4a67fdef8ce7df315161156d6b06dea2.png
切比雪夫距离
x = [5, 3, 9]
y = [0, 1, 6]
dis = distance.chebyshev(x, y)
print(dis)
5

曼哈顿距离(Manhattan/cityblock distance)

曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。曼哈顿距离的命名原因是从规划为方型建筑区块的城市(如曼哈顿)间,最短的行车路径而来(忽略曼哈顿的单向车道以及只存在于3、14大道的斜向车道)。任何往东三区块、往北六区块的的路径一定最少要走九区块,没有其他捷径。计算公式为:



版权声明:本文为weixin_39880621原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。