xgboost.cv TypeError: cv() got multiple values for argument 'dtrain'

xgboost.cv TypeError: cv() got multiple values for argument 'dtrain'

我正在尝试为 xgboost 手动测试不同的超参数,但此错误不断出现。如果它以逗号结尾,我不确定我如何向 dtrain 提供多个参数。

import xgboost as xgb
dtrain = xgb.DMatrix(X, label=y)
params = {'eta':[0.1]}
xgb_cv = xgb.cv(
    {'disable_default_eval_metric': 1},
    params,
    dtrain=dtrain,
    seed=1,
    nfold=5,
    custom_metric=f1_score
)

xgboost.cv 的签名是 (params, dtrain, ...)。因此它认为您将 metric-disabling-dict 作为 params 传递,将 eta-dict 作为 dtrain 传递,然后尝试通过关键字传递另一个 dtrain。如果 disable_default_eval_metric 应该是另一个参数,请将其添加到包含 etaparams 字典中。