当前位置: 首页 > news >正文

机器学习中的数学---常用距离计算方法详解

        在机器学习中,距离度量是衡量样本间相似性或差异性的核心工具。无论是聚类(如K-Means、DBSCAN)、分类(如KNN)、还是特征选择(如马氏距离),距离计算都扮演着关键角色。本文将系统性地介绍机器学习中常用的10种距离定义、数学公式及其适用场景,帮助读者深入理解其原理与应用。


一、欧氏距离(Euclidean Distance)

定义
欧氏距离是最直观的距离度量方式,基于几何学中两点之间的直线距离。在n维空间中,两点 A(x1,x2,...,xn)与 B(y1,y2,...,yn) 的欧氏距离为:

特点

  • 优点:简单高效,适用于低维数据。
  • 缺点:对高维数据敏感(“维度灾难”),且未考虑特征尺度差异。

应用场景

  • 图像处理(像素点相似性)。
  • 低维空间的聚类分析(如K-Means)。

代码示例(Python)

import numpy as np
def euclidean_distance(a, b):return np.sqrt(np.sum((a - b)**2))

二、曼哈顿距离(Manhattan Distance)

定义
曼哈顿距离模拟了在网格状路径(如城市街区)中移动的距离,计算公式为:

特点

  • 优点:对离群点鲁棒,适合稀疏数据。
  • 缺点:忽略特征间的相关性。

应用场景

  • 交通路径规划。
  • 高维稀疏数据的相似性计算(如文本分类)。

代码示例(Python)

def manhattan_distance(a, b):return np.sum(np.abs(a - b))

三、切比雪夫距离(Chebyshev Distance)

定义
切比雪夫距离关注最大维度差异,公式为:

特点

  • 优点:适用于最大偏差分析。
  • 缺点:忽略其他维度的差异。

应用场景

  • 国际象棋中王的移动距离。
  • 需要快速判断最大差异的场景。

代码示例(Python)

def chebyshev_distance(a, b):return np.max(np.abs(a - b))

四、闵可夫斯基距离(Minkowski Distance)

定义
闵可夫斯基距离是欧氏距离和曼哈顿距离的泛化形式,通过参数 pp 控制计算方式:

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

特点

  • 灵活性:通过调整 pp 适应不同场景需求。

应用场景

  • 自定义距离度量的场景(如动态调整 pp)。

代码示例(Python)

def minkowski_distance(a, b, p):return np.power(np.sum(np.power(np.abs(a - b), p)), 1/p)

五、标准化欧氏距离(Standardized Euclidean Distance)

定义
标准化欧氏距离对数据进行标准化处理,消除特征尺度影响:

其中 sisi​ 为第 ii 个特征的标准差。

特点

  • 优点:解决特征尺度不一致问题。
  • 缺点:需预先计算特征标准差。

应用场景

  • 特征尺度差异较大的数据集(如身高与体重)。

代码示例(Python)

def standardized_euclidean_distance(a, b, std_devs):return np.sqrt(np.sum(((a - b) / std_devs)**2))

六、马氏距离(Mahalanobis Distance)

定义
马氏距离通过协方差矩阵衡量数据分布下的距离,公式为:

其中 SS 为协方差矩阵。

特点

  • 优点:考虑特征相关性,对异常值敏感。
  • 缺点:计算协方差矩阵开销大。

应用场景

  • 异常检测(如工业设备故障监测)。

代码示例(Python)

from scipy.spatial.distance import mahalanobis
def mahalanobis_distance(a, b, inv_cov):return mahalanobis(a, b, inv_cov)

七、余弦相似度(Cosine Similarity)

定义
余弦相似度衡量向量方向的相似性,而非长度:

特点

  • 优点:对向量长度不敏感,适合文本分类。
  • 缺点:忽略特征权重差异。

应用场景

  • 文本挖掘(如文档相似性)。
  • 推荐系统(用户/物品向量匹配)。

代码示例(Python)

from sklearn.metrics.pairwise import cosine_similarity
def cosine_sim(a, b):return cosine_similarity([a], [b])[0][0]

