matlab 韩明距离_使用Matlab计算各种距离Distance

本文介绍了如何在Matlab中使用pdist和pdist2函数计算各种距离,包括欧几里得距离、标准欧氏距离、马哈拉诺比斯距离、曼哈顿距离、闵可夫斯基距离、切比雪夫距离、夹角余弦距离、相关距离、汉明距离、杰卡德距离和斯皮尔曼距离。详细讨论了各种距离的适用场景和优缺点,并给出了计算示例。
摘要由CSDN通过智能技术生成

计算距离的需求有两种:

一种是给定一个特征集合X,然后计算Pairwise距离矩阵,那么可使用D=pdist(X,distance)的方式;

另一种是给定两个对应的特征集合X和Y,然后计算X与Y对应的距离信息,使用D=pdist2(X,Y,distance)的方式;

需注意,2011版本以前的Matlab是没有pdist2.m文件的,而早期的pdist2.m文件中的距离计算方式也比较少,所以建议使用最新的Matlab版本,很重要。

其中,distance的定义有如下几种:

欧几里德距离Euclidean distance(‘euclidean’)

欧氏距离虽然很有用,但也有明显的缺点。

一:它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求。

二:它没有考虑各变量的数量级(量纲),容易犯大数吃小数的毛病。所以,可以先对原始数据进行规范化处理再进行距离计算。

标准欧几里德距离Standardized Euclidean distance(‘seuclidean’)

相比单纯的欧氏距离,标准欧氏距离能够有效的解决上述缺点。注意,这里的V在许多Matlab函数中是可以自己设定的,不一定非得取标准差,可以依据各变量的重要程度设置不同的值,如knnsearch函数中的Scale属性。

马哈拉诺比斯距离Mahalanobis distance(‘mahalanobis’)

where C is the covariance matrix.

马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧式距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。

如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧式距离,如果协方差矩阵为对角阵,则其也可称为正规化的欧氏距离.

马氏优缺点:

1)马氏距离的计算是建立在总体样本的基础上的,因为C是由总样本计算而来,所以马氏距离的计算是不稳定的;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值