我正在使用 lightgbm 执行机器学习任务。
我想使用提前停止来找到给定多个超参数的最佳树数。 然而,lgbm 停止种树,同时仍在改进我的评估指标。
下面我附上了我的规范:
params = {
'max_bin' : [128],
'num_leaves': [8],
'reg_alpha' : [1.2],
'reg_lambda' : [1.2],
'min_data_in_leaf' : [50],
'bagging_fraction' : [0.5],
'learning_rate' : [0.001]
}
mdl = lgb.LGBMClassifier(n_jobs=-1, n_estimators=7000,
**params)
mdl.fit(X_train, y_train, eval_metric='auc',
eval_set=[(X_test, y_test)], early_stopping_rounds=2000,
categorical_feature=categorical_features, verbose=5)
lgbm 的结论是 0.7326 的 auc 并不优于 0.70995 并停止。
我做错了什么?
最佳答案
它工作正常:如 doc for early stopping 中所述:
will stop training if one metric of one validation data doesn’t improve in last early_stopping_round rounds
并且您的 logloss 在第 1034 轮时更好。
尝试使用first_metric_only = True 或从列表中删除 logloss(使用度量参数)
关于python - Lightgbm 提前停止无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56802708/