我试图理解在 PCA 之前我们应该做什么:标准化
(x-m)/s
或归一化(缩放到 [0, 1]
区间)。在 sklearn 教程中,他们使用标准化并表明具有标准化的 PCA 表现更好:
https://scikit-learn.org/stable/auto_examples/preprocessing/plot_scaling_importance.html
我在其他答案中也发现了同样的情况,例如这个答案指出 PCA 会更加关注方差较高的特征,因此您应该使所有方差相同:
但这就是PCA的一种方法——最大化投影数据的方差。如果标准化数据在所有方向上具有相同的方差,PCA 将如何最大化方差?
因为 PCA 改变了变量的基数,如果您正在测量高度相关的数据,那么您可以更改基数以使大部分方差集中在少数变量中。
想象一下极端情况,您有两个变量 x,y,它们测量完全相同(或几乎)相同的事物,它们的相关性为 1,这意味着您最好使用变量 t1=1/2(x+ y), t2=1/2(x-y) ,t1 将包含原始的所有方差,t2 将没有方差,因此可以稍后将其删除。