度量方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

氏距离可以表示一类的距离。 当p=1时,就是曼哈顿距离 当p=2时,就是欧氏距离 当p→∞时,就是切比雪夫距离
(2)明氏距离的缺点 明氏距离,包括曼哈顿距离、欧氏距离和切比
雪夫距离都存在明显的缺点。 举个例子:二维样本(身高,体重),其中身高范 围是150~190,体重范围是50~60,有三个样本: a(180,50),b(190,50),c(180,60)。那么a与b 之间的明氏距离(无论是曼哈顿距离、欧氏距 离或切比雪夫距离)等于a与c之间的明氏距离, 但是身高的10cm真的等价于体重的10kg么?因 此用明氏距离来衡量这些样本间的相似度很有 问题。

既然欧几里得距离无法忽略指标度量的差异,
所以在使用欧氏距离之前需要对底层指标进行 数据的标准化,而基于各指标维度进行标准化 后再使用欧氏距离就衍生出来另外一个距离度 量——马哈拉诺比斯距离(Mahalanobis Distance),简称马氏距离。
(1)马氏距离定义
有M个样本向量X1~Xm,协方差矩阵记为S, 均值记为向量μ,则其中样本向量X到u的马氏 距离表示为:

又称欧式距离,欧氏距离是最易于理解的一种距离 计算方法,源自欧氏空间中两点间的距离公式。 先设定我们要比较X个体和Y个体间的差异,它们都 包含了N个维的特征,即X=(x1, x2, x3, … xn),Y=(y1, y2, y3, … yn)。 因为计算是基于各维度特征的绝对数值,所以欧氏 度量需要保证各维度指标在相同的刻度级别,比如 对身高(cm)和体重(kg)两个单位不同的指标 使用欧式距离可能使结果失效。 对于距离度量,距点(x,y)的距离小于或等于某一 值r的像素是中心在(x,y)且半径为r的圆平面。
而其中向量Xi与Xj之间的马氏距离定义为:
若协方差矩阵是单位矩阵(各个样本向量之间
独立同分布),则公式就成了:
也就是欧氏距离了。 若协方差矩阵是对角矩阵,公式变成了标准化
欧氏距离。 (2)马氏距离的优缺点: 量纲无关,排除变量之间的相关性的干扰。
(3)
Matlab计算(1 2),( 1 3),( 2 2),( 3 1)两 两之间的马氏距离 X = [1 2; 1 3; 2 2; 3 1] Y = pdist(X,'mahalanobis')

