【Python机器学习】零基础掌握MinCovDet协方差估计
设备运行数据中混入少量异常记录时,怎样描述大多数样本之间的正常关系?假设工厂记录了电机的温度和振动强度。正常情况下,两者会一起缓慢变化;传感器故障却可能产生“温度很低、振动很高”的记录。普通协方差会把这些点也计算进去,结果可能偏离正常工况。此时需要的是对异常样本不那么敏感的协方差估计。记录温度(℃)振动(mm/s)数据情形A60.12.0正常工况B61.82.3正常工况C58.91.8正常工况D59.52.1正常工况E42.08.5待核验的异常记录这张表用于说明场景。后面的代码会生成足够多的模拟数据,使用sklearn.covariance.MinCovDet建立稳健基准,再用马氏距离观察偏离程度。文章目录MinCovDet从“所有点的平均关系”到“主要样本的稳定关系”sklearn 实现Sklearn API参数详解与调参应用案例案例一:模拟粮仓记录中的异常批次核验案例二:设备上线后的工况漂移观察总结MinCovDet从“所有点的平均关系”到“主要样本的稳定关系”MinCovDet 是 Minimum Covariance Determinant,即最小协方差行列式估计。协方差矩阵描述各个变量如何共同变化,行列式可以理解为数据椭球体积的一个尺度。MCD 的基本想法是在固定数量的样本子集中,寻找协方差行列式较小的那一组,降低远离主要分布的样本对结果的影响。设数据共有n nn个样本,每个样本有p pp