lightgbm.train

lightgbm.train(params, train_set, num_boost_round=100, valid_sets=None, valid_names=None, feval=None, init_model=None, feature_name='auto', categorical_feature='auto', keep_training_booster=False, callbacks=None)[源代码]

使用给定的参数执行训练。

参数:
  • params (dict) – 训练参数。通过 params 传递的值优先于通过参数提供的值。

  • train_set (Dataset) – 要训练的数据。

  • num_boost_round (int, optional (default=100)) – 提升迭代的次数。

  • valid_sets (list of Dataset, or None, optional (default=None)) – 训练期间要评估的数据列表。

  • valid_names (list of str, or None, optional (default=None)) – valid_sets 的名称。

  • feval (callable, list of callable, or None, optional (default=None)) –

    自定义评估函数。每个评估函数应接受两个参数:preds, eval_data,并返回 (eval_name, eval_result, is_higher_better) 或此类元组的列表。

    预测numpy 一维数组或 numpy 二维数组(用于多类任务)

    预测值。对于多分类任务,preds 是形状为 [n_samples, n_classes] 的 numpy 二维数组。如果使用了自定义目标函数,预测值在任何转换之前返回,例如在这种情况下,它们是原始边际而不是二分类任务中正类的概率。

    eval_data数据集

    一个用于评估的 Dataset

    eval_namestr

    评估函数的名称(不包含空格)。

    eval_result浮动

    评估结果。

    is_higher_better布尔

    评估结果是否越高越好,例如 AUC 是 is_higher_better

    要忽略与所用目标对应的默认指标,请在 params 中将 metric 参数设置为字符串 "None"

  • init_model (str, pathlib.Path, Booster or None, optional (default=None)) – 用于继续训练的 LightGBM 模型文件名或 Booster 实例。

  • feature_name (list of str, or 'auto', optional (default="auto")) – 已弃用。 请在 train_set 上设置 feature_name。特征名称。如果为 ‘auto’ 且数据为 pandas DataFrame,则使用数据列名称。

  • categorical_feature (list of str or int, or 'auto', optional (default="auto")) – 已弃用。 请在 train_set 上设置 categorical_feature。分类特征。如果是整数列表,则解释为索引。如果是字符串列表,则解释为特征名称(还需要指定 feature_name)。如果是 ‘auto’ 且数据是 pandas DataFrame,则使用 pandas 无序分类列。分类特征中的所有值将被转换为 int32,因此应小于 int32 的最大值(2147483647)。大值可能会消耗大量内存。建议使用从零开始的连续整数。分类特征中的所有负值将被视为缺失值。输出不能相对于分类特征进行单调约束。分类特征中的浮点数将向 0 舍入。

  • keep_training_booster (bool, optional (default=False)) – 返回的 Booster 是否用于继续训练。如果为 False,返回的值将在返回前转换为 _InnerPredictor。这意味着你将无法使用返回的 Booster 的 evaleval_traineval_valid 方法。当你的模型非常大并导致内存错误时,你可以尝试将此参数设置为 True,以避免在内部调用 model_to_string 期间执行的模型转换。你仍然可以将 _InnerPredictor 用作未来继续训练的 init_model

  • callbacks (list of callable, or None, optional (default=None)) – 在每次迭代时应用的回调函数列表。更多信息请参见 Python API 中的回调。

备注

可以为 objective 参数提供自定义目标函数。它应接受两个参数:preds, train_data 并返回 (grad, hess)。

预测numpy 一维数组或 numpy 二维数组(用于多类任务)

预测值。预测值在任何转换之前返回,例如,对于二分类任务,它们是原始边际而不是正类的概率。

训练数据数据集

训练数据集。

梯度numpy 一维数组或 numpy 二维数组(用于多类任务)

每个样本点相对于 preds 元素的损失的一阶导数(梯度)的值。

hessnumpy 一维数组或 numpy 二维数组(用于多类任务)

每个样本点的损失相对于 preds 元素的二阶导数(Hessian)的值。

对于多类任务,preds 是形状为 [n_samples, n_classes] 的 numpy 二维数组,grad 和 hess 应以相同格式返回。

返回:

booster – 训练好的 Booster 模型。

返回类型:

Booster