(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
闫和鑫
分类: 欧几里得距离(Euclidean Distance) 标准化欧氏距离(Standardized Euclidean distance) 曼哈顿距离(Manhattan Distance) 切比雪夫距离(Chebyshev Distance) 明可夫斯基距离(Minkowski Distance) 马哈拉诺比斯距离(Mahalanobis Distance 汉明距离(Hamming Distance) 杰卡德距离(Jaccard Distance) 相关距离( Correlation Distance ) hausdorff距离 巴氏距离 Earth Mover’s distance
结果: Y
= 2.3452 2.0000 5 1.2247
2.3452
1.2247
2.449
(1)汉明距离的定义
两个等长字符串s1与s2之间的汉明距离定 义为将其中一个变为另外一个所需要作的最小 替换次数。例如字符串“1111”与“1001”之间 的汉明距离为2。 应用:信息编码(为了增强容错性,应使 得编码间的最小汉明距离尽可能大)。
西洋棋(国际象棋)
西洋棋(国际象棋)规则
王:横、竖、斜都可以走,每次限走一格 后:横、竖、斜都可以走,格数不限,不能越
子 象:只能斜走,格数不限,不能越子 马:每步棋先横走或竖走一格,然后再斜走一 格,可以越子 车:横、竖都可以走,不能斜走,格数不限, 除王车易位的情况,平时不能越子 兵:只能向前直走,每次只能走一格。走第一 步时,可以走一格,也可以直进两格。
简单说来,明氏距离的缺点主要有两个: (1)将各个分量的量纲(scale),也就是“单位”
当作相同的看待了。 (2)没有考虑各个分量的分布(期望,方差等) 可能是不同的。
(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

在西洋棋里,车(城堡)是以曼哈顿距离来计
算棋盘 格上的距离;而王(国王)与后(皇后) 使用切比雪夫距离,象(主教)则是用转了45 度的曼哈顿距离来算(在同色的格子上),也 就是说它以斜线为行走路径。只有国王需要一 步一步走的方式移动,皇后、主教与城堡可以 在一或两次移动走到任何一格(在没有阻碍物 的情况下,且主教忽略它不能走到的另一类颜 色)。
又叫城市街区距离(City
Block distance)、棋盘
距离 我们可以定义曼哈顿距离的正式意义为L1-距离 或城市区块距离,也就是在欧几里德空间的固 定直角坐标系上两点所形成的线段对轴产生的 投影的距离总和。 例如在平面上,坐标(x1, y1)的点P1与坐 标(x2, y2)的点P2的曼哈顿距离为: |x1 - x2| + |y1 - y2|. 要注意的是,曼哈顿距离依赖坐标系统的转 度,而非系统在坐标轴上的平移或映射。

(1)杰卡德距离可用如下公式表示:
杰卡德距离用两个集合中不同元素占所有元素
的比例来衡量两个集合的区分度。
(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
个M×N的矩阵,则pdist(X)将X矩阵M行的每一 行作为一个N维向量,然后计算这M个向量两两 间的距离。
例子:计算向量(0,0)、(1,0)、(0,2)两两间的欧
式距离 X = [0 0 ; 1 0 ; 0 2] D = pdist(X,'euclidean') 结果: D = 1.0000 2.0000 2.2361

(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是相关距离。
(1)二维平面两点a(x1,y1)与b(x2,y2)间的曼哈
顿距离

(2)两个n维向量a(x11,x12,…,x1n)与
b(x21,x22,…,x2n)间的曼哈顿距离

(3)
Matlab计算曼哈顿距离 例子:计算向量(0,0)、(1,0)、(0,2)两两间的曼 哈顿距离 X = [0 0 ; 1 0 ; 0 2] D = pdist(X, 'cityblock') 结果: D = 1 2 3
又称明氏距离,或闵式距离 明氏距离是欧氏距离的推广,是对多个距离度
量公式的概括性的表述。 明氏距离不是一种距离,而是一组距离的定义。
(1)
明氏距离的定义 两个n维变量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的明可夫斯基距离定义为:
其中p是一个变参数。根据变参数的不同,闵

= ( 标准化前的值 - 分量的均 值 ) /分量的标准差 经过简单的推导就可以得到两个n维向量 a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的标 准化欧氏距离的公式:
标准化后的值
如果将方差的倒数看成是一个权重,这个公式
ቤተ መጻሕፍቲ ባይዱ
可以看成是一种加权欧氏距离(Weighted Euclidean distance)。
曼哈顿距离的命名原因是从规划为方型建筑区
块的城市(如曼哈顿)间,最短的行车路径而 来(忽略曼哈顿的单向车道以及只存在于3、 14大道的斜向车道)。任何往东三区块、往北 六区块的的路径一定最少要走九区块,没有其 他捷径。
出租车几何学满足除了SAS全等定理之外的希伯特 定理,SAS全等指任两个三角型两个边与一个角相 等,则这两个三角型必全等。 在出租车几何学中,一个圆是由从圆心向各个固定 曼哈顿距离标示出来的点围成的区域。因此这种圆 其实就是旋转了45度的正方形。如果有一群圆,任 两圆皆相交,则整群圆必在某点相交;因此曼哈顿 距离会形成一个超凸度量空间(Injective metric space)。对一个半径为r 的圆来说,这个正方形的 圆每边长√2r。此'"圆"的半径r对切比雪夫距离 (L∞ 空间)的二维平面来说,也是一个对座标轴来说边 长为2r的正方形,因此二维切比雪夫距离可视为等 同于旋转且放大过的二维曼哈顿距离。然而这种介 于L1与L∞的相等关系并不能延伸到更高的维度。

欧氏距离是最常见的距离度量,衡量的是多维
空间中各个点之间的绝对距离。公式如下:
(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧
氏距离:
(2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的
欧氏距离:
(3)Matlab计算欧氏距离 Matlab计算距离主要使用pdist函数。若X是一
切比雪夫距离起源于国际象棋中国王的走法,
我们知道国际象棋国王每次只能往周围的8格中 走一步,那么如果要从棋盘中A格(x1, y1) 走到B格(x2, y2)最少需要走几步?最少步 数总是max( | x2-x1 | , | y2-y1 | ) 步。 扩展到多维空间,其实切比雪夫距离就是当p 趋向于无穷大时的明氏距离:
(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
(1)二维平面两点a(x1,y1)与b(x2,y2)间的切比
雪夫距离:
(2)两个n维向量a(x11,x12,…,x1n)与
b(x21,x22,…,x2n)间的切比雪夫距离:
(3)Matlab计算切比雪夫距离 例子:计算向量(0,0)、(1,0)、(0,2)两两间的切
比雪夫距离 X = [0 0 ; 1 0 ; 0 2] D = pdist(X, 'chebychev') 结果: D = 1 2 2

(1)标准欧氏距离的定义
标准化欧氏距离是针对简单欧氏距离的缺 点而作的一种改进方案。标准欧氏距离的思路: 既然数据各维分量的分布不一样,好吧!那我 先将各个分量都“标准化”到均值、方差相等 吧。均值和方差标准化到多少呢?这里先复习 点统计学知识吧,假设样本集X的均值(mean) 为m,标准差(standard deviation)为s,那么X 的“标准化变量”表示为: 而且标准化变量的数学期望为0,方差为1。 因此样本集的标准化过程(standardization)用 公式描述就是:
相关文档
最新文档