各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵...

article/2025/9/24 15:06:44

1. 欧氏距离(Euclidean Distance)

欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。

欧氏距离

  • 二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离:

欧氏距离2维

  • 三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:

欧氏距离3维

  • n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量):

欧氏距离n维

  • Matlab计算欧氏距离:

Matlab计算距离使用pdist函数。若X是一个m×n的矩阵,则pdist(X)将X矩阵每一行作为一个n维行向量,然后计算这m个向量两两间的距离。

2. 曼哈顿距离(Manhattan Distance)

顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。

曼哈顿距离

  • 二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离:

曼哈顿距离2维

  • n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:

曼哈顿距离n维

  • Matlab计算曼哈顿距离:

3. 切比雪夫距离 (Chebyshev Distance)

国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。

切比雪夫距离_国际象棋

  • 二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离:

切比雪夫距离2维

  • n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的切比雪夫距离:

切比雪夫距离n维

  • Matlab计算切比雪夫距离:

4. 闵可夫斯基距离(Minkowski Distance)

闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。

  • 闵氏距离定义:
  • 两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:

闵式距离n维

其中p是一个变参数:

当p=1时,就是曼哈顿距离;

当p=2时,就是欧氏距离;

当p→∞时,就是切比雪夫距离。

因此,根据变参数的不同,闵氏距离可以表示某一类/种的距离。

  • 闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点。
  • e.g. 二维样本(身高[单位:cm],体重[单位:kg]),现有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c的闵氏距离。但实际上身高的10cm并不能和体重的10kg划等号。
  • 闵氏距离的缺点:
  • (1)将各个分量的量纲(scale),也就是“单位”相同的看待了;
  • (2)未考虑各个分量的分布(期望,方差等)可能是不同的。

  • Matlab计算闵氏距离(以p=2的欧氏距离为例):

5. 标准化欧氏距离 (Standardized Euclidean Distance)

 定义: 标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。假设样本集X的均值(mean)为m,标准差(standard deviation)为s,X的“标准化变量”表示为:

标准化欧氏距离

  • 标准化欧氏距离公式:

标准化欧氏距离公式

如果将方差的倒数看成一个权重,也可称之为加权欧氏距离(Weighted Euclidean distance)。

  • Matlab计算标准化欧氏距离(假设两个分量的标准差分别为0.5和1):

6. 马氏距离(Mahalanobis Distance)

 马氏距离的引出:

马氏距离来源

上图有两个正态分布的总体,它们的均值分别为a和b,但方差不一样,则图中的A点离哪个总体更近?或者说A有更大的概率属于谁?显然,A离左边的更近,A属于左边总体的概率更大,尽管A与a的欧式距离远一些。这就是马氏距离的直观解释。

  • 概念:马氏距离是基于样本分布的一种距离。物理意义就是在规范化的主成分空间中的欧氏距离。所谓规范化的主成分空间就是利用主成分分析对一些数据进行主成分分解。再对所有主成分分解轴做归一化,形成新的坐标轴。由这些坐标轴张成的空间就是规范化的主成分空间。

马氏距离概念

  • 定义:有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到μ的马氏距离表示为:

马氏距离公式

向量Xi与Xj之间的马氏距离定义为:

马氏距离公式

若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则Xi与Xj之间的马氏距离等于他们的欧氏距离:

马氏距离公式

若协方差矩阵是对角矩阵,则就是标准化欧氏距离。

  • 欧式距离&马氏距离:

欧式距离&马氏距离

欧式距离&马氏距离

  • 马氏距离的特点:
  • 量纲无关,排除变量之间的相关性的干扰;
  • 马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;
  • 计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。
  • Matlab计算马氏距离:

7. 余弦距离(Cosine Distance)

几何中,夹角余弦可用来衡量两个向量方向的差异;机器学习中,借用这一概念来衡量样本向量之间的差异。

  • 二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:

余弦距离

  • 两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦为:

余弦距离

即:

余弦距离

夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。

  • Matlab计算夹角余弦(Matlab中的pdist(X, ‘cosine’)得到的是1减夹角余弦的值):

8. 汉明距离(Hamming Distance)

汉明距离

  • 定义:两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。例如:

  • 汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。因此,如果向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。

  • 应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。

  • Matlab计算汉明距离(Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比):

