我正在使用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)