用PCA进行异常检测的原理是:PCA在做特征值分解之后得到的特征向量反应了原始数据方差变化程度的不同方向,特征值为数据在对应方向上的方差大小。所以,最大特征值对应的特征向量为数据方差最大的方向,最小特征值对应的特征向量为数据方差最小的方向。原始数据在不同方向上的方差变化反应了其内在特点。如果单个数据样本跟整体数据样本表现出的特点不太一致,比如在某些方向上跟其它数据样本偏离较大,可能就表示该数据样本是一个异常点。
PCA用于异常检测思路:
思路①:异常数据投影在residual subspace的投影值的长度很长,当长度大于某个阈值时,即判断为异常数据。 ,为简单起见,以二维数据为例,如下图所示:
思路②:基于重构误差。直观上说,PCA提取了数据的主要特征,如果一个数据样本不能被重构,则说明这个数据样本的特点和主要数据特征不一样,那么它就是一个异常样本。