机器学习-距离的度量方法

文章目录

一. 欧式距离

欧式距离(Euclidean distance):多维空间中两点之间的直线距离
在这里插入图片描述
对于两个点 ( A = ( x 1 , x 2 , . . . , x n ) ) 和 ( B = ( y 1 , y 2 , . . . , y n ) ) ( A = (x_1, x_2, ..., x_n) ) 和 ( B = (y_1, y_2, ..., y_n) ) (A=(x1,x2,...,xn))(B=(y1,y2,...,yn)),欧式距离的公式为:

d ( A , B ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + . . . + ( x n − y n ) 2 d(A, B) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2 + ... + (x_n - y_n)^2} d(A,B)=(x1y1)2+(x2y2)2+...+(xnyn)2

在二维空间中(即 ( n = 2 )),欧式距离简化为:

d ( A , B ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 d(A, B) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2} d(A,B)=(x1y1)2+(x2y2)2

二. 曼哈顿距离

曼哈顿距离,也叫做“城市街区距离”或“L1范数”,度量的是在网格状的空间中,两点之间的总直线距离。它计算的是两个点在各个坐标轴上差值的绝对值之和。
在这里插入图片描述

对于两个点 ( A = ( x 1 , x 2 , . . . , x n ) ) ( A = (x_1, x_2, ..., x_n) ) (A=(x1,x2,...,xn)) ( B = ( y 1 , y 2 , . . . , y n ) ) ( B = (y_1, y_2, ..., y_n) ) (B=(y1,y2,...,yn)),曼哈顿距离的公式为:

d ( A , B ) = ∣ x 1 − y 1 ∣ + ∣ x 2 − y 2 ∣ + . . . + ∣ x n − y n ∣ d(A, B) = |x_1 - y_1| + |x_2 - y_2| + ... + |x_n - y_n| d(A,B)=x1y1+x2y2+...+xnyn

在二维空间中(即 ( n = 2 )),曼哈顿距离简化为:

d ( A , B ) = ∣ x 1 − y 1 ∣ + ∣ x 2 − y 2 ∣ d(A, B) = |x_1 - y_1| + |x_2 - y_2| d(A,B)=x1y1+x2y2

三. 切比雪夫距离

切比雪夫距离度量的是两点之间的最大坐标差。它反映了两点在“棋盘式”格局下的最短路径(即每一步可以沿着坐标轴的任何方向移动)。
在这里插入图片描述
在这里插入图片描述

对于两个点 ( A = ( x 1 , x 2 , . . . , x n ) ) ( A = (x_1, x_2, ..., x_n) ) (A=(x1,x2,...,xn)) ( B = ( y 1 , y 2 , . . . , y n ) ) ( B = (y_1, y_2, ..., y_n) ) (B=(y1,y2,...,yn)),切比雪夫距离的公式为:

d ( A , B ) = max ⁡ ( ∣ x 1 − y 1 ∣ , ∣ x 2 − y 2 ∣ , . . . , ∣ x n − y n ∣ ) d(A, B) = \max(|x_1 - y_1|, |x_2 - y_2|, ..., |x_n - y_n|) d(A,B)=max(x1y1,x2y2,...,xnyn)

在二维空间中(即 ( n = 2 )),切比雪夫距离简化为:

d ( A , B ) = max ⁡ ( ∣ x 1 − y 1 ∣ , ∣ x 2 − y 2 ∣ ) d(A, B) = \max(|x_1 - y_1|, |x_2 - y_2|) d(A,B)=max(x1y1,x2y2)

四. 闵式距离

闵式距离(Minkowski Distance)是一类距离度量的泛化形式,包括了欧几里得距离、曼哈顿距离和切比雪夫距离等作为特例。闵式距离的一般定义为:

d p = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 / p d_p = \left( \sum_{i=1}^{n} |x_i - y_i|^p \right)^{1/p} dp=(i=1nxiyip)1/p

