“本文介绍马氏距离的基本思想,其数学原理可以参考文末给出的博客链接”
马氏距离,是一种距离度量指标,用来评定数据间相似度;类似的距离指标还有欧氏距离、曼哈顿距离、汉明距离等。
与欧氏距离不同的是,它有考虑数据间非独立性(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)且尺度无关(scale-invariant)。
马氏距离可以理解为针对欧氏距离的两点改进:
-
尺度:欧氏距离中是没有考虑尺度对距离的影响的;比如(身高(mm),体重(t))指标,明显身高的微小差距就能导致较大的欧氏距离,体重则不容易影响欧氏距离。尺度问题可以由尺度缩放来解决,其实在“归一化欧氏距离”中就是这么做的,它需要对不同维度数据进行不同尺度的缩放,来消除这种尺度带来的不公平
-
数据相关性:仔细想想,直接按维度进行缩放,真的能解决问题吗?如果各维度之间存在相关性,而我们只单单就各个维度进行放缩,那结果会不如人意;比如x1和x2维度存在相关性,当你放缩x1维度时,其实已经对x2维度进行了一定的放缩,而你并不知情(因为你已经假设维度间相互独立),然后还傻乎乎地对x2进行原本计划好的放缩,最终导致放缩效果不合理!解决办法就是,利用主成分分析(坐标旋转) 进行去相关,在互相独立地维度上进行放缩操作~
因此,马氏距离中的协方差矩阵 Σ − 1 \Sigma^{-1} Σ−1就是用来进行旋转变换和尺度放缩的;并且经过上面的分析,我们可以得知:- 若 Σ − 1 \Sigma^{-1} Σ−1为单位矩阵,马氏距离退化为欧氏距离;
- 若 Σ − 1 \Sigma^{-1} Σ−1为对角矩阵,马氏距离退化为归一化欧氏距离;
推荐阅读: