标准化缩放是使用 sklearn 应用 PCA 的先决条件吗?

Is standardized scaling a pre-requisite for applying PCA using sklearn?

我有一组 70 个输入变量,我需要对其执行 PCA。根据我的理解,集中数据使得每个输入变量的均值为 0,方差为 1,这对于应用 PCA 是必要的。

我很难弄清楚,在将我的数据集传递给 PCA 或 sklearn 中的 PCA 函数之前,我是否需要执行标准缩放 preprocessing.StandardScaler()它自己的。

如果是后者,那么不管我是否申请preprocessing.StandardScaler() explained_variance_ratio_ 都应该是一样的。

但结果不同,因此我认为在应用PCA之前需要preprocessing.StandardScaler()。是真的吗?

是的,确实如此,scikit-learn 的 PCA 并未对输入数据集应用标准化,它仅以 subtracting the mean 为中心。

另请参阅此 post