【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用

news2024/12/25 23:41:31

【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用

    • 距离公式
    • 二维
    • 更高的维度
    • 点以外的物体
    • 属性
    • 欧几里得距离的平方
    • 概括
    • 历史

在数学中,'欧氏距离’是指欧氏空间中任意两点之间的直线距离。这种距离可以通过应用勾股定理来计算,利用两点的笛卡尔坐标确定它们之间的直线距离,因此有时被称为‘勾股定理距离’。

这些名字来自古希腊数学家欧几里得和毕达哥拉斯。在以欧几里得几何原理为代表的希腊演绎几何中,距离并不表示为数字,而是相同长度的线段被认为是“相等的”。距离的概念是用于绘制圆的圆规工具中固有的,圆的所有点到公共中心点的距离都相同。毕达哥拉斯定理与距离计算的联系直到 18 世纪才建立起来。

两个非点对象之间的距离通常定义为距两个对象的点对之间的最小距离。众所周知,公式用于计算不同类型对象之间的距离,例如从点到线的距离。在高等数学中,距离的概念已被推广到抽象的度量空间,并且已经研究了欧几里得以外的其他距离。在统计和优化的某些应用中,使用欧几里德距离的平方而不是距离本身。

使用勾股定理计算二维欧氏距离

使用勾股定理计算二维欧氏距离

距离公式

实线上任意两点之间的距离是它们坐标数值差的绝对值,即它们的绝对差。因此,如果 p p p q q q是实线上的两点,则它们之间的距离由以下公式给出:

d ( p , q ) = ∣ p − q ∣ d(p, q) = |p-q| d(p,q)=pq

一个更复杂的公式,给出相同的值,但更容易推广到更高的维度,是:

d ( p , q ) = ( p − q ) 2 d(p, q) = \sqrt{(p-q)^2} d(p,q)=(pq)2

在此公式中,先平方再开平方会使任何正数保持不变,但用其绝对值替换任何负数。

二维

在二维欧氏空间中,假设点p的笛卡尔坐标为 ( p 1 , p 2 ) (p_1, p_2) (p1,p2),点q的坐标为 ( q 1 , q 2 ) (q_1, q_2) (q1,q2)。然后 p p p q q q之间的距离由下式给出:

d ( p , q ) = ( p 1 − q 1 ) 2 + ( p 2 − q 2 ) 2 d(p, q) = \sqrt{(p_1-q_1)^2+(p_2-q_2)^2} d(p,q)=(p1q1)2+(p2q2)2

这个距离的计算可以通过将勾股定理应用于一个直角三角形,其中p到q的线段是斜边,而其余两边分别平行于坐标轴平方根内的两个平方公式给出水平边和垂直边上的正方形面积,外平方根将斜边上的正方形面积转换为斜边的长度。

同样,我们也可以计算出两点在极坐标系中的欧氏距离。如 p p p的极坐标是 ( r , θ ) (r, \theta) (r,θ) q q q的极坐标 ( s , ψ ) (s, \psi) (s,ψ)是 ,则它们的距离由余弦定律[2]给出:

d ( p , q ) = r 2 + s 2 − 2 r s cos ⁡ ( θ − ψ ) d(p, q) = \sqrt{r^2+s^2-2rs\cos{(\theta-\psi)}} d(p,q)=r2+s22rscos(θψ)

When p p p and q q q are expressed as complex numbers in the complex plane, the same formula for one-dimensional points expressed as real numbers can be used, although here the absolute value sign indicates the complex norm:[4]

d ( p , q ) = ∣ p − q ∣ d(p, q) = |p-q| d(p,q)=pq

更高的维度

在三维欧氏空间中,如果点的位置由笛卡尔坐标给出,那么两点之间的距离可以表示为

d ( p , q ) = ( p 1 − q 1 ) 2 + ( p 2 − q 2 ) 2 + ( p 3 − q 3 ) 2 d(p, q) = \sqrt{(p_1-q_1)^2+(p_2-q_2)^2 + (p_3-q_3)^2} d(p,q)=(p1q1)2+(p2q2)2+(p3q3)2

通常,对于在维欧几里得空间中由笛卡尔坐标给出的点,距离为。

d ( p , q ) = ( p 1 − q 1 ) 2 + ( p 2 − q 2 ) 2 + ⋯ + ( p n − q n ) 2 d(p, q) = \sqrt{(p_1-q_1)^2+(p_2-q_2)^2 +\dots + (p_n-q_n)^2} d(p,q)=(p1q1)2+(p2q2)2++(pnqn)2
欧几里得距离也可以用欧几里得向量差的欧几里得范数更紧凑地表示:

d ( p , q ) = ∣ ∣ p − q ∣ ∣ d(p, q) = ||p-q|| d(p,q)=∣∣pq∣∣