其中, ( x = ( x 1 , x 2 , … , x n ) ) ( x = (x_1, x_2, \dots, x_n) ) (x=(x1,x2,,xn)) ( y = ( y 1 , y 2 , … , y n ) ) ( y = (y_1, y_2, \dots, y_n) ) (y=(y1,y2,,yn))是 n 维空间中的两个点, ( p ) ( p ) (p) 是一个正数,称为距离的阶数(也可以称为“闵式指数”)。闵式距离的定义可以通过不同的 ( p ) ( p ) (p) 值得到不同的距离度量。

1. p不同取值,表示不同距离

  • 当 ( p = 1 ) 时,闵式距离变为曼哈顿距离(L1距离):
    d 1 = ∑ i = 1 n ∣ x i − y i ∣ d_1 = \sum_{i=1}^{n} |x_i - y_i| d1=i=1nxiyi
  • 当 ( p = 2 ) 时,闵式距离变为欧几里得距离(L2距离):
    d 2 = ( ∑ i = 1 n ∣ x i − y i ∣ 2 ) 1 / 2 d_2 = \left( \sum_{i=1}^{n} |x_i - y_i|^2 \right)^{1/2} d2=(i=1nxiyi2)1/2
  • ( p → ∞ ) ( p \to \infty ) (p) 时,闵式距离变为切比雪夫距离:
    d ∞ = max ⁡ i ∣ x i − y i ∣ d_\infty = \max_{i} |x_i - y_i| d=imaxxiyi

2. 当 ( p → ∞ ) ( p \to \infty ) (p) 时,为什么闵式距离变为切比雪夫距离

闵式距离通过参数 ( p ) ( p ) (p) 控制了度量的敏感度。随着 ( p ) ( p ) (p) 的增大,度量对坐标差异较大的维度会变得更加敏感。当 ( p ) ( p ) (p) 趋近于无穷大时,闵式距离就转化为切比雪夫距离,关注的是最大的坐标差异。

我们可以考虑闵式距离在 ( p → ∞ ) ( p \to \infty ) (p) 时的极限行为。假设我们有 ( n ) ( n ) (n) 个坐标差 ( ∣ x i − y i ∣ ) ( |x_i - y_i| ) (xiyi) 对应于 ( i = 1 , 2 , … , n ) ( i = 1, 2, \dots, n ) (i=1,2,,n)

( p ) ( p ) (p) 增加时, ( ∣ x i − y i ∣ p ) ( |x_i - y_i|^p ) (xiyip) 对较大的坐标差更加敏感。为了更清楚地说明这一点,假设我们有以下几个差值:

∣ x 1 − y 1 ∣ = 3 , ∣ x 2 − y 2 ∣ = 1 , ∣ x 3 − y 3 ∣ = 2 |x_1 - y_1| = 3, \quad |x_2 - y_2| = 1, \quad |x_3 - y_3| = 2 x1y1=3,x2y2=1,x3y3=2

随着 ( p ) ( p ) (p)增大, ( ∣ x 1 − y 1 ∣ p = 3 p ) ( |x_1 - y_1|^p = 3^p ) (x1y1p=3p)会迅速增大,而 ( ∣ x 2 − y 2 ∣ p = 1 p = 1 ) ( |x_2 - y_2|^p = 1^p = 1 ) (x2y2p=1p=1) ( ∣ x 3 − y 3 ∣ p = 2 p ) ( |x_3 - y_3|^p = 2^p ) (x3y3p=2p) 的增长速度远低于 ( 3 p ) ( 3^p ) (3p)。因此, ( ∣ x 1 − y 1 ∣ p ) ( |x_1 - y_1|^p ) (x1y1p) 在总和中占据主导地位。此时,整体的距离更依赖于最大值的坐标差,而对小的坐标差的贡献可以忽略不计。(开方为递增函数,可以削弱趋势,但改变不了趋势)

因此,当 ( p → ∞ ) ( p \to \infty ) (p) 时,闵式距离的计算会变为:

