我使用GridSearchCV查找XGB模型中的最佳参数,下面是我的代码
# Xgboost
grid_xgb = {
'booster': 'gbtree',
'objective': 'binary:logistic',
'subsample': [0.6,0.7,0.8,0.9],
'colsample_bytree': [0.6,0.7,0.8,0.9],
'eta': [0.05,0.1,0.2,0.3],
'max_depth': [3,5,7],
'seed': [2021,2022],
'eval_metric': 'logloss'
}
model_xgb = xgb.XGBRegressor()
search_xgb = GridSearchCV(estimator = model_xgb,
param_grid = grid_xgb,
cv = 5,
n_jobs = -1,
verbose = 2)
但我得到一个错误信息:
Parameter values for parameter (booster) need to be a sequence(but not a string) or np.ndarray
我检查了XGB文档,它说
“助推器[默认值=gbtree]
要使用的助推器。可以是gbtree、gblinear或dart;gbtree和dart使用基于树的模型,而gblinear使用线性函数。”
所以,我不知道为什么会发生错误,也不知道该怎么解决
如scikit-learn documentation中所述,不同的参数值需要作为列表传递给
GridSearchCV
,这意味着booster
、objective
和eval_metric
也需要用方括号括起来:相关问题 更多 >
编程相关推荐