为什么 LightGBM 输出这个:完成加载模型,总使用 X 次迭代?

Why is LightGBM outputing this: Finished loading model, total used X iterations?

我是 LightGBM 模型架构的新手。

Finished loading model, total used 15000 iterations

每次训练模型时它都会打印此消息。它由这个 line 打印,我想了解它为什么要加载这个模型。什么是助推器模型?它是如何训练的?为什么它加载这个模型而不是训练一个新模型?

这是我的代码:

lgbparams = {...}
lgbtrain = lgb.Dataset(data=self.train_x, label=self.train_y)

self.model = lgb.train(
  lgb_params, lgbtrain,
  evals_result=self.evals_result,
  valid_sets=lgbtrain,
  verbose_eval=False,
  callbacks=self.callbacks
)

找到打印此行的位置。稍后在训练后的代码中有一行 copy.deepcopy(self.model) 并且因此 LightGBM 库以某种方式打印了有问题的行。

我也看过这张照片,是在 deepcopy 期间。要重现它:

import copy
import numpy as np
import lightgbm as lgb

X = np.random.rand(100,3)
y = np.random.rand(100)
train = lgb.Dataset(X, y)
model = lgb.train({"verbose": -1}, train, num_boost_round=1)

# the printout is here:
model2 = copy.deepcopy(model)

在复制过程中关闭打印的快速修复可以是:

import os
import contextlib

with open(os.devnull, "w") as f, contextlib.redirect_stdout(f):
    model2 = copy.deepcopy(model)

(我得到这个打印输出是因为我直接在 lightgbm 对象上调用 deepcopy。)