sklearn PCA fit_transform() 是不是居中输入变量?

Posted

技术标签:

【中文标题】sklearn PCA fit_transform() 是不是居中输入变量?【英文标题】:Does sklearn PCA fit_transform() center input variables?sklearn PCA fit_transform() 是否居中输入变量? 【发布时间】:2020-02-17 20:53:43 【问题描述】:

标题中的问题。拨打pca.fit(X) 后,假设我拨打了pca.fit_transform(new_X)new_X 是否被 PCA 自动居中?文档在这一点上不清楚。

【问题讨论】:

【参考方案1】:

来自文档:

使用奇异值分解的线性降维 将数据投影到低维空间。输入数据是 在应用 SVD 之前,居中但未针对每个特征进行缩放。

https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

fit_transform 相当于在同一个输入矩阵上连续运行fittransformfit 函数计算使数据居中的均值,transform 函数使用在fit 期间计算的均值应用均值居中。

因此,要适应一个矩阵,并将从该矩阵学习的居中参数应用到另一个矩阵(例如,将在训练集上学习的模型应用到测试/验证集时),您需要使用 @分别为 987654329@ 和 transform

【讨论】:

这不能回答我的问题。这是否意味着fit_transform 以输入矩阵为中心,或者只是fit 谢谢!这解决了我处理了一天的一些奇怪行为! @RylanSchaeffer,是的,sklearn 中的这个函数以输入矩阵为中心。另请查看此链接:stats.stackexchange.com/a/235931/134555

以上是关于sklearn PCA fit_transform() 是不是居中输入变量?的主要内容,如果未能解决你的问题,请参考以下文章

sklearn PCA 不工作

Sklearn PCA:用于训练和测试的组件数量不同

sklearn中各算法类的fit,fit_transform和transform函数

scikit-learn 内核 PCA 解释方差

sklearn fit transform fit_transform

sklearn StandardScaler,不允许直接变换,我们需要fit_transform