PCA-马氏距离法(Mahalanobis Distance, MD)

原理简介:

马氏距离是一种用于衡量样本点与总体分布中心之间距离的统计度量,考虑了变量之间的协方差关系,它适用于检测输入变量上的异常值。

数学定义:

对于第 i个样本\mathbf{x}_i,其马氏距离定义为:MD_i = \sqrt{(\mathbf{x}_i - \bar{\mathbf{x}})^\top \mathbf{V}^{-1} (\mathbf{x}_i - \bar{\mathbf{x}})}

dist = sqrt(sum((X_centered * inv_cov_w) .* X_centered, 2));

其中:

  • \mathbf{x}_i:第 iii 个样本向量(通常为 PCA 降维后的主成分向量);

  • \bar{\mathbf{x}}:所有样本的均值向量;

  • \mathbf{V}:样本协方差矩阵,定义如下:\mathbf{V} = \frac{1}{n - 1} \sum_{i=1}^{n} (\mathbf{x}_i - \bar{\mathbf{x}})(\mathbf{x}_i - \bar{\mathbf{x}})^\top

算法步骤:

1.对光谱数据进行 PCA 降维,得到主成分矩阵  

n_components = 5; % 设置主成分数量
[X_pca, X_contribution] = pca(X, n_components); % PCA降维

2.计算每个样本的马氏距离   ;

3.计算所有马氏距离的均值和标准差;

4.设置阈值(如:均值 ± 2倍标准差),剔除超出范围的异常样本

k = 2; % 阈值系数(灵敏度参数)
Threshold = meandist + k * stddist; % 异常样本判断阈值

代码生成图:

优缺点:

  • 优点:方法简单,计算速度快,适合检测 X上的异常值;

  • 缺点:未考虑输出变量 Y,可能遗漏 Y 异常的样本或误判

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