课程评价 (0)

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

学员评价

暂无精选评价
20分钟

核心参数

  1. config 或者 config_file: 一个字符串,给出了配置文件的路径。默认为空字符串。
  2. task: 一个字符串,给出了要执行的任务。可以为:
    • 'train' 或者 'training':表示是训练任务。默认为'train'
    • 'predict' 或者 'prediction'或者'test':表示是预测任务。
    • 'convert_model': 表示是模型转换任务。将模型文件转换成if-else 格式。

3.application 或者objective 或者 app : 一个字符串,表示问题类型。可以为:

  • 'regression' 或者 'regression_l2' 或者'mean_squared_error' 或者'mse'或者'l2_root' 或者'root_mean_squred_error' 或者'rmse': 表示回归任务,但是使用L2 损失函数。默认为'regression'
  • 'regression_l1' 或者 mae或者mean_absolute_error: 表示回归任务,但是使用L1 损失函数。
  • 'huber': 表示回归任务,但是使用huber 损失函数。
  • 'fair': 表示回归任务,但是使用fair 损失函数。
  • 'poisson': 表示Poisson 回归任务。
  • 'quantile': 表示quantile回归任务。
  • 'quantile_l2':表示quantile回归任务,但是使用了L2 损失函数。
  • 'mape' 或者 'mean_absolute_precentage_error': 表示回归任务,但是使用MAPE 损失函数
  • 'gamma': 表示gamma 回归任务。
  • 'tweedie': 表示tweedie 回归任务。
  • 'binary': 表示二分类任务,使用对数损失函数作为目标函数。
  • 'multiclass': 表示多分类任务,使用softmax 函数作为目标函数。必须设置num_class 参数
  • 'multiclassova' 或者'multiclass_ova' 或者'ova' 或者'ovr': 表示多分类任务,使用one-vs-all 的二分类目标函数。必须设置num_class 参数
  • 'xentropy' 或者 'cross_entropy': 目标函数为交叉熵(同时具有可选择的线性权重)。要求标签是[0,1] 之间的数值。
  • 'xentlambda' 或者 'cross_entropy_lambda': 替代了参数化的cross_entropy 。要求标签是[0,1] 之间的数值。
  • 'lambdarank':表示排序任务。 在lambdarank 任务中,标签应该为整数类型,数值越大表示相关性越高。label_gain 参数可以用于设置整数标签的增益(权重)

4.boosting 或者 'boost' 或者 'boosting_type': 一个字符串,给出了基学习器模型算法。可以为:

  • 'gbdt': 表示传统的梯度提升决策树。默认值为'gbdt'
  • 'rf': 表示随机森林。
  • 'dart': 表示带dropoutgbdt
  • goss:表示Gradient-based One-Side Samplinggbdt

5.data或者train 或者train_data:一个字符串,给出了训练数据所在的文件的文件名。默认为空字符串。 lightgbm将使用它来训练模型。

6. valid 或者test或者valid_data 或者test_data: 一个字符串,表示验证集所在的文件的文件名。默认为空字符串。 lightgbm 将输出该数据集的度量。 如果有多个验证集,则用逗号, 分隔。

7. num_iterations 或者num_iteration或者num_tree或者 num_trees或者 num_round或者num_rounds或者 num_boost_round: 一个整数,给出了boosting 的迭代次数。默认为 100。

  • 对于python/R包,该参数是被忽略的。对于python,使用train()/cv()的输入参数num_boost_round 来代替。
  • 在内部,lightgbm对于multiclass 问题设置了num_class*num_iterations 棵树。

8.learning_rate 或者shrinkage_rate: 一个浮点数,给出了学习率。默认为 0.1 在dart 中,它还会影响dropped trees 的归一化权重。

9.num_leaves或者num_leaf: 一个整数,给出了一棵树上的叶子数。默认为 31

10.tree_learner 或者 tree:一个字符串,给出了tree learner,主要用于并行学习。 默认为'serial'。 可以为:

  • 'serial': 单台机器的tree learner
  • 'feature': 特征并行的tree learner
  • 'data': 数据并行的tree learner
  • 'voting': 投票并行的tree learner

11.num_threads 或者 num_thread 或者nthread:一个整数, 给出了lightgbm 的线程数。默认为OpenMP_default

  • 为了更快的速度,应该将它设置为真正的CPU 内核数,而不是线程的数量(大多数CPU 使用超线程来使每个CPU内核生成2个线程)。
  • 当数据集较小的时候,不要将它设置的过大
  • 对于并行学习,不应该使用全部的CPU核心,因为这会使得网络性能不佳

12.device: 一个字符串,指定计算设备。默认为'cpu'。 可以为'gpu','cpu'

  • 建议使用较小的max_bin 来获得更快的计算速度
  • 为了加快学习速度,GPU 默认使用32位浮点数来求和。你可以设置gpu_use_dp=True 来启动64位浮点数,但是它会使得训练速度降低。