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

时间:2018-03-09 15:07:46

标签: python scikit-learn 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选择哪些功能,然后才保留这些功能?

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

谢谢!

1 个答案:

答案 0 :(得分:3)

您应该在测试数据上使用RequestSftp而不是transform,以便以相同的方式转换 training testing 数据(通过相同的fit_transform模型)。 pca