![](/img/trans.png)
[英]Error while hyper parameter tuning of XGBRegressor in xgboost
[英]GridSearchCV: Parameter error in XGBRegressor
我使用 GridSearchCV 在我的 XGB model 中找到最佳參數,這是我的代碼
# 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 文檔中所解釋的,不同的參數值需要作為列表傳遞給GridSearchCV
,這意味着booster
、 objective
和eval_metric
也需要用方括號括起來:
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']
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.