PCA如何适应变换测试集

时间:2016-11-13 00:16:13

标签: python numpy scikit-learn pca feature-extraction

我使用from sklearn.decomposition import PCA library, IncrementalPCA来减少问题的维度,如下所示:

training_data = [...] 
training_target = [...]
test_data = [...]
test_target = [...] 
ipca = IncrementalPCA(n_components, batch_size)
new_training_data = ipca.fit_transform(training_data)

要使用给定的分类器运行测试,我需要使用训练集中获得的信息(例如特征值和特征向量)来拟合测试集,以减少新训练集的相同大小。但是我怎么能用这个库(或其他一些)来做这件事,因为ipca.fit_transform(data)没有向我返回任何东西,例如eigpairs或一些值来调整测试集的维度?

1 个答案:

答案 0 :(得分:4)

在您致电IncrementalPCAfit后,转化是fit_transform对象的内部转化。当您调用icpa.fit_transform时,您告诉它确定给定数据的主成分变换,并将该变换应用于数据。要转换另一个数据集,只需使用受过训练的transform对象的IncrementalPCA方法:

new_test_data = ipca.transform(test_data)