Python 如何使用GridSearchCV输出进行scikit预测?

Python 如何使用GridSearchCV输出进行scikit预测?,python,scikit-learn,grid-search,Python,Scikit Learn,Grid Search,在以下代码中: # Load dataset iris = datasets.load_iris() X, y = iris.data, iris.target rf_feature_imp = RandomForestClassifier(100) feat_selection = SelectFromModel(rf_feature_imp, threshold=0.5) clf = RandomForestClassifier(5000) model = Pipeline([

在以下代码中:

# Load dataset
iris = datasets.load_iris()
X, y = iris.data, iris.target

rf_feature_imp = RandomForestClassifier(100)
feat_selection = SelectFromModel(rf_feature_imp, threshold=0.5)

clf = RandomForestClassifier(5000)

model = Pipeline([
          ('fs', feat_selection), 
          ('clf', clf), 
        ])

 params = {
    'fs__threshold': [0.5, 0.3, 0.7],
    'fs__estimator__max_features': ['auto', 'sqrt', 'log2'],
    'clf__max_features': ['auto', 'sqrt', 'log2'],
 }

 gs = GridSearchCV(model, params, ...)
 gs.fit(X,y)
预测应该使用什么?

  • gs
  • gs.最佳估计值
    ? 或
  • gs.best\u estimator\u.named\u steps['clf']
这三者之间的区别是什么?
gs.predict(X\u检验)
等同于
gs.best\u estimator\uu.predict(X\u检验)
。使用其中一种方法,
X_test
将通过整个管道,并返回预测

gs.best\u estimator\u.named\u steps['clf'].predict()
,但这只是管道的最后阶段。要使用它,必须已执行特征选择步骤。这只有在您以前通过
gs.best\u estimator\uu.named\u steps['fs'].transform()运行过数据时才有效。

生成预测的三种等效方法如下所示:

直接使用
gs

pred = gs.predict(X_test)
使用
最佳估计器

pred = gs.best_estimator_.predict(X_test)
单独调用管道中的每个步骤

X_test_fs = gs.best_estimator_.named_steps['fs'].transform(X_test)
pred = gs.best_estimator_.named_steps['clf'].predict(X_test_fs)

非常感谢你!有没有官方医生也这么说?