线性代数的知识已经差不多都忘记了,现在补习下。
马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧式距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的),并且是尺度无关的(scale-invariant),即独立于测量尺度。
马氏距离不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关;由标准化数据和中心化数据(即原始数据与均值之差)计算出的二点之间的马氏距离相同。马氏距离还可以排除变量之间的相关性的干扰。它的缺点是夸大了变化微小的变量的作用。
下面是关于马氏距离的计算方法(参考:http://topic.csdn.net/u/20080911/14/f4402565-3b4f-4de4-a4fa-f4c020dd1477.html
)
写道
两个样本:
His1 = {3,4,5,6}
His2 = {2,2,8,4}
它们的均值为:
U = {2.5, 3, 6.5, 5}
协方差矩阵为:
S =
| 0.25 0.50 -0.75 0.50 |
| 0.50 1.00 -1.50 1.00 |
|-0.75 -1.50 2.25 -1.50 |
| 0.50 1.00 -1.50 1.00 |
其中S(i,j)={[His1(i)-u(i)]*[His1(j)-u(j)]+[His2(i)-u(i)]*[His2(j)-u(j)]}/2
下一步就是求出逆矩阵S^(-1)
马氏距离 D=sqrt{[His1-His2] * S^(-1) * [(His1-His2)的转置列向量]}
欧氏距离(http://en.wikipedia.org/wiki/Euclidean_distance
)即两项间的差是每个变量值差的平方和再平方根,目的是计算其间的整体距离即不相似性。我们熟悉的欧氏距离虽然很有用,但也有明显的缺点。它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求。例如,在教育研究中,经常遇到对人的分析和判别,个体的不同属性对于区分个体有着不同的重要性。因此,有时需要采用不同的距离函数。
补充说明:(来源:http://topic.csdn.net/u/20090819/15/4d4ccbe6-f186-48e6-a150-61c1f41dc4d2.html
)
写道
马氏距离(Mahalanobis distances)
1)马氏距离的计算是建立在总体样本的基础上的,这一点可以从上述协方差矩阵的解释中可以得出,也就是说,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;
2)在计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离来代替马氏距离,也可以理解为,如果样本数小于样本的维数,这种情况下求其中两个样本的距离,采用欧式距离计算即可。
3)还有一种情况,满足了条件总体样本数大于样本的维数,但是协方差矩阵的逆矩阵仍然不存在,比如A(3,4),B(5,6);C(7,8),这种情况是因为这三个样本在其所处的二维空间平面内共线(如果是大于二维的话,比较复杂???)。这种情况下,也采用欧式距离计算。
4)在实际应用中“总体样本数大于样本的维数”这个条件是很容易满足的,而所有样本点出现3)中所描述的情况是很少出现的,所以在绝大多数情况下,马氏距离是可以顺利计算的,但是马氏距离的计算是不稳定的,不稳定的来源是协方差矩阵,这也是马氏距离与欧式距离的最大差异之处。
我们熟悉的欧氏距离虽然很有用,但也有明显的缺点。它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求。马氏距离有很多优点。它不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关;由标准化数据和中心化数据(即原始数据与均值之差)计算出的二点之间的马氏距离相同。马氏距离还可以排除变量之间的相关性的干扰。它的缺点是夸大了变化微小的变量的作用。
分享到:
相关推荐
通过理解马氏距离的概念和MATLAB实现方法,我们可以更有效地检测和处理异常样本,提高数据分析的准确性和模型的稳定性。对于异常样本的处理,不仅可以使用马氏距离,还可以结合其他方法,如Isolation Forest、LOF...
在这个项目中,“基于python与马氏距离的异常检测算法设计与实现”着重探讨了如何利用Python编程语言和马氏距离这一统计方法来构建异常检测模型。 首先,我们需要理解马氏距离。马氏距离是统计学中衡量两个样本点...
主要介绍马氏距离计算的关键步骤和注意的问题。我们熟悉的欧氏距离虽然很有用,但也有明显的缺点。它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求。马氏距离有很多优点。它...
与传统的欧氏距离不同,马氏距离考虑了数据的协方差矩阵,能够提供更合理的多变量距离测量。当数据的各变量之间存在相关性时,马氏距离能够准确地反映数据点之间的距离。 在异常检测的上下文中,马氏距离可以用来...
例如,K-means聚类算法中,可以使用马氏距离替代欧氏距离来度量样本之间的相似性,因为它能够更好地处理异常值和非正交特征。马氏距离的计算公式为: \[ D_M(x,y) = \sqrt{(x - y)^T S^{-1} (x - y)} \] 其中,\( ...
当各个特征的方差不一致时,直接使用欧氏距离可能会导致某些特征的权重被过分强调,而马氏距离则能解决这个问题。 在实际应用中,马氏距离常用于聚类分析、异常检测和分类任务。例如,在聚类中,我们可以计算每个...
马氏距离的计算是基于协方差矩阵的,它克服了欧氏距离忽视数据内在结构的缺点。在计算两个样本点之间的距离时,马氏距离会去除因变量尺度差异和变量间相关性的影响,提供了一种更合理的距离度量。在分类问题中,利用...
马氏距离不仅考虑了样本点之间的欧氏距离,还考虑了数据的协方差结构,因此可以更准确地度量不同群体之间的差异。 首先,马氏距离是一种衡量两个随机变量集合之间“距离”的统计量,它定义为两个样本点在经过协方差...
然而,很多多元统计分析教材并未对此做深入讲解,这往往让初学者感到困惑,难以理解马氏距离的重要性和应用场景。 #### 二、马氏距离的概念 马氏距离是由印度统计学家马哈拉诺比斯(Mahalanobis)提出的,用于衡量...
在机器学习和统计学领域,距离度量是衡量两个数据点...总结来说,这个主题涵盖了基础的欧氏距离、更高级的马氏距离,以及可能与深度学习相关的技术。理解这些概念和技术对于提升数据分析和机器学习项目的效果至关重要。
马氏距离在处理非正态分布的数据或者变量间存在相关性的数据时,比欧氏距离更加合理和有效。 在这个名为"langtou.zip_马氏距离"的压缩包文件中,包含了一个名为"langtou.m"的MATLAB程序文件。MATLAB是一种强大的...
在图像处理中,马氏距离可以用于比较两个图像的相似性,尤其是在处理光照、旋转等变换时,其表现往往优于欧氏距离。通过计算图像特征向量之间的马氏距离,我们可以识别或分类图像,这对于人脸识别、指纹识别等应用...
马氏距离(Mahalanobis Distance)是基于协方差矩阵的一种距离度量方式,它不仅考虑了两个数据点之间欧氏距离的大小,还考虑了各特征之间的相关性。马氏距离公式如下: \[ D_M(x, \mu) = \sqrt{(x - \mu)^T S^{-1} ...
相比于欧氏距离,马氏距离更能准确地反映数据在多维空间中的实际距离。其计算公式为: \[ D_M(x) = \sqrt{(x-\mu)^T \Sigma^{-1} (x-\mu)} \] 其中,\( x \) 是待测样本点,\( \mu \) 是类样本的均值向量,\( \...
马氏距离(Mahalanobis distance)是一种统计学上的度量方式,用于衡量两个样本点在多维空间中的“距离”。...在高维数据处理中,由于“维度灾难”,欧氏距离可能不再适用,而马氏距离则能更好地反映数据的本质差异。
不同于欧氏距离,马氏距离通过协方差矩阵对数据进行标准化,使得各维度之间的影响可以相互比较,不受量纲影响。 计算马氏距离的公式为: \[ D_M = \sqrt{ (x - \mu)^T S^{-1} (x - \mu) } \] 其中,\( x \) 是待...
1.计算待分类数据和不同类中每一个数据的距离(欧氏或马氏)。 2.选出最小的前K数据个距离,这里用到选择排序法。 3.对比这前K个距离,找出K个数据中包含最多的是那个类的数据,即为待分类数据所在的类。
与欧氏距离不同,马氏距离考虑了数据集的协方差结构,它能够对不同变量的重要性进行加权,使得在具有不同尺度或相关性的特征空间中,距离的计算更为公平。马氏距离公式如下: \[ D_M(x, \mu) = \sqrt{(x - \mu)^T S...
在多维空间中,马氏距离比欧氏距离更能反映样本间的实际差异,因为它能够量化不同特征之间的相关性。具体计算公式为: \[ D_M(x) = \sqrt{(x - \mu)^T \Sigma^{-1} (x - \mu)} \] 其中,\( x \) 是待检测的样本点...