交叉验证中包含的管道

时间:2016-04-13 08:53:31

标签: python scikit-learn pipeline

我正在使用Python 2.7和Scikit。

我想知道在进行交叉验证时使用管道是否明智。

请考虑以下示例:

#Pipeline
pipe_rf = Pipeline([('pca', PCA(n_components=80)),
                    ('clf',RandomForestClassifier(n_estimators=100))])
pipe_rf.fit(X_train_s,y_train_s)

pred = pipe_rf.predict(X_test)

#CrossValidation
from sklearn import cross_validation
scores = cross_validation.cross_val_score(pipe_rf, 
                                          X_train,
                                          y_train, 
                                          cv=10,
                                          scoring='f1')
print 'Train score is: %.5f' % scores.mean()

像这样,CV模块将应用PCA步骤10次,这非常消耗且不必要。而且我没有包含任何其他步骤。

0 个答案:

没有答案