Lightgbm提前停止无法正常工作

时间:2019-06-28 07:31:46

标签: python lightgbm

我正在使用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给我以下结果: example

lgbm得出结论,0.7326的auc值不优于0.70995,然后停止。 我在做什么错了?

1 个答案:

答案 0 :(得分:0)

它工作正常:如doc for early stopping中所述:

  

如果一项验证数据中的一项指标未达到标准,则将停止训练   在最后的Early_stopping_round回合中得到改善

在1034轮时,您的对数损失更好。

尝试使用first_metric_only = True或从列表中删除对数丢失(使用度量参数)