闵可斯基距离(Minkowski distance)是一种用于衡量向量空间中两点之间距离的方法。它是曼哈顿距离和欧几里得距离的一般化形式。闵可斯基距离使用一个参数 p 来调整计算方法,其中 p 是一个大于 0 的实数值。
在二维空间中,闵可斯基距离可以表示为:
d(x, y) = (|x1 - y1|^p + |x2 - y2|^p)^(1/p)
其中 x = (x1, x2) 和 y = (y1, y2) 是两个点的坐标。
当 p = 1 时,闵可斯基距离即为曼哈顿距离。当 p = 2 时,闵可斯基距离即为欧几里得距离。根据 p 的取值,闵可斯基距离可以具有不同的性质。当 p 的值越大,距离的计算更加关注各个坐标轴上的差异。
闵可斯基距离具有以下性质:
- 当 p 趋近于无穷大时,闵可斯基距离趋近于切比雪夫距离。
- 当 p 取值为负无穷时,闵可斯基距离表示的是两点中的最大差值。
- 当 p 取值为负数但不是负无穷时,闵可斯基距离的计算结果不满足距离的所有定义,但仍可作为一种相似性度量。
闵可斯基距离广泛用于数据挖掘、模式识别和机器学习领域,特别是在聚类算法、分类算法以及特征选择等任务中。根据具体应用场景和需求,选择合适的 p 值对于距离的计算和数据分析具有重要意义。
距离公式:
编写代码:
编写闵可夫斯基距离代码
##### 在此处编写或补全代码
p=float("inf")
def MinkowskiDistance(x, y, p):
return np.sum(np.abs(x-y)**p)**(1/p)
计算
x= np.array((2,3))
y= np.array((10,5))
##### 在此处编写或补全代码
dist5=np.sum(np.abs(x-y)**p)**(1/p)
print(f"d5={dist5}\n")
计算结果: