在sklearn中,适合的管道是否会重新应用每个变换?

时间:2015-06-22 02:49:42

标签: python scikit-learn pipeline feature-selection

道歉,如果这是显而易见的,但我找不到明确的答案:

说我使用了一个非常典型的管道:

feat_sel = RandomizedLogisticRegression()
clf = RandomForestClassifier()
pl = Pipeline([ ('preprocessing', preprocessing.StandardScaler()),
            ('feature_selection', feat_sel),
            ('classification', clf)])
pl.fit(X,y)

现在,当我在新的套装上使用pl时,

pl.predict(X_classify);

是要重新应用RandomizedLogisticRegression还是在培训中选择的列将用于新数据?如果没有,管道是否有办法区分特征选择器和应该应用于新输入的特征提取器/缩放器/其他变换?直到我确定,我正在跳过管道功能,只是手动完成每个步骤并保持状态。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您致电transform,管道会在预处理和功能选择步骤上调用pl.predict。 这意味着在训练中选择的特征将从测试数据中选择(这里唯一有意义的东西)。

目前还不清楚你的意思是"申请"这里。在致电"预测"时,将不会学到任何新内容,但所有步骤都将与" transform"一起使用。