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
相当于在同一个输入矩阵上连续运行fit
和transform
。 fit
函数计算使数据居中的均值,transform
函数使用在fit
期间计算的均值应用均值居中。
因此,要适应一个矩阵,并将从该矩阵学习的居中参数应用到另一个矩阵(例如,将在训练集上学习的模型应用到测试/验证集时),您需要使用 @分别为 987654329@ 和 transform
。
【讨论】:
这不能回答我的问题。这是否意味着fit_transform
以输入矩阵为中心,或者只是fit
?
谢谢!这解决了我处理了一天的一些奇怪行为!
@RylanSchaeffer,是的,sklearn 中的这个函数以输入矩阵为中心。另请查看此链接:stats.stackexchange.com/a/235931/134555以上是关于sklearn PCA fit_transform() 是不是居中输入变量?的主要内容,如果未能解决你的问题,请参考以下文章
sklearn中各算法类的fit,fit_transform和transform函数