d ∞ = max ⁡ i ∣ x i − y i ∣ d_\infty = \max_{i} |x_i - y_i| d=imaxxiyi

也就是说,闵式距离的极限值就是所有坐标差中的最大值,这正是切比雪夫距离的定义。

( p → ∞ ) ( p \to \infty ) (p) 时,闵式距离变为切比雪夫距离的原因是:在极大的 ( p ) ( p ) (p) 下,较大的坐标差主导了距离的计算,而较小的坐标差对总和的贡献变得微不足道,从而使得闵式距离的计算结果转化为最大坐标差,即切比雪夫距离。

五. 总结

  • 欧几里得距离:沿直线的最短路径
  • 曼哈顿距离:移动只能沿着水平或垂直方向。
  • 切比雪夫距离:考虑沿任何方向的最大移动步数。
  • 闵式距离:一类距离度量的泛化形式

每种距离度量有不同的应用场景,选择合适的度量方式取决于具体问题的需求。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ComfyUI 矩阵测试指南:用三种方法,速优项目效果

在ComfyUI中,矩阵测试也叫xyz图表测试,作用是通过控制变量的方式来对Lora模型以及各种参数开展测试,并进行有效区分。其中测试方法有很多种,可以通过借助插件也可以自行搭建工作流实现,下面介绍3种方式: 1…

内存与缓存:保姆级图文详解

文章目录 前言1、计算机存储设备1.1、硬盘、内存、缓存1.2、金字塔结构1.3、数据流通过程 2、数据结构内存效率3、数据结构缓存效率 前言 亲爱的家人们,创作很不容易,若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的…

UllnnovationHub,一个开源的WPF控件库

目录 UllnnovationHub1.项目概述2.开发环境3.使用方法4.项目简介1.WPF原生控件1.Button2.GroupBox3.TabControl4.RadioButton5.SwitchButton6.TextBox7.PasswordBox8.CheckBox9.DateTimePicker10.Expander11.Card12.ListBox13.Treeview14.Combox15.Separator16.ListView17.Data…

【STM32-学习笔记-10-】BKP备份寄存器+时间戳

文章目录 BKP备份寄存器Ⅰ、BKP简介1. BKP的基本功能2. BKP的存储容量3. BKP的访问和操作4. BKP的应用场景5. BKP的控制寄存器 Ⅱ、BKP基本结构Ⅲ、BKP函数Ⅳ、BKP使用示例 时间戳一、Unix时间戳二、时间戳的转换(time.h函数介绍)Ⅰ、time()Ⅱ、mktime()…

Flowable 管理各业务流程:流程设计器 (获取流程模型 XML)、流程部署、启动流程、流程审批

文章目录 引言I 表结构主要表前缀及其用途核心表II 流程设计器(Flowable BPMN模型编辑器插件)Flowable-UIvue插件III 流程部署部署步骤例子:根据流程模型ID部署IV 启动流程启动步骤ACT_RE_PROCDEF:流程定义相关信息例子:根据流程 ID 启动流程V 流程审批审批步骤Flowable 审…

java根据模板导出word,并在word中插入echarts相关统计图片以及表格

引入依赖创建word模板创建ftl模板文件保存的ftl可能会出现占位符分割的问题,需要处理将ftl文件中的图片的Base64删除,并使用占位符代替插入表格,并指定表格的位置在图片下方 Echarts转图片根据模板生成word文档DocUtil导出word文档 生成的wor…

晨辉面试抽签和评分管理系统之十:如何搭建自己的数据库服务器,使用本软件的网络版

晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

Asp .Net Core 实现微服务:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现

什么是 Ocelot ? Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关,它可以与现有的服务集成,并帮助您保护、监控和扩展您的…

mongoose 支持https踩坑纪实

简述 mongoose是C编写的嵌入式web服务,它能够支持https协议,可以简单的部署,但要做到完美部署,不是那么容易。 部署方法 本人使用的是最新的7.16版,以前版本似乎是要通过修改 头文件中的 MG_ENABLE_SSL 宏定义&…

