核心参数
config
或者config_file
: 一个字符串,给出了配置文件的路径。默认为空字符串。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'
: 表示带dropout
的gbdt
goss
:表示Gradient-based One-Side Sampling
的gbdt
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位浮点数,但是它会使得训练速度降低。
学员评价