这段代码我用了很久,一直有效,但这次不知道。
我无法检查的一件事是它工作时的 lightgbm 版本,但当前版本是 3.1.1
import lightgbm as lgb
params = {
'boosting_type': 'gbdt',
"objective": "binary",
"learning_rate": 0.1,
"num_leaves": 32,
'feature_fraction': 0.7,
"bagging_fraction": 0.7,
'max_depth': -1,
'lambda_l2': 0.1,
}
d_train = lgb.Dataset(
xy_train[feats_list], label=xy_train[['label']], free_raw_data=True
)
LOGGER.info("Done create D-train Matrix")
models = lgb.cv(
params,
d_train,
num_boost_round=300,
folds=folds,
early_stopping_rounds=20,
metrics='auc',
verbose_eval=25,
show_stdv=True,
seed=42,
return_cvbooster=True
)
xy_train 是 Pandas 数据框,折叠是正确生成的。如果可能的话,我需要 early_stopping_rounds arg 仍然不是 None 以免影响整个模块化代码的其他部分。
提前感谢您的友好回答或评论:)