Sklearn PCA:列车和测试的组件数量不同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sklearn PCA:列车和测试的组件数量不同相关的知识,希望对你有一定的参考价值。

我正在使用Sklearn的PCA来减少维数。我正在拟合并转换我的输入数据X,如下所示:

pca = PCA(n_components=0.9999)
final_X = pca.fit_transform(X)

这产生了13个特征。然后我将它应用于我的测试集:

test_X = pca.fit_transform(test_1)

它只产生9个特征,这在我预测时会出现问题。我将训练有13个特征的数据,然后用9个特征测试数据(并且不保证9是13的子集)。

我应该跟踪PCA选择哪些功能,然后才保留这些功能?

如果是这样,我该怎么做?

谢谢!

答案

您应该在测试数据上使用transform而不是fit_transform,以便以相同的方式(通过相同的pca模型)转换训练和测试数据。 test_X = pca.transform(test_1)

以上是关于Sklearn PCA:列车和测试的组件数量不同的主要内容,如果未能解决你的问题,请参考以下文章

XGBoost 与 GridSearchCV、缩放、PCA 和 sklearn 管道中的 Early-Stopping

sklearn - 如何从传递给 GridSearchCV 的管道中检索 PCA 组件和解释方差

使用 sklearn 提取 PCA 组件

sklearn的PCA

训练和测试集中不同数量的特征 - 随机森林 sklearn Python

为啥 sklearn 的训练/测试拆分加上 PCA 会使我的标签不正确?