课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
20分钟

直接学习

  1. lightgbm.train() 函数执行直接训练。
lightgbm.train(params, train_set, num_boost_round=100, valid_sets=None,  valid_names=None, fobj=None, feval=None, init_model=None, feature_name='auto',  categorical_feature='auto', early_stopping_rounds=None, evals_result=None,   verbose_eval=True, learning_rates=None, keep_training_booster=False, callbacks=None)

参数:

  • params: 一个字典,给出了训练参数
  • train_set: 一个Dataset对象,给出了训练集
  • num_boost_round: 一个整数,给出了boosting iteration 的次数。默认为100
  • valid_sets:一个Dataset 的列表或者None,给出了训练期间用于evaluate的数据集。默认为None
  • valid_names:一个字符串列表或者None, 给出了valid_sets 中每个数据集的名字。默认为None
  • fobj:一个可调用对象或者None,表示自定义的目标函数。默认为None
  • feval:一个可调用对象或者None, 它表示自定义的evaluation 函数。默认为None。它的输入为(y_true, y_pred)、或者( y_true, y_pred, weight) 、或者(y_true, y_pred, weight, group), 返回一个元组:(eval_name,eval_result,is_higher_better) 。或者返回该元组的列表。
  • init_model:一个字符串或者None,它给出了lightgbm model 保存的文件名,或者Booster实例的名字。后续的训练在该model 或者Booster 实例的基础上继续训练。默认为None
  • feature_name: 一个字符串列表或者'auto',它指定了特征的名字。默认为'auto'
    • 如果数据源为pandas DataFrame 并且feature_name='auto',则使用DataFramecolumn names
  • categorical_feature:一个字符串列表、整数列表、或者'auto'。它指定了categorical 特征。默认为'auto'
    • 如果是整数列表,则给定了categorical 特征的下标
    • 如果是字符串列表,在给定了categorical 特征的名字。此时必须设定feature_name 参数。
    • 如果是'auto' 并且数据源为pandas DataFrame,则DataFramecategorical 列将作为categorical 特征
  • early_stopping_rounds:一个整数或者None,表示验证集的score 在连续多少轮未改善之后就早停。默认为None 该参数要求至少有一个验证集以及一个metric。 如果由多个验证集或者多个metric,则对所有的验证集和所有的metric 执行。 如果发生了早停,则模型会添加一个best_iteration字段。该字段持有了最佳的迭代步。
  • evals_result:一个字典或者None,这个字典用于存储在valid_sets 中指定的所有验证集的所有验证结果。默认为None
  • verbose_eval:一个布尔值或者整数。默认为True
    • 如果是True,则在验证集上每个boosting stage 打印对验证集评估的metric
    • 如果是整数,则每隔verbose_evalboosting stage 打印对验证集评估的metric
    • 否则,不打印这些

    该参数要求至少由一个验证集。

  • learning_rates:一个列表、None、 可调用对象。它指定了学习率。默认为None
    • 如果为列表,则它给出了每一个boosting 步的学习率
    • 如果为一个可调用对象,则在每个boosting 步都调用它,从而生成一个学习率
    • 如果为一个数值,则学习率在学习期间都固定为它。

    你可以使用学习率衰减从而生成一个更好的学习率序列。

  • keep_training_booster:一个布尔值,指示训练得到的Booster对象是否还会继续训练。默认为False
    • 如果为False,则返回的booster 对象在返回之前将被转换为_InnerPredictor 。 当然你也可以将_InnerPredictor 传递给init_model 参数从而继续训练。
  • callbacks:一个可调用对象的列表,或者None。 它给出了在每个迭代步之后需要执行的函数。默认为None

返回:一个Booster 实例