本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!
在曼哈顿的网格状街道上,出租车无法直线穿越高楼大厦,只能沿着街道直角转弯行驶------这种现实场景催生了一种独特的距离度量方式,如今已成为机器学习、数据分析和计算机科学中不可或缺的工具。
曼哈顿距离(Manhattan Distance),又称出租车距离 或城市街区距离 ,是指在规则网格中两点间沿坐标轴方向行走的最短路径长度 。其核心定义为:在n维空间中,两点间的曼哈顿距离是它们各坐标数值差绝对值的总和。
作为闵可夫斯基距离(Minkowski Distance) 家族中p=1的特例,曼哈顿距离与常见的欧氏距离(直线距离) 形成鲜明对比,为我们提供了另一种衡量数据点相似性或差异性的视角。
🔍 基本概念与数学定义
曼哈顿距离的命名来源于纽约曼哈顿网格状街道布局的现实场景。在这个区域,车辆只能沿着垂直或水平的街道行驶,无法直接斜穿建筑区块。
数学表达式 如下:
对于二维空间中的两点A(x₁, y₁)和B(x₂, y₂),曼哈顿距离为:
d(A,B) = | x₁ - x₂ | + | y₁ - y₂ |
对于n维空间中的两点P(p₁, p₂, ..., pₙ)和Q(q₁, q₂, ..., qₙ),曼哈顿距离的一般形式为:
d(P,Q) = Σ | pᵢ - qᵢ | (i=1到n)
曼哈顿距离满足距离度量的四个基本性质:
- 非负性:d(i,j) ≥ 0
- 同一性:d(i,i) = 0
- 对称性:d(i,j) = d(j,i)
- 三角不等式:d(i,j) ≤ d(i,k) + d(k,j)
本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!
往期文章推荐:
- 20.正态分布:机器学习中的统计基石与高斯遗产
- 19.Sigmoid函数:从生物生长曲线到神经网络激活的桥梁
- 18.Softmax函数:深度学习中的多类分类基石与进化之路
- 17.ROUGE-SU4:文本摘要评估的跳连智慧
- 16.概率单位回归(Probit Regression)详解
- 15.TAC-2010数据集:知识库填充的里程碑
- 14.DUC-2004数据集:文档摘要研究的里程碑
- 13.Probit变换:从概率到正态分位数的桥梁
- 12.Logit变换:从概率到对数几率的桥梁
- 11.序贯检验:动态决策的统计理论与应用实践
- 10.多臂老虎机问题:基础理论、算法与应用全解析
- 9.统计显著性:从基础概念到现代应用实践
- 8.贝塔二项分布:理论、应用与实践
- 7.ICA(独立成分分析):从混合信号中分离真相的艺术
- 6.GAE(广义优势估计):强化学习中的优势估计艺术
- 5.香农熵:信息不确定性的度量与机器学习应用
- 4.对称二叉树:机器学习中的结构对称性与算法应用
- 3.Box-Cox变换:机器学习中的正态分布"整形师"
- 2.Cox回归模型:生存分析中的时间探索者
- 1.平衡二叉树:机器学习中高效数据组织的基石
📜 历史起源与命名由来
曼哈顿距离的概念最早可追溯到19世纪赫尔曼·闵可夫斯基 的研究工作,他创立了这种几何度量空间中的概念。然而,"曼哈顿距离"这一具体名称的起源则与20世纪60年代的计算机科学研究密切相关。
根据历史研究,术语"曼哈顿距离"最早出现在1962年的计算机科学文献 中。Harvey L. Garner和Jon S. Squire在论文《迭代电路计算机》("Iterative Circuit Computers")中使用了这一术语,且未作特别解释 ,表明当时它已经是该领域的常用概念。
同年,Rodolfo Gonzales和Sandra Palais在《迭代电路计算机的路径构建程序》("A Path-Building Procedure for Iterative Circuit Computers")中明确定义了这一概念:
"这种测量距离的方法被称为'曼哈顿距离'。"
这一名称的直观性使其迅速传播开来------正如在曼哈顿的街道网格中,两点间的最短路径是沿垂直和水平方向移动的距离总和,而不是直线距离。
🔄 曼哈顿距离与欧氏距离的比较
曼哈顿距离和欧氏距离是两种最常用的距离度量方法,它们在数学特性和应用场景上有显著差异。
| 特性 | 曼哈顿距离(L1距离) | 欧氏距离(L2距离) |
|---|---|---|
| 数学定义 | 坐标差绝对值的和 | 坐标差平方和的平方根 |
| 几何意义 | 网格路径长度 | 直线距离 |
| 计算复杂度 | 低(仅加减法和绝对值) | 较高(需要平方和开方) |
| 对异常值的敏感性 | 较低 | 较高 |
| 适用场景 | 网格状路径、特征独立 | 连续空间、物理距离 |
如图所示,红色、蓝色和黄色线 表示的曼哈顿距离长度相同(均为12个单位),而绿色线表示的欧氏距离则短得多(约为8.48个单位)。这种差异直观展示了两种距离度量的本质区别。
在机器学习中,这种差异直接影响算法性能。例如,在K-最近邻(K-NN) 和K-均值聚类 算法中,选择不同的距离度量可能导致完全不同的结果。
💻 Python实现与示例
下面通过Python示例展示曼哈顿距离的计算方法及其实际应用。我们将使用NumPy和SciPy这两个数据科学领域最常用的库。
基础计算方法
python
import numpy as np
from scipy.spatial.distance import cityblock
# 定义两个二维点
point_a = np.array([2, 3])
point_b = np.array([5, 7])
# 方法1:手动计算曼哈顿距离
def manhattan_distance_manual(p1, p2):
return np.sum(np.abs(p1 - p2))
# 方法2:使用SciPy的cityblock函数(专门计算曼哈顿距离)
manhattan_dist_scipy = cityblock(point_a, point_b)
print(f"点A: {point_a}, 点B: {point_b}")
print(f"手动计算曼哈顿距离: {manhattan_distance_manual(point_a, point_b)}")
print(f"SciPy计算曼哈顿距离: {manhattan_dist_scipy}")
🧠 在机器学习与数据科学中的应用
1. 特征选择与数据预处理
曼哈顿距离在高维数据分析 中表现优异,特别是当特征之间存在独立性假设 时。与欧氏距离相比,它对异常值不那么敏感,这在现实数据集中尤为重要。
2. 聚类分析
在K-均值聚类 等算法中,曼哈顿距离可以帮助发现网格状或轴对齐的簇结构 。当数据在特征空间中沿坐标轴方向分布时,使用曼哈顿距离通常能获得更合理的聚类结果。
3. 推荐系统
基于协同过滤 的推荐系统中,曼哈顿距离可用于衡量用户偏好向量之间的相似性。当评价维度(如电影评分)相对独立时,这种距离度量特别有效。
4. 图像处理与计算机视觉
在早期计算机图形学 中,屏幕像素坐标均为整数,曼哈顿距离只需整数加减运算,避免了浮点运算的开销和误差,显著提高了处理速度。
5. 自然语言处理
在文本分类 和文档相似度计算 中,当使用词袋模型表示文本时,曼哈顿距离可以作为文档向量之间的一种差异度量方式。
💡 实践建议与选择指南
在实际项目中选择距离度量时,考虑以下因素:
-
数据特性:如果数据在网格状结构中或特征相对独立,曼哈顿距离可能是更好的选择。
-
计算效率:对于需要高效计算的大规模数据集,曼哈顿距离的计算优势明显。
-
异常值处理:如果数据包含异常值且不希望它们对距离计算产生过大影响,曼哈顿距离比欧氏距离更合适。
-
问题领域 :在棋盘游戏(如国际象棋中车的移动)、城市导航等具有网格约束的领域,曼哈顿距离具有天然优势。
-
算法需求 :某些算法(如LASSO回归)本质上基于L1范式,与曼哈顿距离有深刻的数学联系。
总结
曼哈顿距离作为一种直观而强大的距离度量工具,从曼哈顿的街道网格出发,已发展成为机器学习和数据科学中的重要基石 。其计算简单性、对异常值的鲁棒性以及在网格状结构中的天然适用性,使其在许多应用场景中成为比欧氏距离更合适的选择。
随着数据科学领域的不断发展,曼哈顿距离及其变体将继续在新的应用场景中发挥重要作用,特别是在高维数据 、稀疏特征 和计算受限环境 中。理解这一基本概念及其与欧氏距离的根本区别,是每位数据科学家和机器学习实践者的必备知识。
本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!