各种距离(Distance)

本文深入探讨了距离度量的概念及其在不同场景下的应用,从基本的欧几里德距离出发,逐步介绍到明可夫斯基距离、曼哈顿距离以及切比雪夫距离等,旨在为读者提供全面的距离度量理论概述。

距离(Distance)用于衡量个体在空间上存在的远近,距离越远说明个体间的差异越大。

欧几里德距离(Euclidean Distance)

欧式距离是最常见的距离度量,衡量的是多维空间中各个点之间的绝对距离。公式如下:

明可夫斯基距离(Minkowski Distance)

明氏距离是欧式距离的推广,是对多个距离度量公式的概括性的表述。公式如下:


这里的p值是一个变量,当p=2的时候就得到了上面的欧式距离。

曼哈顿距离(Manhattan Distance)

曼哈顿距离来源于城市区块距离,是将多个维度上的距离进行求和后的结果,即当上面的明氏距离中p=1时得到的距离度量公式,如下:


切比雪夫距离(Chebyshev Distance)
切比雪夫距离就是当p趋向于无穷大时的明氏距离。


### 各种距离度量方法的应用场景 #### 曼哈顿距离(Manhattan Distance) 曼哈顿距离适用于描述两个点在网格上的路径长度,因此它常被用于城市规划、机器人导航等领域。例如,在国际象棋中,车的移动轨迹可以用曼哈顿距离来衡量[^1]。 ```python import numpy as np def manhattan_distance(x, y): return np.sum(np.abs(x - y)) ``` #### 欧氏距离(Euclidean Distance) 欧氏距离是最常用的距离度量之一,适合于连续型变量的空间分布研究。其典型应用场景包括图像处理中的像素点比较以及地理信息系统中的位置关系分析[^2]。 ```python from scipy.spatial import distance print(distance.euclidean([0, 0], [3, 4])) # 输出应为5.0 ``` #### 切比雪夫距离(Chebyshev Distance) 切比雪夫距离定义为两点各坐标数值差的最大值,这使得它非常适合用来模拟像国际象棋王那样能够沿任意方向直线行走的情况[^3]。 ```python def chebyshev_distance(x, y): return max(abs(a-b) for a,b in zip(x,y)) ``` #### 明科夫斯基距离(Minkowski Distance) 作为前两种距离的一个泛化版本,明科夫斯基距离允许我们通过调整参数p来改变具体的形式(p=1即为曼哈顿距离;p=2则变为欧氏距离)[^4]。 ```python print(distance.minkowski([0, 0], [3, 4], p=3)) ``` #### 马氏距离(Mahalanobis Distance) 当考虑多个维度的数据时,如果各个特征之间存在相关性,则应该选用马氏距离而非简单的欧式或其他形式的距离测量法。这是因为马氏距离会自动考虑到协方差矩阵的影响,从而消除单位尺度效应带来的偏差[^3]。 #### 夹角余弦(Cosine Similarity) 夹角余弦主要用于评估文档间的相似程度或者推荐系统的偏好匹配等方面。由于该指标仅关注向量的方向而不关心它们的实际大小,所以特别适合作为文本检索自然语言处理领域内的工具[^5]。 ```python from sklearn.metrics.pairwise import cosine_similarity A = [[1, 2]] B = [[-1, -2]] similarity_matrix = cosine_similarity(A,B) print(similarity_matrix) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值