Lightgbm 提前停止无法正常工作

Nic*_*sen 1 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)
Run Code Online (Sandbox Code Playgroud)

一段时间后,lightgbm 给了我以下结果: 例子

lgbm 得出结论,0.7326 上的 auc 不优于 0.70995 并停止。我究竟做错了什么?

Flo*_*tel 6

它工作正常:正如文档中所说的提前停止

如果一个验证数据的一个指标在最后一次 early_stopping_round 轮次中没有改善,则将停止训练

并且您的 logloss 在第 1034 轮更好。

尝试使用first_metric_only = True 或从列表中删除 logloss(使用 metric 参数)