lightgbm.train
- lightgbm.train(params, train_set, num_boost_round=100, valid_sets=None, valid_names=None, feval=None, init_model=None, keep_training_booster=False, callbacks=None)[source]
使用给定参数执行训练。
- 参数:
params (dict) – 用于训练的参数。通过
params
传递的值优先于通过参数提供的值。train_set (Dataset) – 用于训练的数据。
num_boost_round (int, 可选 (默认值=100)) – 提升迭代次数。
valid_sets (Dataset 列表, 或 None, 可选 (默认值=None)) – 训练期间用于评估的数据列表。
valid_names (str 列表, 或 None, 可选 (默认值=None)) –
valid_sets
的名称。feval (可调用对象, 可调用对象列表, 或 None, 可选 (默认值=None)) –
自定义评估函数。每个评估函数应接受两个参数:preds, eval_data,并返回 (eval_name, eval_result, is_higher_better) 或此类元组的列表。
- predsnumpy 1维数组或 numpy 2维数组(适用于多类任务)
预测值。对于多类任务,preds 是形状为 [n_samples, n_classes] 的 numpy 2维数组。如果使用自定义目标函数,预测值在任何转换之前返回,例如在这种情况下,它们是原始 margin 而不是二分类任务中正类的概率。
- eval_dataDataset
要评估的
Dataset
。- eval_namestr
评估函数的名称(无空格)。
- eval_resultfloat
评估结果。
- is_higher_betterbool
评估结果是否越高越好,例如 AUC 就是
is_higher_better
。
要忽略与所用目标对应的默认度量,请在
params
中将metric
参数设置为字符串"None"
。init_model (str, pathlib.Path, Booster 或 None, 可选 (默认值=None)) – 用于继续训练的 LightGBM 模型文件名或 Booster 实例。
keep_training_booster (bool, 可选 (默认值=False)) – 返回的 Booster 是否将用于继续训练。如果为 False,返回的值在返回前将被转换为 _InnerPredictor。这意味着你将无法使用返回的 Booster 的
eval
,eval_train
或eval_valid
方法。当你的模型非常大并导致内存错误时,你可以尝试将此参数设置为True
,以避免在内部调用model_to_string
时执行的模型转换。你仍然可以使用 _InnerPredictor 作为init_model
进行将来的继续训练。callbacks (可调用对象列表, 或 None, 可选 (默认值=None)) – 在每次迭代中应用的回调函数列表。有关详细信息,请参阅 Python API 中的 回调函数。
注意
可以为
objective
参数提供自定义目标函数。它应接受两个参数:preds, train_data,并返回 (grad, hess)。- predsnumpy 1维数组或 numpy 2维数组(适用于多类任务)
预测值。预测值在任何转换之前返回,例如它们是原始 margin 而不是二分类任务中正类的概率。
- train_dataDataset
训练数据集。
- gradnumpy 1维数组或 numpy 2维数组(适用于多类任务)
损失相对于每个样本点的 preds 元素的第一个导数(梯度)的值。
- hessnumpy 1维数组或 numpy 2维数组(适用于多类任务)
损失相对于每个样本点的 preds 元素的第二个导数(Hessian)的值。
对于多类任务,preds 是形状为 [n_samples, n_classes] 的 numpy 2维数组,grad 和 hess 应以相同的格式返回。
- 返回:
booster – 训练好的 Booster 模型。
- 返回类型: