整理距离度量
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
马哈拉诺比斯距离 Mahalanobis Distance
• 既然欧几里得距离无法忽略指标度量的差异,所以在 使用欧氏距离之前需要对底层指标进行数据的标准化, 而基于各指标维度进行标准化后再使用欧氏距离就衍 生出来另外一个距离度量——马哈拉诺比斯距离 (Mahalanobis Distance),简称马氏距离。
汉明距离 Hamming Distance
(1)汉明距离的定义 两个等长字符串s1与s2之间的汉明距离定义为将其中一 个变为另外一个所需要作的最小替换次数。例如字符串 “1111”与“1001”之间的汉明距离为2。 应用:信息编码(为了增强容错性,应使得编码间的最 小汉明距离尽可能大)。
汉明距离 Hamming Distance
切比雪夫距离 Chebyshev Distance
• 切比雪夫距离起源于国际象棋中国王的走法,我们知道国 际象棋国王每次只能往周围的8格中走一步,那么如果要 从棋盘中A格(x1, y1)走到B格(x2, y2)最少需要走 几步?最少步数总是max( | x2-x1 | , | y2-y1 | ) 步。 • 扩展到多维空间,其实切比雪夫距离就是当p趋向于无穷 大时的明氏距离:
(2)Matlab计算汉明距离 Matlab中2个向量之间的汉明距离的定义为2个向量不同的 分量所占的百分比。 例子:计算向量(0,0)、(1,0)、(0,2)两两间的汉明距离 X = [0 0 ; 1 0 ; 0 2]; D = pdist(X, 'hamming') 结果: D= 0.5000 0.5000 1.0000
曼哈顿距离 Manhattan Distance
• 又叫城市街区距离(City Block distance)、棋盘距离。 • 我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块 距离,也就是在欧几里德空间的固定直角坐标系上两点所 形成的线段对轴产生的投影的距离总和。 • 例如在平面上,坐标(x1, y1)的点P1与坐标(x2, y2)的 点P2的曼哈顿距离为: |x1 - x2| + |y1 - y2| • 要注意的是,曼哈顿距离依赖坐标系统的转度,而非系统 在坐标轴上的平移或映射。
明可夫斯基距离 Minkowski Distance
• 又称明氏距离,或闵式距离
• 明氏距离是欧氏距离的推广,是对多个距离度量公式的 概括性的表述。 • 明氏距离不是一种距离,而是一组距离的定义。
明可夫斯基距离 Minkowski Distance
(1) 明氏距离的定义 • 两个n维变量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的明可 夫斯基距离定义为:
马哈拉诺比斯距离 Mahalanobis Distance
(1)马氏距离定义 有M个样本向量X1~Xm,协方差矩阵记为S,均值记 为向量μ,则其中样本向量X到u的马氏距离表示为:
而其中向量Xi与Xj之间的马氏距离定义为:
马哈拉诺比斯距离 Mahalanobis Distance
若协方差矩阵是单位矩阵(各个样本向量之间独立同分 布),则公式就成了:
标准化欧氏距离 Standardized Euclidean Distance
(1)标准欧氏距离的定义 标准化欧氏距离是针对简单欧氏距离的缺点而作的一种 改进方案。标准欧氏距离的思路:既然数据各维分量的分 布不一样,好吧!那我先将各个分量都“标准化”到均值、 方差相等吧。均值和方差标准化到多少呢?这里先复习点 统计学知识吧,假设样本集X的均值(mean)为m,标准差 (standard deviation)为s,那么X的“标准化变量”表示为: 而且标准化变量的数学期望为0,方差为1。因此样本集的 标准化过程(standardization)用公式描述就是:
欧几里得距离 Euclidean Distance
欧氏距离是最常见的距离度量,衡量的是多维空间中各 个点之间的绝对距离。公式如下:
(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离:
欧几里得距离 Euclidean Distance
(2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:
(1)二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离
(2)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间 的曼哈顿距离
曼哈顿距离 Manhattan Distance
(3) Matlab计算曼哈顿距离 例子:计算向量(0,0)、(1,0)、(0,2)两两间的曼哈顿距离 X = [0 0 ; 1 0 ; 0 2] D = pdist(X, 'cityblock') 结果: D= 1 2 3
标准化欧氏距离 Standardized Euclidean Distance
• 标准化后的值 = ( 标准化前的值 - 分量的均值 ) / 分量的标准差 • 经过简单的推导就可以得到两个n维向量 a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的标准化欧氏 距离的公式:
• 如果将方差的倒数看成是一个权重,这个公式可以 看成是一种加权欧氏距离(Weighted Euclidean distance)。
距离度量与相似度度量
距离度量分类
• • • • • • • • • • • 欧几里得距离(Euclidean Distance) 标准化欧氏距离(Standardized Euclidean distance) 曼哈顿距离(Manhattan Distance) 切比雪夫距离(Chebyshev Distance) 明可夫斯基距离(Minkowski Distance) 马哈拉诺比斯距离(Mahalanobis Distance) 汉明距离(Hamming Distance) 杰卡德距离(Jaccard Distance) 相关距离( Correlation Distance ) hausdorff距离 Earth Mover’s distance
标准化欧氏距离 Standardized Euclidean Distance
(2)Matlab计算标准化欧氏距离 例子:计算向量(0,0)、(1,0)、(0,2)两两间的标准化欧氏 距 离 (假设两个分量的标准差分别为0.5和1) X = [0 0 ; 1 0 ; 0 2] D = pdist(X, 'seuclidean',[0.5,1]) 结果: D= 2.0000 2.0000 2.8284
也就是欧氏距离了。 若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。 (2)马氏距离的优缺点: 量纲无关,排除变量之间的相关性的干扰。
马哈拉诺比斯距离 Mahalanobis Distance
(3) Matlab计算(1 2),( 1 3),( 2 2),( 3 1)两两之间的马氏距 离 X = [1 2; 1 3; 2 2; 3 1] Y = pdist(X,'mahalanobis') 结果: Y= 2.3452 2.0000 2.3452 1.2247 2.4495 1.2247
(3)Matlab计算欧氏距离 Matlab计算距离主要使用pdist函数。若X是一个M×N的 矩阵,则pdist(X)将X矩阵M行的每一行作为一个N维向量, 然后计算这M个向量两两间的距离。
欧几里得距离 Euclidean Distance
例子:计算向量(0,0)、(1,0)、(0,2)两两间的欧式距离 X = [0 0 ; 1 0 ; 0 2] D = pdist(X,'euclidean') 结果: D= 1.0000 2.0000 2.2361
明可夫斯基距离 Minkowski Distance
简单说来,明氏距离的缺点主要有两个: (1)将各个分量的量纲(scale),也就是“单位”当作相同的看 待了。
(2)没有考虑各个分量的分布(期望,方差等)可能是不同的。
明可夫斯基距离 Minkowski Distance
(3)Matlab计算明氏距离 例子:计算向量(0,0)、(1,0)、(0,2)两两间的闵氏距 离(以变参 数为2的欧氏距离为例) X = [0 0 ; 1 0 ; 0 2] D = pdist(X,'minkowski',2) 结果: D= 1.0000 2.0000 2.2361
欧几里得距离 Euclidean Distance
• 又称欧式距离,欧氏距离是最易于理解的一种距离计算方 法,源自欧氏空间中两点间的距离公式。 • 先设定我们要比较X个体和Y个体间的差异,它们都包含了 N个维的特征,即X=(x1, x2, x3, … xn),Y=(y1, y2, y3, … yn)。 • 因为计算是基于各维度特征的绝对数值,所以欧氏度量需 要保证各维度指标在相同的刻度级别,比如对身高(cm) 和体重(kg)两个单位不同的指标使用欧式距离可能使结 果失效。 • 对于距离度量,距点(x,y)的距离小于或等于某一值r的像 素是中心在(x,y)且半径为r的圆平面。
切比雪夫距离 Chebyshev Distance
(1)二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离:
(2)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的切比 雪夫距离:
切比雪夫距离 Chebyshev Distance
(3)Matlab计算切比雪夫距离 例子:计算向量(0,0)、(1,0)、(0,2)两两间的切比雪夫距离 X = [0 0 ; 1 0 ; 0 2] D = pdist(X, 'chebychev') 结果: D= 1 2 2
• 其中p是一个变参数。根据变参数的不同,闵氏距离可以 表示一类的距离。 • 当p=1时,就是曼哈顿距离 • 当p=2时,就是欧氏距离 • 当p→∞时,就是切比雪夫距离
明可夫斯基距离 Minkowski Distance
(2)明氏距离的缺点 • 明氏距离,包括曼哈顿距离、欧氏距离和切比雪夫 距离都存在明显的缺点。 • 举个例子:二维样本(身高,体重),其中身高范围是 150~190,体重范围是50~60,有三个样本: a(180,50),b(190,50),c(180,60)。那么a与b之间的明 氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫 距离)等于a与c之间的明氏距离,但是身高的10cm 真的等价于体重的10kg么?因此用明氏距离来衡量 这些样本间的相似度很有问题。
杰卡德距离 Jaccard Distance
(1)杰卡德距离可用如下公式表示:
杰卡德距离用两个集合中不同元素占所有元素的比例 来衡量两个集合的区分度。
杰卡德距离 wenku.baidu.comaccard Distance
(2)Matlab 计算杰卡德距离 Matlab的pdist函数定义的杰卡德距离跟我这里的定义有 一些差别,Matlab中将其定义为不同的维度的个数占 “非全零维度”的比例。 例子:计算(1,1,0)、(1,-1,0)、(-1,1,0)两两之间的杰卡德距 离 X = [1 1 0; 1 -1 0; -1 1 0] D = pdist( X , 'jaccard') 结果 D= 0.5000 0.5000 1.0000
曼哈顿距离 Manhattan Distance
• 曼哈顿距离的命名原因是从规划为方型建筑区块的 城市(如曼哈顿)间,最短的行车路径而来(忽略 曼哈顿的单向车道以及只存在于3、14大道的斜向 车道)。任何往东三区块、往北六区块的的路径一 定最少要走九区块,没有其他捷径。
曼哈顿距离 Manhattan Distance
相关距离 Correlation Distance
(1)相关距离的定义
(2)Matlab计算(1, 2 ,3 ,4 )与( 3 ,8 ,7 ,6 )之间的相关系数与相 关距离 X = [1 2 3 4 ; 3 8 7 6] C = corrcoef( X' ) %将返回相关系数矩阵 D = pdist( X , 'correlation') 结果: C= 1.0000 0.4781 0.4781 1.0000 D= 0.5219 其中0.4781就是相关系数,0.5219是相关距离。