让 AI 算马氏距离:离中心同样远,为什么一个组合更反常
模型输入中的两个特征常常一起升高。例如两种传感器读数平时同涨同落,同时偏高可能很普通,一高一低却值得检查。只看离中心的欧氏距离,会把这两种组合当成一样远。马氏距离把协方差带进了距离定义。
AI生成的概念示意图:相关特征的变化尺度随方向而异;椭圆和点仅表示几何关系,不对应正文精确数值。
固定参考分布,先比较两个教学点
设参考中心μ=(0,0),协方差V为两行(1,0.8)与(0.8,1)。这表示两列方差均为1,且正相关;它是本题直接给定的参考矩阵,并非从下面两个待查点估计出来。待查点A=(1,1),B=(1,-1)。
A和B的欧氏距离平方都是2,距离均为√2。因为两列标准差本来就是1,分别把每列标准化也不会改变这个平局。差异不在单列单位,而在两列通常如何一起变化。
逆协方差改变了方向的代价
马氏距离平方是(x-μ)转置乘V的逆,再乘(x-μ)。本例行列式为1-0.8²=0.36,逆矩阵为两行(1,-0.8)、(-0.8,1),整体除以0.36。逆矩阵中的负交叉项使同向变化得到较小代价。
A代入得到(1-1.6+1)/0.36=10/9,距离约1.054093。B代入得到(1+1.6+1)/0.36=10,距离约3.162278。欧氏距离相同的两点,马氏距离相差三倍,距离平方则相差九倍。报告时不要混淆这两个倍数。
换到共同变化和相反变化的坐标
沿(1,1)/√2的方向,参考方差为1.8;沿(1,-1)/√2的方向,参考方差为0.2。A只在第一个方向有坐标√2,所以平方距离为2/1.8;B只在第二个方向有坐标√2,所以为2/0.2。
这就是白化视角:先旋转到协方差的主方向,再按各方向标准差缩放,最后算普通欧氏长度。同一段位移若落在平时变化很窄的方向上,会显得更不寻常。独立本地程序分别走逆矩阵、特征分解和SciPy接口,三条路径得到相同结果。
用AI核对接口时,重点看传进去的矩阵
可提示:“给定中心和协方差,计算两点的欧氏距离、马氏距离平方、马氏距离;展示逆矩阵与主轴复算;说明接口要协方差还是其逆。”SciPy的VI参数要求逆协方差,如果把V直接传进去,本例会得到相反的方向偏好。
若真要检查模型特征,先从合适的训练参考集估计中心与协方差,并把这份估计固定下来。不能每来一个异常候选就把它加入参考集重估,再用缩小后的距离证明它正常。预处理、单位变化或模型版本更新时,也要一起核对参考矩阵。
距离不是异常概率,矩阵也可能不可逆
当两列完全相同,协方差会奇异;特征多于有效样本时也常出现不稳定。加入对角正则、使用收缩估计或降维都能改变计算条件,但这些处理会改变距离定义,不能只说“求逆报错已经修好”。本例相关性为零点八,矩阵的两个特征值均为正,因此没有这项障碍。
马氏距离大并不自动等于某个百分比的异常概率,阈值需要分布假设或独立校准数据。参考群体若本来有多个簇,单一中心和协方差还可能把簇间空白视为合理位置。保留原始特征和具体案例,才能判断是罕见组合、参考样本变化,还是模型输入管道出错。
资料核对日期:2026年10月2日。数据为原创教学设定,已用独立本地程序复核,未进行真实模型训练或生产效果测试。
验收记录还应注明参考样本的时间范围、缺失值处理与特征顺序,确保复算使用的是同一套坐标。


