机器学习中的三大距离度量:欧式距离、曼哈顿距离、切比雪夫距离详解

【个人主页:玄同765

大语言模型(LLM)开发工程师中国传媒大学·数字媒体技术(智能交互与游戏设计)

**深耕领域:**大语言模型开发 / RAG知识库 / AI Agent落地 / 模型微调

**技术栈:**Python / LangChain/RAG(Dify+Redis+Milvus)| SQL/NumPy | FastAPI+Docker ️

**工程能力:**专注模型工程化部署、知识库构建与优化,擅长全流程解决方案

「让AI交互更智能,让技术落地更高效」

欢迎技术探讨/项目合作! 关注我,解锁大模型与智能交互的无限可能!

摘要

在机器学习、数据挖掘和计算机视觉中,距离度量是一个核心概念 ------ 它用于衡量两个数据点之间的相似性或差异性,是聚类、分类、推荐系统等算法的基础。本文从数学定义、几何意义、适用场景、代码实现4 个维度,详细讲解欧式距离、曼哈顿距离、切比雪夫距离这三大常用距离度量,帮助开发者理解它们的本质差异,在实际项目中选择合适的距离度量方法。


一、距离度量的核心价值:为什么需要距离?

在机器学习中,距离度量的作用主要体现在 3 个方面:

  1. 相似性判断:距离越小,两个数据点越相似;距离越大,差异性越大;
  2. 聚类与分类:K-Means、DBSCAN 等聚类算法,SVM、KNN 等分类算法,都依赖距离度量来划分数据簇或判断类别;
  3. 特征工程:在降维(如 PCA)、特征选择中,距离度量用于评估特征的重要性;
  4. 推荐系统:基于用户行为数据的协同过滤,通过计算用户或物品之间的距离,实现个性化推荐。

二、欧式距离(Euclidean Distance):最直观的 "直线距离"

2.1 数学定义

欧式距离是最常用的距离度量,它表示 n 维空间中两个点之间的直线距离,公式为:

d(x,y)=∑i=1n​(xi​−yi​)2​

其中,x=(x1​,x2​,...,xn​)和y=(y1​,y2​,...,yn​)是 n 维空间中的两个点。

2.2 几何意义

在二维空间中,欧式距离就是两点之间的直线距离(勾股定理);在三维空间中,是两点之间的空间直线距离。

示例:二维空间中,点 A (1,2) 和点 B (4,6) 的欧式距离为:

d(A,B)=(4−1)2+(6−2)2​=9+16​=5

2.3 适用场景
  • 连续型数据:适合处理连续型特征(如身高、体重、房价等);
  • 低维数据:在低维空间中,欧式距离能准确反映数据点的相似性;
  • 计算机视觉:用于图像特征匹配、目标检测(如计算两个特征向量的距离)。
2.4 代码实现
复制代码
import numpy as np

def euclidean_distance(x, y):
    """
    计算欧式距离
    :param x: 第一个点的特征向量
    :param y: 第二个点的特征向量
    :return: 欧式距离
    """
    return np.sqrt(np.sum((x - y) ** 2))

# 示例
x = np.array([1, 2])
y = np.array([4, 6])
print(euclidean_distance(x, y))  # 输出:5.0
2.5 优缺点
  • 优点:直观易懂,计算简单,在低维空间中准确性高;
  • 缺点
    1. 对高维数据不友好:随着维度增加,欧式距离的区分度会下降("维度灾难");
    2. 对异常值敏感:异常值会显著影响距离计算结果;
    3. 未考虑特征权重:默认所有特征的权重相同,实际场景中可能需要加权处理。

三、曼哈顿距离(Manhattan Distance):"城市街区距离"

3.1 数学定义

曼哈顿距离(又称 "出租车距离")表示 n 维空间中两个点之间的绝对距离之和,公式为:

d(x,y)=∑i=1n​∣xi​−yi​∣

3.2 几何意义

在二维空间中,曼哈顿距离是两点之间沿坐标轴方向的距离之和,类似于城市中出租车沿街道行驶的路径长度。

示例:二维空间中,点 A (1,2) 和点 B (4,6) 的曼哈顿距离为:

d(A,B)=∣4−1∣+∣6−2∣=3+4=7

3.3 适用场景
  • 离散型数据:适合处理离散型特征(如分类变量、计数数据);
  • 高维数据:相比欧式距离,在高维空间中更稳定;
  • 路径规划:在机器人导航、物流配送中,用于计算最短路径;
  • 推荐系统:基于用户评分的协同过滤,曼哈顿距离对评分差异的敏感度更低。
3.4 代码实现
复制代码
import numpy as np

def manhattan_distance(x, y):
    """
    计算曼哈顿距离
    :param x: 第一个点的特征向量
    :param y: 第二个点的特征向量
    :return: 曼哈顿距离
    """
    return np.sum(np.abs(x - y))

# 示例
x = np.array([1, 2])
y = np.array([4, 6])
print(manhattan_distance(x, y))  # 输出:7.0
3.5 优缺点
  • 优点
    1. 对高维数据更稳定,不易受维度灾难影响;
    2. 对异常值的敏感度低于欧式距离;
    3. 计算速度更快(无需开平方);
  • 缺点
    1. 未考虑特征权重;
    2. 在低维空间中,不如欧式距离直观。

