1. num_leaves
- 含义:
num_leaves
控制每棵树可以生成的叶子节点数,代表模型的复杂性。更高的叶子节点数意味着模型可以捕捉更细致的特征关系,但也更容易过拟合。 - 默认值:通常设置在
31
或64
。 - 如何调整:
- 增大
num_leaves
:增大叶子数能够提升模型的拟合能力,但容易过拟合。在复杂的数据集上可以适当增加,如100
到300
的范围。 - 减小
num_leaves
:如果模型出现过拟合现象,可以减小叶子数,以控制模型的复杂度。 - 建议范围:根据数据量、特征数量和任务的复杂度,通常设置在
31
-300
之间。
- 增大
2. learning_rate
- 含义:
learning_rate
控制每一步更新的步长,较小的learning_rate
会让模型在训练过程中缓慢学习,以防止过拟合。 - 默认值:0.1
- 如何调整:
- 减小
learning_rate
:减小learning_rate
可以提高模型的泛化能力,但训练速度会减慢。可以同时增加nrounds
(迭代次数)来弥补学习速率的降低。 - 增大
learning_rate
:当数据量较少或者特征较少时,可以尝试增大learning_rate
来加快训练速度。 - 常用值:一般
0.01
到0.1
是合理的选择,0.01
适合长时间训练,0.1
更适合快速建模。
- 减小
3. max_depth
- 含义:
max_depth
限制树的最大深度,较深的树可以捕捉更复杂的模式,但也容易过拟合。 - 默认值:-1(即不限制深度,模型会自动确定)
- 如何调整:
- 增大
max_depth
:在数据较复杂且样本量大的情况下,可以增大max_depth
,允许模型捕捉更多细节。一般来说,设置在10
到20
之间。 - 减小
max_depth
:在样本量较小或噪音较多时,较小的max_depth
能防止过拟合。可以尝试将max_depth
设置在3
到8
之间。 - 注意:
max_depth
和num_leaves
是相互制约的,如果num_leaves
较小,max_depth
的作用也会减弱。两者可以一起调节,保证合理的树结构。
- 增大
4. min_data_in_leaf
- 含义:
min_data_in_leaf
控制叶子节点的最小样本数量,防止生成样本数过少的叶子节点。它是控制过拟合的有效方法,特别是在数据较少的情况下。 - 默认值:20
- 如何调整:
- 增大
min_data_in_leaf
:增大这个参数可以减少过拟合,因为它会限制叶子的分割。如果出现过拟合,可以尝试增大到30
到100
。 - 减小
min_data_in_leaf
:在数据量大且样本平衡的情况下,可以适当减小,以便捕捉更细的模式。通常不会设置太小,5
到20
是合理范围。
- 增大
调参策略
- 初始调参:通常可以从默认值开始,先固定
learning_rate
,从小范围调整num_leaves
和max_depth
,观察模型效果。 - 防止过拟合:如果模型过拟合,优先增大
min_data_in_leaf
和减小max_depth
。 - 提高模型拟合能力:如果模型欠拟合,可以适当增大
num_leaves
和max_depth
,同时降低learning_rate
并增加迭代次数 (nrounds
)。
通过交叉验证观察模型在不同参数组合下的表现,逐步找到最佳参数。
标签:重要,max,rate,depth,num,参数,learning,拟合,LightGBM From: https://www.cnblogs.com/wzbzk/p/18517965