1、常用距离计算汇总常用距离计算汇总在做分类时常常需要估算不同样本之间的相似性度量 (Similarity Measureme nt) ,这时通常采用的方法就是计算样本间的 距离”(Distanee)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。本文的目的就是对常用的相似性度量作一个总结。本文目录:1.欧氏距离2.曼哈顿距离3.切比雪夫距离4闵可夫斯基距离5.标准化欧氏距离6.马氏距离7.夹角余弦8.汉明距离9.杰卡德距离&杰卡德相似系数10.相关系数&相关距离11.信息熵1.欧氏距离(Euclidean Distanee)欧氏距离是最易于理解的一种距离计算方法, 源自欧氏空间中两
2、点间的距离公式。(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离:2 = 丁(叭一也尸+ 01 一兀2 三维空间两点 a(x1,y1,z1) 与b(x2,y2,z2) 间的欧氏距离: 1% -4ki其中p是一个变参数。当p=1时,就是曼哈顿距离当p=2时,就是欧氏距离当p 时,就是切比雪夫距离根据变参数的不同,闵氏距离可以表示一类的距离。闵氏距离的缺点闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点。举个例子:二维样本(身高,体重),其中身高范围是150190 ,体重范围是5060 , 有三个样本:a(180,50) ,b(190,50) ,c(180,60)
3、。那么a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于 a与c之间的闵氏距离,但是身高的 10cm真的等价于体重的10kg么?因此用闵氏距离来衡量这些样本间的相似度很有问 题。简单说来,闵氏距离的缺点主要有两个: 将各个分量的量纲(scale),也就是 单位”当作相同的看待了。 (2)没有考虑各个分量的分布(期望,方差等 )可能是不同的。(3)Matlab 计算闵氏距离例子:计算向量(0,0)、(1,0)、(0,2)两两间的闵氏距离(以变参数为 2的欧氏距离为 例)X = 0 0 ; 1 0 ; 0 2D = pdist(X,mi nkowski,2)结果:D =1.000
4、0 2.0000 2.23615.标准化欧氏距离(Standardized Euclidean distanee )(1)标准欧氏距离的定义标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。 标准欧氏距离的思路:既然数据各维分量的分布不一样,好吧!那我先将各个分量都 标准化”到均值、方差相等吧。均值和方差标准化到多少呢?这里先复习点统计学知识吧,假设样本集 X的均值(mean)为m,标准差(standard deviation) 为s,那么X的标准化变量表示 为:而且标准化变量的数学期望为 0,方差为1。因此样本集的标准化过程(sta ndardizatio n) 用公式描述就是:标准
5、化后的值 =(标准化前的值 -分量的均值)/分量的标准差经过简单的推导就可以得到两个 n维向量a(x11,x12,x1n) 与b(x21,x22, ,x2n间的标准化欧氏距离的公式:如果将方差的倒数看成是一个权重,这个公式可以看成是一种 加权欧氏距离(Weighted Euclidea n dista nee) 。(2)Matlab 计算标准化欧氏距离例子:计算向量(0,0)、(1,0)、(0,2)两两间的标准化欧氏距离 (假设两个分量的标准差分别为0.5和1)X = 0 0 ; 1 0 ; 0 2D = pdist(X, seuclidean,0.5,1)结果:D =2.0000 2.000
6、0 2.82846.马氏距离(Mahalanobis Distanee)(1)马氏距离定义有M个样本向量X1Xm,协方差矩阵记为S,均值记为向量 口,则其中样本向 量X到u的马氏距离表示为:而其中向量Xi与Xj之间的马氏距离定义为:畋巧)=厂即“7(禺-与若协方差矩阵是单位矩阵(各个样本向量之间独立同分布) ,则公式就成了:也就是欧氏距离了。若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。(2)马氏距离的优缺点:量纲无关,排除变量之间的相关性的干扰。Matlab 计算(1 2) ,( 1 3) ,( 2 2) ,( 3 1)两两之间的马氏距离X = 1 2; 1 3; 2 2; 3 1Y=
7、pdist(X,mahala no bis)结果:Y=2.3452 2.0000 2.3452 1.2247 2.4495 1.22477.夹角余弦(Cosine)有没有搞错,又不是学几何,怎么扯到夹角余弦了?各位看官稍安勿躁。几何中 夹角余弦可用来衡量两个向量方向的差异, 机器学习中借用这一概念来衡量样本向量之间的差异。(1)在二维空间中向量 A(x1,y1)与向量B(x2,y2)的夹角余弦公式:COS0 =类似的,对于两个 n维样本点a(x11,x12, ,x1 n和b(x21,x22,以使用类似于夹角余弦的概念来衡量它们间的相似程度。CLb,x2n),可kl |6|即:Xllr夹角余弦取
8、值范围为-1,1。夹角余弦越大表示两个向量的夹角越小,夹角余弦 越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值 1,当两个向量的方向完全相反夹角余弦取最小值 -1。夹角余弦的具体应用可以参阅参考文献 1。(3)Matlab 计算夹角余弦例子:计算(1,0)、( 1,1.732) 、( -1,0)两两间的夹角余弦X = 1 0 ; 1 1.732 ; -1 0D = 1- pdist(X, cosine) % Matlab 中的 pdist(X, cosine) 得到的是 1 减夹角余弦的值结果:D =0.5000 -1.0000 -0.50008.汉明距离(Hamming d
9、istanee)(1)汉明距离的定义两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要 作的最小替换次数。例如字符串 “ 1111”与“ 1001”之间的汉明距离为2。应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。(2)Matlab 计算汉明距离Matlab中2个向量之间的汉明距离的定义为 2个向量不同的分量所占的百分比例子:计算向量(0,0)、(1,0)、(0,2)两两间的汉明距离X = 0 0 ; 1 0 ; 0 2;D = PDIST(X, hammi ng)结果:D =0.5000 0.5000 1.00009.杰卡德相似系数(Jaccar
10、d similarity coefficient)(1)杰卡德相似系数两个集合A和B的交集元素在A , B的并集中所占的比例,称为两个集合的杰卡 德相似系数,用符号J(A,B)表示。a n b |AU F|杰卡德相似系数是衡量两个集合的相似度一种指标。(2)杰卡德距离与杰卡德相似系数相反的概念是 杰卡德距离(Jaccard distanee)。杰卡德距离可用如下公式表示:杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。(3)杰卡德相似系数与杰卡德距离的应用可将杰卡德相似系数用在衡量样本的相似度上。样本A与样本B是两个n维向量,而且所有维度的取值都是 0或1。例如:A(01
11、11) 和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含 该元素。p :样本A与B都是1的维度的个数q :样本A是1,样本B是0的维度的个数r :样本A是0,样本B是1的维度的个数s :样本A与B都是0的维度的个数那么样本A与B的杰卡德相似系数可以表示为:这里p+q+r可理解为A与B的并集的元素个数,而 p是A与B的交集的元素个数。而样本A与B的杰卡德距离表示为:卩+孕+(4)Matlab 计算杰卡德距离Matlab的pdist函数定义的杰卡德距离跟我这里的定义有一些差别, Matlab中将其定义为不同的维度的个数占 非全零维度”的比例。例子:计算(1,1,0
12、) 、(1,-1,0) 、(-1,1,0)两两之间的杰卡德距离X = 1 1 0; 1 -1 0; -1 1 0D = pdist( X , jaccard)结果D =0.5000 0.5000 1.000010.相关系数(Correlation coefficient ) 与相关距离(Correlationdista nee)(1)相关系数的定义Cov(xr) _ (x-Ex)(y-r)相关系数是衡量随机变量 X与Y相关程度的一种方法,相关系数的取值范围是 -1,1,相关系数的绝对值越大,则表明 X与Y相关度越高。当X与Y线性相关时,相关系数 取值为1 (正线性相关)或-1 (负线性相关)。
13、(2)相关距离的定义Dxy = 1 一 PxY(3)Matlab 计算(1,2 ,3 ,4 ) 与(3 ,8 ,7 ,6 ) 之间的相关系数与相关距离X = 1 2 3 4 ; 3 8 7 6C = corrcoef( X ) %将返回相关系数矩阵D = pdist( X , correlati on)结果:C =1.0000 0.47810.4781 1.0000D =0.5219其中0.4781就是相关系数,0.5219是相关距离11.信息熵(In formation En tropy)信息熵并不属于一种相似性度量。那为什么放在这篇文章中啊?这个。我也不知道。(丿什信息熵是衡量分布的混乱程
14、度或分散程度的一种度量。分布越分散 (或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。计算给定的样本集X的信息熵的公式:Entro参数的含义:n :样本集X的分类数pi: X中第i类元素出现的概率信息熵越大表明样本集 S分类越分散,信息熵越小则表明样本集 X分类越集中。 当S中n个分类出现的概率一样大时(都是 1/n ),信息熵取最大值log 2(n)。当X只 有一个分类时,信息熵取最小值 0参考资料:1吴军.数学之美 系列12 -余弦定理和新闻的分类.2Wikipedia. Jaccard in dex.3Wikipedia. Hammi ng dista nee4求马氏距离(Mahala no bis dista nee ) matlab 版5Pears on product-mome nt correlati on coefficie nt
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1