标准化缩放是使用 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。
我有一组 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。