gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 18:22:56 28 4
gpt4 key购买 nike

在下面的代码中:

# 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.best_estimator_?或
  • gs.best_estimator_.named_steps['clf']?

这三者有什么区别?

最佳答案

gs.predict(X_test) 等同于 gs.best_estimator_.predict(X_test)。无论使用哪种方式,X_test 都将通过您的整个管道并返回预测结果。

gs.best_estimator_.named_steps['clf'].predict(),但这只是管道的最后阶段。要使用它,必须已经执行了特征选择步骤。这仅在您之前通过 gs.best_estimator_.named_steps['fs'].transform()

运行数据时才有效

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

直接使用gs

pred = gs.predict(X_test)

使用 best_estimator_

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)

关于python - 如何使用 GridSearchCV 输出进行 scikit 预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35388647/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com