0

我目前在 python 上使用 lightgbm 库。

model = lgb.LGBMRegressor(objective='regression', metric='rmse', boosting_type='rf', max_depth=20, num_leaves=20,
                          learning_rate=0.1, feature_fraction=0.8, feature_fraction_seed=10, bagging_fraction=0.8,
                          bagging_freq=1, bagging_seed=10, verbosity=True,
                          lambda_l2=0.000001, lambda_l1=0.00001, max_bin=200)
model.fit(X_train, np.log1p(y_train), num_iteration=1000, eval_set=[(X_val, np.log1p(y_val) )], eval_metric="rmse", verbose=True, early_stopping_rounds=20)

问题是,训练在 100 次迭代后停止。我在文档上没有找到步骤参数,所以我想知道如何增加迭代次数?我不想使用 lgb.train() 函数。事实上,我还想使用 sklearn 中的网格搜索功能(然后获取模型),所以我需要使用 fit 功能。有谁知道如何解决我的问题?

编辑:使用 num_iterations 参数似乎可行,但我们需要最新版本的 lightgbm。我以前的版本因此不起作用!

4

2 回答 2

0

您已设置early_stopping_rounds=20,这意味着如果您在最近 20 次迭代中对验证数据没有任何改进,则训练将停止。这用于避免过度拟合,但如果设置得太低,可能会提前停止训练。

于 2018-07-17T11:46:43.163 回答
0

n_estimators是sklearn API中模型构造函数的参数,控制要构建的树的数量。您也可以通过设置它model.set_params()

于 2018-07-17T07:19:32.757 回答