各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵...
1. 欧氏距离(Euclidean Distance)
欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。
- 二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离:
- 三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:
- n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量):
- Matlab计算欧氏距离:
Matlab计算距离使用pdist函数。若X是一个m×n的矩阵,则pdist(X)将X矩阵每一行作为一个n维行向量,然后计算这m个向量两两间的距离。
2. 曼哈顿距离(Manhattan Distance)
顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。
- 二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离:
- n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:
Matlab计算曼哈顿距离:
3. 切比雪夫距离 (Chebyshev Distance)
国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。
- 二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离:
- n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的切比雪夫距离:
Matlab计算切比雪夫距离:
4. 闵可夫斯基距离(Minkowski Distance)
闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。
- 闵氏距离定义:
- 两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:
其中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
各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵...相关推荐
- 距离度量:闵氏、欧式、马氏、余弦、汉明等
目录 1. 闵氏距离(Minkowski Distance) 2. 欧式距离(Euclidean Distance) 3. 标准化欧式距离(Standardized Euclidean distanc ...
- 三维马氏距离_各种距离(欧氏距离、曼哈顿距离、切比雪夫距离、马氏距离等)...
引用:http://blog.csdn.net/shiwei408/article/details/7602324 在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurem ...
- 欧式距离、标准化欧式距离、马氏距离、余弦距离
目录 欧氏距离 标准化欧氏距离 马氏距离 夹角余弦距离 汉明距离 曼哈顿(Manhattan)距离 1.欧式距离 欧式距离源自N维欧氏空间中两点x1,x2x1,x2间的距离公式: 2.标准化欧式距离 ...
- 欧式距离和马氏距离的关系(公式推导)
欧氏距离(Euclidean Distance)与马氏距离(Mahalanobis Distance) 欧氏距离 度量样本和样本分布间的距离d(x,μ)=(x−μ)T(x−μ)\begin{align ...
- 欧式距离与马氏距离比较
最近在研究BM3D算法,常用的是欧式距离,但是欧式距离缺点较多,查阅资料后,找到了马氏距离,因此,转载记录此篇,便于之后的学习. 欧氏距离(Euclidean distance)也称欧几里得度量.欧几 ...
- 机器学习中的数学——距离定义(六):马氏距离(Mahalanobis Distance)
分类目录:<机器学习中的数学>总目录 相关文章: · 距离定义:基础知识 · 距离定义(一):欧几里得距离(Euclidean Distance) · 距离定义(二):曼哈顿距离(Manh ...
- 浅谈马氏距离【Mahalonobis Distance】
浅谈马氏距离[Mahalonobis Distance] 1. Introduction 2. 欧式距离对于多元数据会存在一些什么问题? 3 .什么是马氏距离 4.马氏距离背后的数学和intuitio ...
- 曼哈顿距离,欧式距离,明式距离,切比雪夫距离以及马氏距离
1.曼哈顿距离 曼哈顿距离又称Manhattan distance,还见到过更加形象的,叫出租车距离的.具体贴一张图,应该就能明白. 上图摘自维基百科,红蓝黄皆为曼哈顿距离,绿色为欧式距离. 2.欧式 ...
- 数据的距离度量 一、欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离
数据的距离度量 一.欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离 前言 欧式距离 标准欧式距离 曼哈顿距离 闵氏距离 切比雪夫距离 兰氏距离 马氏距离 前言 本篇记录一下常用的数据 ...
最新文章
- Galgame研发日志:那么,怎么才能回本呢?
- [网络流24题] 航空路线问题 (费用流)
- python模拟购物车购物过程_Python基于数列实现购物车程序过程详解
- C#中ToString格式大全
- Linux 安装 配置 Maven
- ORACLE sqlplus设置行数和宽度
- 深入理解计算机系统1——计算机系统漫游
- mysql 类似plsql 软件_推荐一款PG数据库管理工具——pgadmin,一款类似PLSQL的工具...
- c++ xml 解析“后直接跟值问题
- 蛙蛙推荐:在c#使用IOCP(完成端口)的简单示例
- 英语----情态动词---半情态动词
- matlab损耗函数曲线,MATLAB 损失函数画图
- 鲸会务手把手教您线上年会抽奖怎么玩
- 学考计算机fix怎么取消,学考XK-80科学型计算器的使用说明.ppt
- 当今主流软件产品家族及其开发语言
- ORACLE 错误 904
- gateway解决过滤器response返回中文乱码
- 谷歌浏览器打开默认变成360导航
- 试题 基础练习 数列排序
- 如何使用python编程抢京东优惠券 知乎_小猿圈Python之实现京东秒杀功能技巧
热门文章
- python变成exe1023无标题_GitHub - Qing1023/Python-100-Days: Python - 100天从新手到大师
- .net cf wince 贝兹 曲线图
- 一元线性回归方程的参数估计
- 根文件系统rootfs构建
- VxWorks6.7新建bootrom工程
- qcustomplot x轴当前时间_Qt使用QCustomPlot开发
- Android答题计时的代码,Android答题倒计时
- python绿色蓝色代表什么_蓝绿黄车牌识别(Python)
- ffmpeg sdk 视频合成 音视频截取
- Three——二、加强对三维空间的认识