9. 杰卡德距离(Jaccard Distance)

杰卡德相似系数(Jaccard similarity coefficient):两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示:

杰卡德相似系数

  • 杰卡德距离(Jaccard Distance):与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:

杰卡德距离

  • Matlab计算杰卡德距离(Matlab中将杰卡德距离定义为不同的维度的个数占“非全零维度”的比例):

10. 相关距离(Correlation distance)

相关系数示意图

  • 相关系数:是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关):

相关系数

  • 相关距离:

相关距离

  • Matlab计算相关系数与相关距离:

11. 信息熵(Information Entropy)

 以上的距离度量方法度量的皆为两个样本(向量)之间的距离,而信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。

信息熵公式

  • 信息熵的由来:请参考博客:XXXXXXXX。

  • 计算给定的样本集X的信息熵的公式:

信息熵公式

参数的含义:

n:样本集X的分类数

pi:X中第 i 类元素出现的概率

信息熵越大表明样本集S的分布越分散(分布均衡),信息熵越小则表明样本集X的分布越集中(分布不均衡)。当S中n个分类出现的概率一样大时(都是1/n),信息熵取最大值log2(n)。当X只有一个分类时,信息熵取最小值0。

转载于:https://www.cnblogs.com/AlvinSui/p/8931074.html


http://chatgpt.dhexx.cn/article/WqR8PKO2.shtml

相关文章

常用的相似度计算方法----欧式距离、曼哈顿距离、马氏距离、余弦、汉明距离、切比雪夫距离、闵可夫斯基距离、马氏距离

在深度学习以及图像搜索中,经常要对特征值进行比对,得到特征的相似度,常见的特征值比对方法有汉明距离、余弦距离、欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、马氏距离等,下面对各种比对方法分别进行介绍。 目录 1汉…

机器学习部分:距离的度量(欧氏距离,曼哈顿距离,夹角余弦距离,切比雪夫距离,汉明距离,闵可夫斯基距离,马氏距离)

目录 距离计算方法 1.欧式距离EuclideanDistance 2. 曼哈顿距离(ManhattanDistance) 3. 夹角余弦 4.切比雪夫距离(Chebyshevdistance) 5. 汉明距离(Hamming Distance) 6. 闵可夫斯基距离(Minkowski Distance) 7. 马氏距离(Mahalanobis Distance)…

【大数据】曼哈顿距离 欧几里得距离 与 闵可夫斯基距离Minkowski Manhattan Euclidean

这里写目录标题 闵可夫斯基距离曼哈顿距离欧几里得距离 e . g . e.g. e.g. 曼哈顿距离与欧几里得距离 三种距离计算算法 闵可夫斯基距离 闵可夫斯基距离(Minkowski Dis) ,是 曼哈顿距离(Manhattan Dis) 与 欧几里得距离(Euclidean Dis) 的一般形式。一般不常直接使…

样本相似性度量(欧几里得距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离)

样本相似性度量(欧几里得距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离) 在分类过程中,常常需要估算不同样本直接的 Similarity Measurement (相似性度量)。 此时常用的方法就是计算两个样本直接…

机器学习聚类算法中的闵可夫斯基距离

最近闲着没事了解一下聚类算法,闵可夫斯基距离真有趣,搞得我有点一头雾水,废话不多,上定义: 本文从公式上表述了欧几里得距离、曼哈顿距离、切比雪夫距离记忆闵可夫斯基距离之间的关系。 一般而言,定义一…

距离度量:欧式距离/曼哈顿距离/切比雪夫距离/闵可夫斯基距离/标准化欧氏距离/余弦距离/汉明距离/杰卡德距离/马氏距离

日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 2 常见的距离公式 2.1 欧式距离(Euclidean Distance): 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接…

欧式距离余弦相似度matlab,相似度计算——欧氏距离,曼哈顿距离,闵可夫斯基距离,汉明距离,夹角余弦...

在机器学习领域,被俗称为距离,却不满足三条距离公理的不仅仅有余弦距离(满足正定性和对称性,但是不满足三角不等式),还有KL距离( Kulback- Leibler Divergence),也叫作相对熵(不满足对称性和三角不等式),它常用于计算两个分布之间的差异 欧氏距离 欧氏距离: 切比雪夫距离…

闵可夫斯基距离

