2.1 调参指导
针对
leaf-wise
树的参数优化:num_leaves
:控制了叶节点的数目。它是控制树模型复杂度的主要参数。如果是
level-wise
, 则该参数为 ,其中 为树的深度。但是当叶子数量相同时,
leaf-wise
的树要远远深过level-wise
树,非常容易导致过拟合。因此应该让num_leaves
小于在
leaf-wise
树中,并不存在depth
的概念。因为不存在一个从leaves
到depth
的合理映射min_data_in_leaf
: 每个叶节点的最少样本数量。它是处理leaf-wise
树的过拟合的重要参数。将它设为较大的值,可以避免生成一个过深的树。但是也可能导致欠拟合。
max_depth
: 控制了树的最大深度。该参数可以显式的限制树的深度。
针对更快的训练速度:
- 通过设置
bagging_fraction
和bagging_freq
参数来使用 bagging 方法 - 通过设置
feature_fraction
参数来使用特征的子抽样 - 使用较小的
max_bin
- 使用
save_binary
在未来的学习过程对数据加载进行加速
- 通过设置
获取更好的准确率:
- 使用较大的
max_bin
(学习速度可能变慢) - 使用较小的
learning_rate
和较大的num_iterations
- 使用较大的
num_leaves
(可能导致过拟合) - 使用更大的训练数据
- 尝试
dart
- 使用较大的
缓解过拟合:
- 使用较小的
max_bin
- 使用较小的
num_leaves
- 使用
min_data_in_leaf
和min_sum_hessian_in_leaf
- 通过设置
bagging_fraction
和bagging_freq
来使用bagging
- 通过设置
feature_fraction
来使用特征子抽样 - 使用更大的训练数据
- 使用
lambda_l1
,lambda_l2
和min_gain_to_split
来使用正则 - 尝试
max_depth
来避免生成过深的树
- 使用较小的