欧式距离、标准化欧式距离、马氏距离、余弦距离
目录
- 欧氏距离
- 标准化欧氏距离
- 马氏距离
- 夹角余弦距离
- 汉明距离
- 曼哈顿(Manhattan)距离
1.欧式距离
欧式距离源自N维欧氏空间中两点x1,x2x1,x2间的距离公式:
2.标准化欧式距离
引入标准化欧式距离的原因是一个数据xixi的各个维度之间的尺度不一样。
【对于尺度无关的解释】如果向量中第一维元素的数量级是100,第二维的数量级是10,比如v1=(100,10,30),v2 = (500,40),则计算欧式距离
![](/assets/blank.gif)
可见欧式距离会给与第一维度100权重,这会压制第二维度的影响力。对所有维度分别进行处理,使得各个维度分别满足标准正态分布。
还有一种对欧式距离的处理是均值化但没有归一化(Normalized),即
![](/assets/blank.gif)
其中 s2isi2 是第i维度的方差(此处虽然举例只有X,Y两个点,但整个数据集中会有无数个点,根据数据集得到方差分布)
网络上的Normalized Euclidean distance和Standard Euclidean distance的定义对应这两种处理。
3.马氏距离、标准化欧式距离(Standard Euclidean distance)
标准化欧式距离即是将集合X={xi}X={xi}先进行归一化,映射到正太分布N(0,1)的区间:
xipost=(xi−u)/sxipost=(xi−u)/s
其中u为均值,s2s2为方差。
其实,这就是马氏距离要做的事。马氏距离的结果也是将数据投影到N(0,1)区间并求其欧式距离。
马氏距离又称为数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与标准化欧氏距离不同的是它考虑到各种特性之间的联系。
假设uxux为向量X={x1,x2,...,xN}X={x1,x2,...,xN}的均值,uyuy为Y={y1,y2,...yN}Y={y1,y2,...yN}的均值,ΣΣ 是X与Y的协方差
点X与Y的马氏距离:
![](/assets/blank.gif)
这个式子可以用矩阵的迹来重写:
![](/assets/blank.gif)
其中 ΣΣ 是X与Y的协方差矩阵
可见:
如果 ΣΣ 是单位矩阵,则马氏距离退化成欧式距离;
如果 ΣΣ 是对角矩阵,则称为归一化后的欧式距离。
所以马氏距离的特点:
- 尺度无关
- 考虑进数据之间的联系
马氏距离可以通过协方差自动生成相应的权重,而使用逆则抵消掉这些权重。
最典型的就是根据距离作判别问题,即假设有n个总体,计算某个样品X归属于哪一类的问题。此时虽然样品X离某个总体的欧氏距离最近,但是未必归属它,比如该总体的方差很小,说明需要非常近才能归为该类。对于这种情况,马氏距离比欧氏距离更适合作判别。
比如下图表示男女两类身高和体重的采样数据,假如男和女先验分布已知,可以用马氏距离判别新的数据。
4.夹脚余弦距离(余弦相似性)
严格来讲余弦距离不是距离,而只是相似性。其他距离直接测量两个高维空间上的点的距离,如果距离为0则两个点“相同”,但余弦的结果为1,只能确定两者高度相似。
从几何上看,n维向量空间的一条线段作为底边和原点组成的三角形,其顶角大小是不确定的。对于两条空间向量,即使两点距离一定,他们的夹角余弦值也可以随意变化。
假设两用户只对两件商品评分,向量分别为(3,3)和(5,5),这两位用户的认知其实是一样的,但是欧式距离给出的解显然没有余弦值合理。
相对于标准化后的欧式距离,余弦距离少了将数据投影到一个均值为0的区间里这一步骤。对于点X和点Y,其余弦距离:
![](/assets/blank.gif)
余弦距离在给文本分类的词袋模型中使用,例如给一篇文章一共出现过6000个词;因此用一个6000维度的向量X表示这篇文章,每个维度代表字出现数目。另外一篇文章也恰好只出现了这6000字并用向量Y表示该文章,则这两篇文章相似度可以用余弦距离来测量。
优点:余弦距离根据向量方向重合度来判断向量相似度,不受样本
缺点:没有对每个维度进行0均值化处理,如在图片分类中一张图片受光照影响后,前后的余弦距离可能就非常大了。
5.汉明距离
汉明距离是两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。比如:
1011101 与 1001001 为 2
2143896 与 2233796 是 3
可以把它看做将一个字符串变换成另外一个字符串所需要替换的字符个数。
此外,汉明重量是字符串相对于同样长度的零字符串的汉明距离,如:
11101 的汉明重量是 4。
所以两者间的汉明距离等于它们汉明重量的差a-b
6.曼哈顿距离 (Manhattan distance)
曼哈顿距离的定义如下:
![](/assets/blank.gif)
p是I的维度。当I为图像坐标时,曼哈顿距离即是x,y坐标距离之和。
【补充】协方差矩阵的逆Σ−1Σ−1的求法:
先将ΣΣ进行SVD分解(由于协方差矩阵是对称矩阵,因此此处严格说来是特征值分解EVD)。
由于协方差矩阵是对称的,
![](/assets/blank.gif)
上式中,由于U是正交矩阵,可以将其视作旋转矩阵,对向量X,Y进行旋转;再对其除以特征值,可以视作尺度处理。这两者的结果就是将数据处理旋转并缩放到一个标准化的空间里去。
Reference:
[1]马氏距离及其几何解释
http://www.weixinnu.com/tag/article/1082683923
[2]欧氏距离和余弦相似度的区别是什么?
https://www.zhihu.com/question/19640394
csdn 公式编辑 转换
http://private.codecogs.com/latex/eqneditor.php
欧式距离、标准化欧式距离、马氏距离、余弦距离相关推荐
- 距离度量:闵氏、欧式、马氏、余弦、汉明等
目录 1. 闵氏距离(Minkowski Distance) 2. 欧式距离(Euclidean Distance) 3. 标准化欧式距离(Standardized Euclidean distanc ...
- 十种距离计算公式及Python简单实践(余弦距离、欧式距离、jaccard距离等)
一.余弦距离 形式化描述: 余弦夹角也可以叫余弦相似度.几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异. 余弦取值范围为[-1,1].求得两个向量的夹角,并 ...
- 距离度量方式(马氏距离,欧式距离,曼哈顿距离)
- K邻近算法概述、欧式距离、Scikit-learn使用 、kNN邻近算法距离度量、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离、余弦距离、汉明距离、杰卡德距离、马氏距离
一.K-邻近算法概述 K邻近算(K Nearest Neighbor算法,KNN算法):如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别 ...
- 马氏距离和欧式距离详解
一般在机器学习模型中会涉及到衡量两个样本间的距离,如聚类.KNN,K-means等,使用的距离为欧式距离.其实,除了欧氏距离之外,还有很多的距离计算标准,本文主要介绍欧氏距离和马氏距离. 欧氏距离 最 ...
- 多元统计分析——欧式距离和马氏距离
在一元的情形中,定义两个点和之间的距离: 两者作差的绝对值,我们称为欧式距离. 经过标准化的作差绝对值,我们称为统计距离,或者标准化过后的距离.其中,代表样本的标准差. 在多元的情形中,假设我们有两个 ...
- 简单粗暴理解与实现机器学习之K-近邻算法(三):距离度量、欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化距离、余弦距离、汉明距离、杰卡德距离、马氏距离
K-近邻算法 文章目录 K-近邻算法 学习目标 1.3 距离度量 1 欧式距离**(Euclidean Distance):** 2 **曼哈顿距离(Manhattan Distance):** 3 ...
- 马氏距离详解(数学原理、适用场景、应用示例代码)
看了很多关于马氏距离(Mahalanobis Distance)的介绍,但是总感觉有一些地方不太清晰,所以结合数学公式.机器学习中的应用案例,从头梳理一下. 马氏距离实际上是欧氏距离在多变量下的&qu ...
- 马氏距离(Mahalanobis Distance)介绍与实例
本文介绍马氏距离(Mahalanobis Distance),通过本文,你将了解到马氏距离的含义.马氏距离与欧式距离的比较以及一个通过马氏距离进行异常检测的例子(基于Python的sklearn包). ...
- 浅谈马氏距离【Mahalonobis Distance】
浅谈马氏距离[Mahalonobis Distance] 1. Introduction 2. 欧式距离对于多元数据会存在一些什么问题? 3 .什么是马氏距离 4.马氏距离背后的数学和intuitio ...
最新文章
- sklearn API快速上手
- 智能车竞赛技术报告 | 单车拉力组-大连海事大学-同舟拾队
- 不是程序员也能看懂的ZCash零知识证明
- python url配置单独放在某个应用目录中
- 一个java小程序运行结果图_编写以下程序,并上传源代码和运行结果截图,附件中上传java源程序。...
- stm32的语音识别_基于stm32循迹避障语音控制金属探测蓝牙小车设计(原理图+pcb+源码+参考文档)...
- 慧林系统多服务器授权,慧林虚拟主机管理系统
- 批处理for循环命令初步学习
- im即时通讯开发:万人群聊技术方案实践
- CBAM、通道注意力、空间注意力学习
- pl330 dmac驱动分析1--数据结构
- java 文本文件加密 文本文件解密
- Altium Designer 19简易教程(原理图的绘制)
- 通俗理解光猫、网关、路由器、交换机
- 天津大学计算机系专业,请问天大计算机专业的研究生怎么样啊?
- 智能手表能测新冠?你的Fitbit可能是一个全功能脉搏血氧计
- Hibernate简单配置
- php 竞拍系统,基于PHP+Mysql的校园商品拍卖系统
- Android Studio的Android Device Monitor在哪儿?
- 【玩转华为云】手把手教你利用ModelArts识别偶像的声音