四、切比雪夫距离(Chebyshev Distance):"棋盘距离"

4.1 数学定义

切比雪夫距离表示 n 维空间中两个点之间的最大绝对差,公式为:

d(x,y)=maxi=1,...,n​∣xi​−yi​∣

4.2 几何意义

在二维空间中,切比雪夫距离是两点之间沿坐标轴方向的最大距离,类似于国际象棋中 "王" 的移动距离(可以沿任意方向走一步)。

示例:二维空间中,点 A (1,2) 和点 B (4,6) 的切比雪夫距离为:

d(A,B)=max(∣4−1∣,∣6−2∣)=max(3,4)=4

4.3 适用场景
  • 多维度数据的最大差异:适合需要关注最大差异的场景(如供应链中,多个环节的最大延迟);
  • 棋盘类问题:在机器人导航、游戏 AI 中,用于计算最短路径;
  • 图像分割:用于计算像素点之间的最大颜色差异。
4.4 代码实现
复制代码
import numpy as np

def chebyshev_distance(x, y):
    """
    计算切比雪夫距离
    :param x: 第一个点的特征向量
    :param y: 第二个点的特征向量
    :return: 切比雪夫距离
    """
    return np.max(np.abs(x - y))

# 示例
x = np.array([1, 2])
y = np.array([4, 6])
print(chebyshev_distance(x, y))  # 输出:4.0
4.5 优缺点
  • 优点
    1. 关注最大差异,适合需要突出极端值的场景;
    2. 计算简单,速度快;
  • 缺点
    1. 忽略了其他维度的差异,可能导致信息丢失;
    2. 适用场景相对有限。

五、三大距离度量的对比与选择

距离类型 数学定义 适用场景 优点 缺点
欧式距离 直线距离(平方和开根号) 连续型数据、低维数据、CV 直观易懂,准确性高 高维数据不稳定,对异常值敏感
曼哈顿距离 绝对距离之和 离散型数据、高维数据、路径规划 高维稳定,对异常值不敏感 低维场景不如欧式直观
切比雪夫距离 最大绝对差 最大差异场景、棋盘类问题 关注极端值,计算简单 忽略其他维度差异
5.1 选择建议
  1. 根据数据类型选择
    • 连续型数据优先选欧式距离;
    • 离散型数据优先选曼哈顿距离;
    • 需要关注最大差异时选切比雪夫距离;
  2. 根据数据维度选择
    • 低维数据选欧式距离;
    • 高维数据选曼哈顿距离;
  3. 根据业务需求选择
    • 推荐系统中,用户评分数据适合曼哈顿距离;
    • 计算机视觉中,特征匹配适合欧式距离;
    • 供应链中,延迟分析适合切比雪夫距离。

六、扩展:加权距离与余弦相似度

在实际项目中,我们还可以对距离度量进行扩展:

  1. 加权距离:为不同特征赋予不同权重,解决默认权重相同的问题,如加权欧式距离:d(x,y)=∑i=1nwi(xi−yi)2其中,wi是第 i 个特征的权重;
  2. 余弦相似度:用于衡量两个向量的方向相似性,适合文本分类、推荐系统等场景:cos(θ)=∣∣x∣∣∣∣y∣∣x⋅y余弦相似度的取值范围为 [-1,1],值越接近 1 表示方向越相似。

七、总结

欧式距离、曼哈顿距离、切比雪夫距离是机器学习中最常用的三大距离度量,它们各有优缺点和适用场景。理解它们的数学定义、几何意义和适用场景,是选择合适距离度量的基础。在实际项目中,我们可以根据数据类型、维度和业务需求,选择合适的距离度量,也可以结合加权、余弦相似度等扩展方法,进一步优化距离计算的准确性。

通过本文的详细讲解,你可以快速掌握三大距离度量的核心知识,并在实际项目中灵活应用,提高机器学习模型的性能和效果。

相关推荐
星河耀银海21 小时前
远控体验分享:安全与实用性参考
人工智能·安全·微服务
编程界一哥1 天前
星空游戏启动报错修复:2026最新保姆级步骤与原因解析
数据挖掘
企业架构师老王1 天前
2026企业架构演进:科普Agent(龙虾)如何从“极客玩具”走向实在Agent规模化落地?
人工智能·ai·架构
GreenTea1 天前
一文搞懂Harness Engineering与Meta-Harness
前端·人工智能·后端
鬼先生_sir1 天前
Spring AI Alibaba 1.1.2.2 完整知识点库
人工智能·ai·agent·源码解析·springai
深念Y1 天前
豆包AI能力集成方案:基于会话管理的API网关设计
人工智能
龙文浩_1 天前
Attention Mechanism: From Theory to Code
人工智能·深度学习·神经网络·学习·自然语言处理
ulimate_1 天前
八卡算力、三个Baseline算法(WALLOSS、pi0、DreamZero)
人工智能
深小乐1 天前
AI 周刊【2026.04.06-04.12】:Anthropic 藏起最强模型、AI 社会矛盾激化、"欢乐马"登顶
人工智能
微臣愚钝1 天前
prompt
人工智能·深度学习·prompt