在这里插入图片描述

通过反复应用勾股定理推导-维欧几里得距离公式

点以外的物体

对于不是两个点的对象对,距离可以最简单地定义为两个对象之间任意两点之间的最小距离,尽管通常使用从点到集合的更复杂的概括,例如豪斯多夫距离。用于计算不同类型对象之间距离的公式包括:

  • 在欧几里得平面中,从点到线的距离。
  • 三维欧几里得空间中从点到平面的距离。
  • 三维欧几里得空间中两条线之间的距离。

从点到曲线的距离可用于定义其平行曲线,另一条曲线的所有点与给定曲线的距离相同。

属性

欧几里得距离是度量空间中距离的典型示例,它遵循度量空间的所有定义属性:

  • 它是对称的,这意味着对于所有点 p p p q q q d ( p , q ) = d ( q , p ) d(p, q)=d(q, p) d(p,q)=d(q,p).也就是说(与单行道的道路距离不同),两点之间的距离不取决于两点中的哪一点是起点,哪一点是终点。
  • 它是正数,这意味着每两个不同点之间的距离是一个正数,而从任何一点到自身的距离为零。
  • 它服从三角形不等式:每三点 p p p q q q r r r d ( p , q ) + d ( q , r ) ≥ d ( p , r ) d(p, q)+d(q, r)\geq d(p, r) d(p,q)+d(q,r)d(p,r) 。直观地说,从 p p p经过 q q q r r r 旅行不会比直接从 p p p r r r旅行短。

另一个性质,托勒密不等式,涉及四点之间的欧几里得距离 p p p q q q r r r s s s 。它指出

d ( p , q ) ⋅ d ( r , s ) + d ( q , r ) ⋅ d ( p , s ) ≥ d ( p , r ) ⋅ d ( q , s ) d(p, q)\cdot d(r, s) + d(q, r)\cdot d(p, s) \geq d(p, r)\cdot d(q,s) d(p,q)d(r,s)+d(q,r)d(p,s)d(p,r)d(q,s)

对于平面中的点,这可以改写为,对于每个四边形,四边形相对边的乘积之和至少与其对角线的乘积一样大。然而,托勒密不等式更普遍地适用于欧几里得空间中任何维度的点,无论它们是如何排列的。对于度量空间中不是欧几里得空间的点,这种不等式可能不是真的。欧几里得距离几何研究欧几里得距离的性质,例如托勒密不等式,以及它们在测试给定距离集是否来自欧几里得空间中的点中的应用。

根据贝克曼-夸尔斯定理,欧几里得平面或保持单位距离的高维欧几里得空间的任何变换都必须是等距,保留所有距离。

欧几里得距离的平方

在许多应用中,特别是在比较距离时,在计算欧几里得距离时省略最终平方根可能更方便,因为平方根不会改变顺序(当且仅当)。由此省略产生的值是欧几里得距离的平方,称为欧几里得距离的平方。例如,欧几里得最小生成树可以仅使用距离之间的排序来确定,而不能使用它们的数值。比较平方距离会产生相同的结果,但避免了不必要的平方根计算并回避了数值精度问题。作为一个方程,距离的平方可以表示为平方和:

d 2 ( p , q ) = ( p 1 − q 1 ) 2 + ( p 2 − q 2 ) 2 + ⋯ + ( p n − q n ) 2 d^2(p, q) = (p_1-q_1)^2+(p_2-q_2)^2 +\dots + (p_n-q_n)^2 d2(p,q)=(p1q1)2+(p2q2)2++(pnqn)2

除了应用于距离比较之外,平方欧几里得距离在统计学中也具有核心重要性,它被用于最小二乘法,这是一种通过最小化观测值和估计值之间的平方距离平均值来将统计估计拟合到数据的标准方法,并且是比较概率分布的最简单的散度形式。彼此之间的平方距离相加,就像在最小二乘拟合中所做的那样,对应于称为勾股加法的(非平方)距离运算。在聚类分析中,可以使用平方距离来增强较长距离的效果。

平方欧几里得距离不形成度量空间,因为它不满足三角形不等式。然而,它是两点的光滑、严格凸函数,与距离不同,距离是非光滑的(靠近相等的点对)和凸但不严格凸的。因此,平方距离在优化理论中是首选,因为它允许使用凸分析。由于平方是非负值的单调函数,因此最小化平方距离等价于最小化欧几里得距离,因此优化问题在两者方面都是等价的,但使用平方距离更容易求解。

有限集合中点对之间的所有平方距离的集合可以存储在欧几里得距离矩阵中,并以这种形式用于距离几何。

在这里插入图片描述

圆锥体,平面中距原点的欧几里得距离图

在这里插入图片描述

