【发布时间】:2019-11-10 03:56:59
【问题描述】:
我正在使用 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)
lgbm 得出结论,0.7326 上的 auc 并不优于 0.70995 并停止。 我做错了什么?
【问题讨论】:
-
将 learning_rate 比默认值降低一个数量级,并将 boosting 轮数增加到默认值以上 70 倍可能很容易导致过度拟合,因此请确保您还在未触及的数据集上获得了一些指标(例如超时)