机器学习算法原理与实践-入门(二):距离计算方式详解 - 教程

机器学习算法原理与实践-入门(二):距离计算方式详解

否"相近",就需要用到就是在上一篇文章中,我们深入学习了KNN算法的基本原理。我们知道KNN的核心思想是"物以类聚",而要判断两个样本距离计算理解KNN乃至许多其他机器学习算法的基础。就是。本文将系统讲解机器学习中常用的各种距离计算方式,这


一、为什么需要多种距离计算方式?

衡量样本相似度的关键工具。不同的距离度量方式适用于不同的场景和数据类型:就是距离计算

  1. 数据类型不同:数值型数据、类别型数据、文本信息等需要不同的距离度量
  2. 应用场景不同:地理坐标计算、文本相似度、图像识别等需要专门的度量方法
  3. 数据特性不同:高维数据、稀疏数据、分布不均匀的信息对距离计算有不同要求
  4. 算法需求不同:不同机器学习算法对距离度量的敏感性不同

掌握各种距离计算方式,能够协助我们在实际项目中选择最合适的度量方法,从而提高模型的准确性和效率。


二、常用的距离度量方法

1. 欧氏距离(欧几里得距离)

定义最直观的距离度量方式。就是:计算两点之间的直线距离,

在这里插入图片描述

公式:对于n维空间中的两个点A和B:
[ d(A,B) = \sqrt{\sum_{i=1}^{n}(a_i - b_i)^2} ]

特点:

  • 优点:直观易懂,符合日常生活中的距离概念
  • 缺点:对量纲敏感,高维数据中效果会下降
  • 适用场景:低维空间的数值型数据

2. 曼哈顿距离(城市街区距离)

定义:计算两点在网格状坐标系中的距离,只能沿着坐标轴方向前进。
在这里插入图片描述

公式:
[ d(A,B) = \sum_{i=1}^{n}|a_i - b_i| ]

特点:

  • 优点:计算速度快,对异常值不敏感
  • 缺点:不是实际的最短路径
  • 适用场景:特征独立的网格数据

3. 切比雪夫距离

定义:计算两点在各个坐标上的差的最大绝对值。
在这里插入图片描述

公式:
[ d(A,B) = \max_{i=1}^{n}|a_i - b_i| ]

特点:

  • 优点:计算简便,对单一维度最大变化敏感
  • 缺点:忽略了其他维度的信息
  • 适用场景:棋盘类游戏AI、图像处理

4. 余弦相似度

定义距离。就是:衡量两个向量的方向相似性,而不
在这里插入图片描述

公式:
[ \text{similarity}(A,B) = \frac{A \cdot B}{|A| |B|} ]

特点:

  • 优点:不受向量长度影响,只关注方向
  • 缺点:完全忽略了向量的幅度信息
  • 适用场景:文本相似度计算、推荐系统

5. 汉明距离

定义:比较两个等长字符串在相同位置上不同字符的数量。
在这里插入图片描述

公式:
[ d(A,B) = \sum_{i=1}^{n} \mathbb{I}(a_i \neq b_i) ]

特点:

  • 优点:计算简单高效,对二进制数据专门有用
  • 缺点:要求比较对象长度相等
  • 适用场景:错误检测与纠正编码、DNA序列比对

6. 闵可夫斯基距离

定义:距离度量的通用形式,通过参数p的变化能够表示多种距离度量。
在这里插入图片描述

公式:
[ d(A,B) = \left(\sum_{i=1}^{n}|a_i - b_i|p\right){\frac{1}{p}} ]

特殊情形:

  • p=1:曼哈顿距离
  • p=2:欧氏距离
  • p→∞:切比雪夫距离

特点:

  • 优点:给出了距离度量的统一框架
  • 缺点:p值的选择需要经验或调优
  • 适用场景:需要灵活距离度量的场景

7. Jaccard指数(杰卡德相似系数)

定义:衡量两个集合的相似度,计算交集大小与并集大小的比值。
在这里插入图片描述

公式:
[ J(A,B) = \frac{|A \cap B|}{|A \cup B|} ]

特点:

  • 优点:直观反映了集合的重叠程度,对集合大小不敏感
  • 缺点:对大型数据集可能产生偏差
  • 适用场景:文档相似度、购物篮分析

8. 半正矢距离

定义:专门用于计算地球表面两点之间的距离,考虑了地球的曲率。
在这里插入图片描述

公式:
[ d = 2R \arcsin\left(\sqrt{\sin^2\left(\frac{\phi_2 - \phi_1}{2}\right) + \cos(\phi_1)\cos(\phi_2)\sin^2\left(\frac{\lambda_2 - \lambda_1}{2}\right)}\right) ]

特点:

  • 优点:准确计算地球表面距离,考虑了地球曲率
  • 缺点:计算相对复杂,仅适用于地理坐标数据
  • 适用场景:地理信息系统、位置服务应用

三、距离度量的选择原则

在实际应用中,选择哪种距离度量需要考虑以下因素:

1. 数据类型

  • 数值型数据:欧氏距离、曼哈顿距离
  • 二元数据:汉明距离、Jaccard指数
  • 文本数据:余弦相似度
  • 地理位置数据:半正矢距离

2. 数据特性

  • 高维数据:余弦相似度效果更好
  • 稀疏数据:余弦相似度、Jaccard指数
  • 分布不均匀的数据:需要先进行标准化处理

3. 应用需求

  • 需要直观解释:欧氏距离、曼哈顿距离
  • 关注方向相似性:余弦相似度
  • 需要鲁棒性:曼哈顿距离对异常值更鲁棒

4. 计算效率

  • 大规模数据:选择计算简单的距离
  • 实时应用:曼哈顿距离、汉明距离

实践建议

  1. 从简单开始:先尝试欧氏距离,作为基线
  2. 根据数据特性调整:如果效果不佳,尝试其他更适合的度量
  3. 实验验证:通过交叉验证比较不同距离度量的效果
  4. 领域知识指导:考虑具体应用领域的惯例和需求

下一篇预告

在掌握了KNN算法的基本原理和各种距离计算方式后,我们将在下一篇文章中深入讲解:

机器学习算法原理与实践-入门(三):使用数学方法实现KNN

大家将从数学原理出发,不启用现成的机器学习库,从头开始实现KNN算法的每个步骤,让你真正理解算法的内部工作原理。

posted @ 2026-03-05 16:15  yangykaifa  阅读(55)  评论(0)    收藏  举报