我知道 PCA 擅长区分异常和正常数据,当它试图将数据传输到另一个维度时,它有助于区分它们。我的意思是它可以以某种方式最大化规则和不规则数据点之间的分离。我也在我的代码中看到了这一点。但是,有人要求我证明这一点!通过一个简单的详细示例(例如,一个简单的 2*2 矩阵)?任何人都可以帮忙吗?
提前致谢。
我知道 PCA 擅长区分异常和正常数据,当它试图将数据传输到另一个维度时,它有助于区分它们。我的意思是它可以以某种方式最大化规则和不规则数据点之间的分离。我也在我的代码中看到了这一点。但是,有人要求我证明这一点!通过一个简单的详细示例(例如,一个简单的 2*2 矩阵)?任何人都可以帮忙吗?
提前致谢。
PCA 的第一个特征向量具有数据最大方差的方向。然后第二个跟随下一个最高方差的方向,所以它继续......
根据我的经验,考虑这一点的最简单方法是使用 2D 数据并将其转换为 1D。可视化可以在这里找到:PCA 可视化
它不会最大化规则和不规则数据点之间的分离。它通过创建一个新的基础特征向量(方向)来尽可能多地解释方差,从而进行降维。但是,它对异常值不是很稳健。想象一下,你所有的数据点基本上都在一条线上,现在突然你收到一个异常值。由于这个异常值会对方差产生影响,所以特征值方向会发生变化,特征向量的值也会随之改变!
对于异常检测:您可以针对新数据使用“正常数据”的 PCA 特征向量。只需在特征向量之间进行距离计算。如果距离较远 => 异常
有诸如鲁棒 PCA 之类的方法可以更好地处理噪声数据并且可以找到异常值。
希望这可以帮助。