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

机器学习中的距离概念

距离在机器学习中应用广泛,包括欧式距离、曼哈顿距离、内积距离和KL距离。
下面总结一下。

机器学习中的距离

  • 欧式距离
  • 曼哈顿距离
  • 内积距离
  • KL距离
  • 距离作为损失函数(MSE/MAE...)
  • 欧式距离与内积距离的联系
  • ☆距离的有效性

欧式距离

欧式距离(Euclidean Distance)是机器学习和数据科学中常用的一种距离度量方式,用来衡量两个点在欧几里得空间中的距离。它是通过计算这两个点之间的直线距离来表示的。

应用场景:

  • 分类问题:在 k-近邻算法 (k-Nearest Neighbors, KNN) 中,欧式距离被用来衡量待分类样本与已知类别样本之间的距离,以此来判断待分类样本的类别。
  • 聚类分析:在聚类算法(如 K-Means)中,欧式距离常用于计算每个样本点与簇中心的距离,从而决定样本点属于哪个簇。
  • 降维与度量学习:在某些降维技术(如主成分分析,PCA)或度量学习算法中,欧式距离被用来保持数据点之间的相对距离关系。

特点和局限性:

  • 优点:欧式距离直观易于计算,适用于大多数的物理空间距离计算。
  • 局限性:在高维空间(即“维度灾难”)下,欧式距离可能会失去其有效性,因为所有点之间的距离趋向于相似,导致算法效果下降。
  • 另外,欧式距离对数据中的尺度敏感,如果各个维度的量纲不同,通常需要进行归一化处理

曼哈顿距离

曼哈顿距离(Manhattan Distance),也称为城市街区距离(City Block Distance)或 L1 距离,是一种用于度量两个点之间距离的方式。与欧式距离不同,曼哈顿距离表示在一个网格状路径上移动的距离,就像在城市街道中沿着直角走动。

应用场景:

  • 分类和回归:在一些机器学习算法中(如 k-近邻算法),曼哈顿距离可以用于衡量样本之间的相似性,尤其是在特征独立且均匀分布的情况下。
  • 图像处理:在图像处理中,曼哈顿距离有时用于计算像素之间的距离,因为它能够更好地保持图像的结构特性。
  • 神经网络:在某些神经网络的正则化过程中(如 L1 正则化),曼哈顿距离的概念用于惩罚模型的复杂度。

特点和局限性:

  • 优点:曼哈顿距离对于高维数据稀疏数据表现较好,因为它不受高维空间中距离趋同效应的影响。
  • 局限性:在某些情况下,曼哈顿距离可能不如欧式距离直观,尤其是当数据更接近连续变化而非离散变化时。

内积距离

内积距离(Inner Product Distance)是一种基于向量内积相似性度量方法。在机器学习和数据分析中,内积(也称为点积或标量积)通常用于评估两个向量之间的相似性。
在这里插入图片描述
应用场景:

  • 相似性度量:内积可以用于衡量两个向量之间的相似性。☆在某些推荐系统中,内积用于计算用户与物品之间的相似性。
  • 神经网络:在神经网络中,内积是计算神经元输入和权重的线性组合的基础操作。
  • 信息检索:在文本检索中,内积可以用于衡量文档与查询向量之间的相似性。

局限性

  • 不对称性:内积不是严格意义上的“距离”度量,因为它不满足对称性和三角不等式等性质。
  • 尺度问题:由于内积受向量长度影响,直接使用内积作为距离度量可能导致误导性的结果,尤其是在向量长度差异较大的情况下。

为了克服这些局限性,内积通常与其他方法结合使用,如余弦相似性(通过将向量归一化)等。

KL距离

KL距离通常指的是Kullback-Leibler散度(Kullback-Leibler Divergence),又称KL散度或相对熵。它是信息论中用于衡量两个概率分布之间差异的一种非对称度量。KL散度在机器学习、统计学和信息论中有广泛的应用。

注:
KL距离不具有对称性。

应用场景

  • 机器学习:在机器学习中,KL散度常用于优化问题,如变分自动编码器(VAE)中,KL散度用于衡量近似后验分布与真实后验分布之间的差异。
  • 统计推断:KL散度可用于模型选择和假设检验,通过比较不同模型的拟合优度来选择最合适的模型。
  • 信息论:在信息论中,KL散度用于量化两个概率分布之间的差异,特别是在压缩和传输信息时。

距离作为损失函数(MSE/MAE…)


这里补充一下关于内积相似度。如果计算的话,首先需要给出“相似”的定义。
比如下面这个例子。

欧式距离与内积距离的联系



若是在A,B两点到原点的距离都是1的情况下,欧氏距离越大,内积相似度越小。

☆距离的有效性

在机器学习中无论什么距离,都是对短途有效!
距离在过远时已经丧失了意义。

在如上图这种情况下,如果计算A,B之间的距离,不能直接根据A,B两点的坐标进行计算,因为A,B距离“太远”,不能直接计算,而需要找到距离A的很近的若干点,不断地沿着路径计算出d1,d2,d3,…,dn,然后相加即可。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java8_关于list集合的操作Stream
  • 安科瑞Acrel-2000ES储能能量管理系统在新型电力系统下分布式储能的研究
  • Condition使用
  • 安全测试中参数校验测试
  • 2024最全最新VMWare以及Linux配置(含yum失效解决方案)
  • 算法解析——双指针算法(3)数据匹配
  • 开启IDEA打开新项目时窗口提示
  • 【C#】 接口 继承
  • C++进阶-智能指针
  • 记录一次.gitignore 失效问题
  • Linux LD_PRELOAD优先加载so失效原因分析
  • 四向量优化算法(FVIM)-2024年SCI新算法-公式原理详解与性能测评 Matlab代码免费获取
  • 前端项目部署
  • YOLOv8加载模型的3种方式说明:区别和适用场景是什么?
  • 1688 API 接口:电商系统的纽带
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • Android Volley源码解析
  • centos安装java运行环境jdk+tomcat
  • Java 网络编程(2):UDP 的使用
  • Java教程_软件开发基础
  • JS 面试题总结
  • MaxCompute访问TableStore(OTS) 数据
  • Redux系列x:源码分析
  • sessionStorage和localStorage
  • Spring Boot MyBatis配置多种数据库
  • 从零搭建Koa2 Server
  • 二维平面内的碰撞检测【一】
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 爬虫模拟登陆 SegmentFault
  • 探索 JS 中的模块化
  • 我与Jetbrains的这些年
  • ​比特币大跌的 2 个原因
  • #### golang中【堆】的使用及底层 ####
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $forceUpdate()函数
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)(2.10) LTM telemetry
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (差分)胡桃爱原石
  • (二)丶RabbitMQ的六大核心
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (四)Linux Shell编程——输入输出重定向
  • (未解决)macOS matplotlib 中文是方框
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原創) 物件導向與老子思想 (OO)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • ***原理与防范
  • *p++,*(p++),*++p,(*p)++区别?
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福