我正在尝试XGBClassifier
从xgb
包Pipeline
中实现scikit-learn
。
我的目标是在一个函数中调整许多算法的超参数并选择性能最佳的模型。但是,我收到标题中所述的错误。我怎样才能解决这个问题?我试图从 中删除"clf_"
,grid_params_xgb
但是它没有用。
其次,有没有更好的方法来为不同的算法自动构建一组超参数?现在,我正在为每个算法手动定义参数集。
非常感谢。
pipe_xgb = Pipeline([('clf', XGBClassifier(random_state=42))])
grid_params_xgb = [{'clf_max_depth': [2,4,6],
'clf_n_estimators': [50,100,200],
'clf_learning_rate': [0.0001, 0.001, 0.01, 0.1, 0.2, 0.3]}]
gs_xgb = GridSearchCV(estimator = pipe_xgb,
param_grid = grid_params_xgb,
scoring='accuracy',
cv=10,
n_jobs=jobs)
gs_xgb.fit(X_train, y_train)
y_predict = gs_xgb.predict(X_test)
print('Test set accuracy score for best params: %.3f ' % accuracy_score(y_test, y_pred))