提高准确率:
learning_rate:学习率.
默认值:0.1
调参策略:最开始可以设置得大一些,如0.1。调整完其他参数之后最后再将此参数调小。
取值范围:0.01~0.3.
max_depth:树模型深度
默认值:-1
调整策略:无
取值范围:3-8(不超过10)
num_leaves:叶子节点数,数模型复杂度。
默认值:31
调整策略:可以设置为2的n次幂。如 但要大于分类的类别数
取值范围:
降低过拟合
max_bin:工具箱数(叶子结点数+非叶子节点数?)
工具箱的最大数特征值决定了容量 工具箱的最小数特征值可能会降低训练的准确性, 但是可能会增加一些一般的影响(处理过度学习)
LightGBM 将根据 max_bin 自动压缩内存。 例如, 如果 maxbin=255, 那么 LightGBM 将使用 uint8t 的特性值
min_data_in_leaf:一个叶子上数据的最小数量. 可以用来处理过拟合
默认值:20
调参策略:搜索,尽量不要太大。
feature_fraction:每次迭代中随机选择特征的比例。
默认值:1.0
调参策略:0.5-0.9之间调节。
可以用来加速训练
可以用来处理过拟合
bagging_fraction:不进行重采样的情况下随机选择部分数据
默认值:1.0
调参策略:0.5-0.9之间调节。
可以用来加速训练
可以用来处理过拟合
bagging_freq:bagging的次数。0表示禁用bagging,非零值表示执行k次bagging
默认值:0
调参策略:3-5
lambda_l1:L1正则
lambda_l2:L2正则
min_split_gain:执行切分的最小增益
默认值:0.1
For Faster Speed
- Use bagging by setting
bagging_fraction
andbagging_freq
- Use feature sub-sampling by setting
feature_fraction
- Use small
max_bin
- Use
save_binary
to speed up data loading in future learning - Use parallel learning, refer to Parallel Learning Guide
For Better Accuracy
- Use large
max_bin
(may be slower) - Use small
learning_rate
with largenum_iterations
- Use large
num_leaves
(may cause over-fitting) - Use bigger training data
- Try
dart
Deal with Over-fitting
- Use small
max_bin
- Use small
num_leaves
- Use
min_data_in_leaf
andmin_sum_hessian_in_leaf
- Use bagging by set
bagging_fraction
andbagging_freq
- Use feature sub-sampling by set
feature_fraction
- Use bigger training data
- Try
lambda_l1
,lambda_l2
andmin_gain_to_split
for regularization - Try
max_depth
to avoid growing deep tree