深入内核讲明白Android Binder【二】

深入内核讲明白Android Binder【二】 前言一、Binder通信内核源码整体思路概述1. 客户端向服务端发送数据流程概述1.1 binder_ref1.2 binder_node1.3 binder_proc1.4 binder_thread 2. 服务端的binder_node是什么时候被创建的呢?2.1 Binder驱动程序为服务创建binder…

玩转大语言模型——使用graphRAG+Ollama构建知识图谱

系列文章目录 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用graphRAGOllama构建知识图谱 文章目录 系列文章目录前言下载和安装用下载项目的方式下载并安装用pip方式下载并安装 生成知…

微透镜阵列精准全检,白光干涉3D自动量测方案提效70%

广泛应用的微透镜阵列 微透镜是一种常见的微光学元件,通过设计微透镜,可对入射光进行扩散、光束整形、光线均分、光学聚焦、集成成像等调制,进而实现许多传统光学元器件难以实现的特殊功能。 微透镜阵列(Microlens Array&#x…

新星杯-ESP32智能硬件开发--ESP32系统

本博文内容导读📕🎉🔥 1、ESP32芯片和系统架构进行描述,给出ESP32系统的地址映射规则。 2、介绍ESP32复位及时钟定时具体功能,方便后续开发。 3、介绍基于ESP32开发板使用的底层操作系统,对ESP32应用程序开…

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)图像变换

形态变换 图像处理中的形态学操作是处理图像结构的有效方法。以下是一些常见的形态学操作的介绍及其在 OpenCV 中的实现示例。 1. 腐蚀(Erosion) 腐蚀操作通过消除图像边界来减少图像中的白色区域(前景),使物体的边…

Linux 音视频入门到实战专栏(视频篇)视频编解码 MPP

文章目录 一、MPP 介绍二、获取和编译RKMPP库三、视频解码四、视频编码 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍如何调用alsa api来进行音频数据的播放和录制。 一、MPP 介绍 瑞芯微提供的媒体处理软件平台…

阿里云通义实验室自然语言处理方向负责人黄非:通义灵码2.0,迈入 Agentic AI

通义灵码是基于阿里巴巴通义大模型研发的AI 智能编码助手,在通义灵码 1.0 时代,我们针对代码的生成、补全和问答,通过高效果、低时延,研发出了国内最受欢迎的编码助手。 在通义灵码 2.0 发布会上,阿里云通义实验室自然…

Linux网络_套接字_UDP网络_TCP网络

一.UDP网络 1.socket()创建套接字 #include<sys/socket.h> int socket(int domain, int type, int protocol);domain (地址族): AF_INET网络 AF_UNIX本地 AF_INET&#xff1a;IPv4 地址族&#xff0c;适用于 IPv4 协议。用于网络通信AF_INET6&#xff1a;IPv6 地址族&a…

endnote x9 如何将参考文献和文中的应用格式由annotated变为编码,例[1],[2]

在 EndNote X9 中&#xff0c;将参考文献和文中引用格式更改为编码形式&#xff08;如 [1], [2]&#xff09;需要以下步骤&#xff1a; 1. 选择合适的输出样式 打开 EndNote X9。点击菜单栏的 "Edit" > "Output Styles" > "Open Style Manage…

用户中心项目教程(二)---umi3的使用出现的错误

目录 1.情况的说明 2.遇到的问题 1&#xff09;第一个问题-关于npx的使用 2&#xff09;第二个问题--unsupport问题 3&#xff09;第三个收获--nodejs安装问题 4&#xff09;第四个收获---nvm下载问题 5&#xff09;第五个问题--尚未解决的问题 3.个人总结 1.情况的说明…

【面试宝典】Java中创建线程池的几种方式以及区别

强烈推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站:人工智能 创建线程池有多种方式&#xff0c;主要通过 Java 的 java.util.concurrent 包提供的 Executors 工具类来实现。以下是几…