如何将使用PCA和随机森林训练的模型应用于测试数据?

在解决一个机器学习问题时,我在训练数据上应用了PCA,并使用sklearn对训练数据进行了.transform操作。在观察了方差后,我只保留了变换后数据中方差较大的那些列。然后,我使用RandomForestClassifier训练了模型。现在,我感到困惑:如何将训练好的模型应用于测试数据,因为测试数据的列数与用于随机森林的保留变换数据的列数不同?


回答:

如果这是你想要的,这里是一种做法… 理想情况下,你应该在测试和训练数据中使用相同数量的主成分… 否则,保留集的目的就失去了意义。

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)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注