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

本文介绍了如何使用scipy库计算数值和布尔向量间的多种距离,包括汉明距离、布雷柯蒂斯相异度、坎贝拉距离、切比雪夫距离、曼哈顿距离等。这些距离在机器学习和数据比较中有广泛应用。
摘要由CSDN通过智能技术生成

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大道的斜向车道)。任何往东三区块、往北六区块的的路径一定最少要走九区块,没有其他捷径。计算公式为:

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值