抛物面,与原点的平方欧几里得距离图

概括

在更高级的数学理论中,当把欧氏空间视为一个向量空间时,点之间的距离与一种特殊的范数欧氏范数密切相关。,该范数定义为每个向量与原点的距离。相对于其他规范,该规范的一个重要特性是,在围绕原点的空间任意旋转下,它保持不变。根据德沃雷茨基定理,每个有限维范数向量空间都有一个高维子空间,其范数近似于欧几里得;欧几里得范数是具有此性质的唯一范数。它可以扩展到无限维向量空间,如 L 2 L^2 L2范数或 L 2 L^2 L2距离。欧几里得距离为欧几里得空间提供了拓扑空间的结构,即欧几里得拓扑,以开放球(距给定点小于给定距离的点的子集)作为其邻域。

实坐标空间和函数空间中的其他常见距离:

切比雪夫距离( L ∞ L^\infty L 距离),它测量距离作为每个坐标中距离的最大值。

出租车距离( L 1 L^1 L1距离),也称为曼哈顿距离,它以每个坐标中距离的总和来衡量距离。

闵可夫斯基距离( L p L^p Lp 距离),一种统一欧几里得距离、出租车距离和切比雪夫距离的概括。

对于三维曲面上的点,应将欧几里得距离与测地线距离区分开来,测地线距离是属于曲面的最短曲线的长度。特别是,为了测量地球或其他球形或近球面上的大圆距离,已使用的距离包括哈弗正弦距离,给出球体上两点之间的大圆距离,从它们的经度和纬度,以及文森特公式也称为“文森特距离”,表示椭球体上的距离。

在这里插入图片描述

棋盘上 3-4-5 三角形斜边的切比雪夫、欧几里得和出租车距离的比较

历史

欧几里得距离是欧几里得空间中的距离。这两个概念都以古希腊数学家欧几里得的名字命名,他的《元素》在许多世纪以来成为几何学的标准教科书。长度和距离的概念在各种文化中都很普遍,可以追溯到公元前四千年(远在欧几里得之前)苏美尔现存最早的“原始文盲”官僚文件,并且据推测在儿童中发展的时间早于相关的速度和时间概念。但是,距离的概念,作为从两点定义的数字,实际上并没有出现在欧几里得的元素中。相反,欧几里得通过线段的同余、线段长度的比较以及比例性的概念,隐含地接近了这个概念。

毕达哥拉斯定理也很古老,但只有在勒内·笛卡尔于 1637 年发明笛卡尔坐标后,它才能在距离测量中发挥核心作用。距离公式本身由亚历克西斯·克莱劳特(Alexis Clairaut)于1731年首次发表。由于这个公式,欧几里得距离有时也称为勾股距离。尽管自古以来,许多文化中就再次研究了地球表面长距离的精确测量,这些距离不是欧几里得的(见大地测量学的历史),但欧几里得距离可能不是测量数学空间中点之间距离的唯一方法的想法甚至更晚,随着 19 世纪非欧几里得几何的表述。欧几里得范数和三维以上几何的欧几里得距离的定义也最早出现在 19 世纪的奥古斯丁-路易·柯西 (Augustin-Louis Cauchy) 的著作中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1361158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【userfaultfd 条件竞争】starCTF2019 - hackme

前言 呜呜呜,这题不难,但是差不多一个多月没碰我的女朋友 kernel pwn 了,对我的 root 宝宝也是非常想念,可惜这题没有找到我的 root 宝宝,就偷了她的 flag。 哎有点生疏了,这题没看出来堆溢出&#xff0c…

【漏洞复现】ActiveMQ反序列化漏洞(CVE-2015-5254)

Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务,是面向消息中间件(MOM)的最终实现,它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Re…

漫谈大模型的[幻觉]问题

# 如何解决大模型的幻觉问题?# 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:漫谈LLMs带来的AIGC浪潮​​​​​​​ 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质…

C#中的值和引用笔记

文章目录 1. 简单介绍2. 如何判断值类型和引用类型3. 语句块4. 变量的生命周期5. 结构体中的值和引用6. 数组中的存储规则7. 结构体继承接口 1. 简单介绍 2. 如何判断值类型和引用类型 在代码中直接转到内部F12 如string类型 值类型int 3. 语句块 4. 变量的生命周期 5. 结构…

CMake入门教程全导航

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.CMake简介2.编程小鱼酱的课程导览2.1拥有这个专栏,您将获得什么…

Linux部署Yearning并结合内网穿透工具实现公网访问本地web管理界面

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用…

20 太空漫游

效果演示 实现了一个太空漫游的动画效果,其中包括火箭、星星和月亮。当鼠标悬停在卡片上时,太阳和星星会变成黄色,火箭会变成飞机,月亮会变成小型的月亮。整个效果非常炫酷,可以让人想起科幻电影中的太空漫游。 Code &…

