如何应用PCA和Random Forest训练的模型来测试数据?

时间:2016-04-03 07:07:01

标签: python-2.7 machine-learning scikit-learn random-forest

在解决机器学习问题之一时,我正在实施PCA训练数据,然后使用sklearn在火车数据上应用.transform。在观察方差后,我只保留方差很大的变换数据中的那些列。然后我使用RandomForestClassifier训练模型。现在,我很困惑如何将测试数据应用于测试数据,因为测试数据的列数和保留的变换数据(应用随机森林)是不同的。任何解决方案将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:2)

如果这是你所寻求的,这是一种做法...理想情况下,你应该在测试和训练中使用相同数量的主要成分......否则就会违背保留集的目的。 / p>

pca = PCA(n_components=20)
train_features = pca.fit_transform(train_data)

rfr = sklearn.RandomForestClassifier(n_estimators = 100, n_jobs = 1, 
                                         random_state = 2016, verbose = 1,
                                         class_weight='balanced',oob_score=True)

rfr.fit(train_features)

test_features = pca.transform(test_data)
rfr.predict(test_features)