PCA 如何在测试集上拟合变换

Jef*_*son 3 python numpy feature-extraction pca scikit-learn

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

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

bog*_*ron 5

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

new_test_data = ipca.transform(test_data)
Run Code Online (Sandbox Code Playgroud)