本文从公式上表述了欧几里得距离、曼哈顿距离、切比雪夫距离记忆闵可夫斯基距离之间的关系。 一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则: 1) d(x,x) 0 // 到自己的距离为0 2) d(x,y) > 0 // 距离非负 3) d(x,y) d(y,x) // 对称…

闵可夫斯基距离(MinkowskiDistance)

闵可夫斯基距离(MinkowskiDistance) 闵氏距离不是一种距离,而是一组距离的定义。 (1)闵氏距离的定义 两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为: 其中p是一个变参数。 当p1时,就是曼哈顿距离 当p2时&#xf…

Linux操作系统概述

Linux操作系统概述 Linux发展历史Linux的发展要素Linux与UNIX的异同操作系统类型选择和内核版本的选择Linux的系统架构 Linux内核的主要模块Linux的文件结构 Linux发展历史 Linux操作系统于1991年诞生,目前已经成为主流的操作系统之 一 。其版本从开始的0.01版本到…

国产Linux操作系统

一、Kylin OS:由麒麟软件公司发行的Debian系Linux操作系统。 包含四个版本: 1、银河Kylin:为银河麒麟Linux操作系统收费版本。 2、Neo Kylin:是中标麒麟,为麒麟软件与中标软件合并后的发行版本。 3、Open Kylin&…

Linux【操作系统】

目录 一、冯诺依曼体系结构 ​ 二、操作系统​ 三、进程 ​ 1.PCB ​ 2.task_ struct内容分类 ​ 3.查看进程​​​​​​​​ 4.getpid​ 5.系统调用接口和创建子进程 6.fork基本用法 四、进程状态 进程状态查看 Z(zombie)-僵尸进程 僵尸进程危害 孤儿进程 …

理解操作系统(Linux)

操作系统是一款对软硬件资源进行管理的软件! 操作系统为什么要对软硬件资源进行管理呢? 操作系统通过合理的管理软硬件资源的手段,为用户提供良好的(稳定的、高效的、安全的)执行环境。 操作系统是如何进行管理的呢…

【Linux操作系统】——Linux命令

文章目录 Linux系统命令登录注销目录文件补充ls通配符rm命令cp命令more命令less命令vi命令文件压缩以及解压 Linux系统命令 Windows系统中查看当前电脑的IP地址 ipconfig 在Linux系统中查看当前电脑的IP地址 ifconfig 登录注销 sudo useradd ccy //添加用户 (不能被立即使用…

Linux操作系统基础(完结)

#摘要 一、Linux操作系统概述 二、Linux操作系统安装 三、Linux文件系统及文件基础 四、Linux操作系统命令使用基础 五、Linux应用程序的安装与卸载基础 五、用户及进程 六、相关信息查询 七、网络配置 八、Linux应用程序的安装与卸载基础 #一、Linux操作系统概述 ##1、发展 …

Linux:操作系统

Linux-操作系统 一、操作系统:1.程序:2.OS: 二、虚拟机的三种网卡:1.桥接:2.NAT:3.仅主机: 三、linux命令:1.shell:2.linux命令(本质是程序)&…

Linux——操作系统详解

目录 一.操作系统的含义 1.操作系统是什么? 2.那么操作系统为什么要对软硬件资源进行管理呢?这样做的好处在哪里? 3.操作系统又是怎么进行管理的? 如何理解“先描述,再组织”? 二.总结: …

linux操作系统的基本认识

1.linux是什么东西? linux是什么?它是操作系统吗?我刚开始学这个东西的时候也不太清楚,只是听别人说linux操作系统什么的。那linux到底是什么?我们来认识一下: Linux是最知名和最常用的开源操作系统。作为一…

Linux操作系统的发展

一、计算机的发展历程 1.计算机的起源 在开始讲解计算机的历史前,我们需要认识到人和动物最大的区别在于人是会使用工具的。从饮血茹毛到使用火烧熟食物,工具的使用给对于人类发展的作用是巨大的。同样,计算机也是工具,为我们的…

Linux操作系统介绍

##一. 什么是Linux? ## 1.什么是Linux: Linux是一款广泛应用在服务器上的操作系统。 2.什么是操作系统: 操作系统是硬件基础上的第一层软件, 应用软件都需要安装到操作系统上使用。 3.Linux的特点: 安全免费开源稳定…