八、汉明距离(Hamming Distance)

定义
汉明距离用于比较等长字符串的差异,计算不同位置的数量:

特点

  • 优点:适合二进制或离散数据。
  • 缺点:仅适用于相同长度的序列。

应用场景

  • 错误检测(如通信编码)。
  • 基因序列对比。

代码示例(Python)

def hamming_distance(a, b):return np.sum(np.array(a) != np.array(b))

九、杰卡德距离(Jaccard Distance)

定义
杰卡德距离衡量集合差异,公式为:

特点

  • 优点:适合集合或稀疏数据。
  • 缺点:忽略元素频率。

应用场景

  • 社交网络中好友关系相似性。
  • 推荐系统(物品集合匹配)。

代码示例(Python)

def jaccard_distance(a, b):intersection = len(set(a) & set(b))union = len(set(a) | set(b))return 1 - intersection / union

十、信息熵(Information Entropy)

定义
信息熵衡量数据的不确定性,公式为:

特点

  • 优点:反映数据分布的复杂性。
  • 缺点:仅适用于概率分布。

应用场景

  • 特征选择(高熵特征更具区分性)。
  • 决策树分裂依据。

代码示例(Python)

import math
def entropy(probabilities):return -np.sum([p * math.log(p) for p in probabilities])

总结:如何选择合适的距离?

距离类型适用场景典型算法
欧氏距离低维数据相似性分析K-Means、KNN
曼哈顿距离高维稀疏数据KNN、文本分类
切比雪夫距离最大偏差分析图像处理
闵可夫斯基距离动态调整距离度量自定义算法
马氏距离异常检测工业监测
余弦相似度文本或高维向量相似性推荐系统、NLP
汉明距离二进制/离散数据编码校验
杰卡德距离集合相似性社交网络分析
信息熵数据分布不确定性特征选择、决策树
http://www.dtcms.com/a/266276.html

相关文章:

  • 通过 Ansys Discovery CFD 仿真探索电池冷板概念
  • 睿尔曼系列机器人——以创新驱动未来,重塑智能协作新生态(下)
  • 【IM项目笔记】1、WebSocket协议和服务端推送Web方案
  • 在 Ubuntu 22.04 上使用 Minikube 部署 Go 应用到 Kubernetes
  • 商品中心—19.库存分桶高并发的优化文档
  • element-plus按需自动导入的配置 以及icon图标不显示的问题解决
  • Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
  • ubuntu22桌面版中文输入法 fcitx5
  • goole chrome变更默认搜索引擎为百度
  • MySQL(116)如何监控负载均衡状态?
  • 如何调节笔记本电脑亮度?其实有很多种方式可以调整亮度
  • Linux中容器文件操作和数据卷使用以及目录挂载
  • Oracle CTE递归实现PCB行业的叠层关系
  • 缓存雪崩、穿透、预热、更新与降级问题与实战解决方案
  • 【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
  • 批量剪辑混剪系统源码搭建与定制化开发:支持OEM
  • LeetCode1456. 定长子串中元音的最大数目
  • Acrel-1000系列分布式光伏监控系统在湖北荆门一马光彩大市场屋顶光伏发电项目中应用
  • 在数学中一个实对称矩阵的特性分析
  • 每天一个前端小知识 Day 21 - 浏览器兼容性与 Polyfill 策略
  • Web 项目如何自动化测试?
  • 大语言模型预训练数据——数据采样方法介绍以GPT3为例
  • 银河麒麟V10服务器版 + openGuass + JDK +Tomcat
  • 基于FPGA的一维序列三次样条插值算法verilog实现,包含testbench
  • 类图+案例+代码详解:软件设计模式----原型模式
  • 【网络与系统安全】域类实施模型DTE
  • 【AI总结】Git vs GitHub vs GitLab:深度解析三者联系与核心区别
  • 篇二 OSI七层模型,TCP/IP四层模型,路由器与交换机原理
  • 花尖墨 Web3 水果品牌白皮书
  • 【牛客算法】小苯的数字权值