[JavaWeb玩耍日记] 数据库

mysql版本:5.7.24 使用Navicat for MySQL辅助学习(2015年版),这个在粘贴本博客的块引用内容时会有额外的不可见内容导致sql运行出问题,不过有影响的地方笔者已排除 目录 一.数据库创建 二.使用数据库与创建表 三.表内列的数据类型 四.修…

使用FinalShell连接Linux系统

1.为什么要使用FinalShell连接Linux系统? 如果直接使用VMware上的Linux系统会有很多不方便: 内容的复制粘贴跨越VMware不方便文件的上传、下载跨越VMware不方便 也就是和Linux系统的各类交互,跨越VMware不方便 2.FinalShell下载 FinalSh…

Jmeter 性能 —— 电商系统TPS计算!

1、怎么计算得出TPS指标 ①第一个通过运维那边给的生产数据,看一下生产进件有多少,计算得来的,如果没有生产数据,或者不过就看如下的方法 ②第二个就是根据最近一个月的实际访问数据,比如每天调用了多少个接口&#…

单元测试、系统测试、集成测试知识总结

一、单元测试的概念 单元测试是对软件基本组成单元进行的测试,如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法,有可能对应多个程序文件中的一组函数。 单元也具有一些基本的属性。比如:明确的功能、规格定义&#…

asp.net手机销售管理系统的设计与实现

该系统分为两个功能模块。用户可以通过注册登录进入,进入系统页面后可以对个人密码进行修改以及购买手机,手机退货等操作。管理员登陆后能对手机库存进行添加手机库存,删除手机库存,修改手机库存以及查询手机库存的管理。系统以SQ…

迭代实现二叉树的遍历(算法村第七关黄金挑战)

迭代实现前序遍历 144. 二叉树的前序遍历 - 力扣(LeetCode) 题解的迭代方式 因为在递归的过程中使用了系统栈,所以在迭代的解法中常用 Stack 来模拟系统栈,来模拟递归。 首先创建一个 Stack 用来存放节点,此时 Sta…

算法每日一题: 被列覆盖的最多行数 | 二进制 - 状态压缩

大家好,我是星恒 今天的题目又是一道有关二进制的题目,有我们之前做的那道 参加考试的最大学生数的 感觉,哈哈,当然,比那道题简单多了,这道题感觉主要的考点就是二进制,大家可以好好总结一下这道…

栅极驱动芯片三种隔离技术

栅极驱动芯片三种隔离技术 1.栅极驱动器概述2.隔离栅极驱动芯片2.1隔离驱动器重要指标 3.三种常见隔离技术3.1光隔离3.2变压器隔离/磁隔3.3电容隔离 4.三种隔离器性能对比 1.栅极驱动器概述 栅极驱动器,在任何功率水平为任何应用高效可靠地驱动任何功率开关。 比如M…

我的2023年总结:往前看,别回头

2023年已经结束,我借此机会回顾一下我的2023年,同时也为2024年立好flag。 文章目录 2023印象深刻的实战经历技术成长与规划技术分享与交流CSDN博客参加百度apollo技术讨论会 深入学习Redis源码多彩的生活张杰演唱会《漫长的季节》:往前看&am…

【unity小技巧】FPS游戏实现相机的震动、后坐力和偏移

最终效果 文章目录 最终效果前言相机的震动实现后坐力和偏移相机震动相机震动脚本换弹节点震动 武器射击后退效果完结 前言 关于后坐力之前其实已经分享了一个:FPS游戏后坐力制作思路 但是实现起来比较复杂,如果你只是想要简单的实现,可以看…

R304S 指纹识别模块指令系统二

(16) 读索引表 PS_ReadIndexTable 功能说明:读取录入模版的索引表 输入参数:索引表页码,页码 0,1,2,3…分别对应模版从 0-256,256-512,512-768,768-1024…的索引&#…

玩转Python:用Python处理文档,5个必备的库,特别实用,附代码

在Python中,有几个流行的库用于处理文档,包括解析、生成和操作文档内容。以下是一些常用的库及其简介和简单的代码示例: PyPDF2 - 用于处理PDF文件。 简介:PyPDF2是一个纯Python库,用于分割、合并、转换和提取PDF文件中…

IDEA2023 最新版详细图文安装教程(Java环境搭建+IDEA安装+运行测试+汉化+背景图设置)

IDEA2023 最新版详细图文安装教程 名人说:工欲善其事,必先利其器。——《论语》 作者:Code_流苏(CSDN) o(‐^▽^‐)o很高兴你打开了这篇博客,跟着教程去一步步尝试安装吧。 目录 IDEA2023 最新版详细图文安…