【发布时间】:2017-01-21 02:41:43
【问题描述】:
我正在使用来自 sckit-learn 的 PCA,并且我得到了一些我试图解释的结果,所以我遇到了问题 - 我应该在使用 PCA 之前减去平均值(或执行标准化),还是这样以某种方式嵌入到 sklearn 实现中?
此外,如果需要,我应该执行这两者中的哪一个,为什么需要这一步?
【问题讨论】:
-
是的,您需要进行均值标准化。此外,如果特征具有非常不同的范围,您可能需要缩放特征。我经常使用
sklearn.preprocessing.StandardScaler。 -
感谢您的信息,如果您愿意,可以将其发布为答案。但有一件事仍然让我怀疑——当 PCA 考虑最大方差的方向时,为什么要缩放?在 PCA 之前对数据进行标准化时,我不会打破这一点吗?
-
经验法则是,如果您的数据已经在不同的比例上(例如,每个特征是每 100 个居民 XX 个),缩放它将删除包含在您的特征具有不等方差这一事实中的信息.如果数据在不同的尺度上,那么您应该在运行 PCA 之前对其进行规范化。始终将数据居中。如果您想了解更多详细信息,我建议您查看crossvalidated。
标签: scikit-learn pca