Lightgbm 提前停止无法正常工作
Lightgbm early stopping not working propperly
我正在使用 light gbm 执行一些机器学习任务。
我想在给定多个超参数的情况下使用早停来找到最佳树数。
然而,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)
一段时间后 lightgbm 给我以下结果:
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(使用度量参数)
我正在使用 light gbm 执行一些机器学习任务。
我想在给定多个超参数的情况下使用早停来找到最佳树数。 然而,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)
一段时间后 lightgbm 给我以下结果:
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(使用度量参数)