簡體   English   中英

GridSearchCV:XGBRegressor 中的參數錯誤

[英]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 ,這意味着boosterobjectiveeval_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM