注:个人入门理解,如有问题,恳请指正!
PCA异常检测主要步骤是一个降维再升维然后比较生成的向量与原始向量的差别。
降维:利用PCA的原理降维,求方差贡献度,载荷矩阵。讲方差贡献度大的特征(主成分)保留视为重要特征,将不重要的特征丢掉。得到一个损失一定信息的低维向量(阉割版哈哈哈)。
升维:根据针对前面大量的向量PCA降维得出的经验(主成分载荷矩阵),对降维后的向量再逆运算升维,但是需要注意的是这里虽然升维了但是降维时丢掉的特征并没有添加回来。
对比:升维后得到和原始向量同等规模的向量,两者比较。两者相差较大说明前面得出的降维经验(主成分载荷矩阵)对这个向量不太合适,因此这个向量和前面的向量很“不一样”,故是异常点。反之,如果相差不大,则说明跟前面的很像,非异常点。
举个例子,比如说裤子叠起来减掉一点再展开。你前边剪了很多次,总结出经验叠好后剪这一点能把不会毁坏裤子,只会把裤腿剪短一点。然而这条裤子,你叠起来还是减掉原先总结的那个点,展开后发现裤裆直接剪没了。这就说明这条裤子跟原来的裤子很不一样!