记一次LightGBM-GBDT参数调整经历

记一次LightGBM-GBDT参数调整经历

调整原因:项目要从有验证集的训练方式转变为无验证集的训练方式。

问题:有验证集的训练方式可以通过验证集earlystop来控制训练的过拟合问题,换成无验证集的训练方式后,无法继续通过使用earlystop这种方式来减少过拟合了,需要增强其他的正则。

项目使用工具包:LightGBM,树模型为GBDT

相关的原理这里不做过多的介绍,上面的文档以及网络上资源很多,这里主要涉及参数调整实录。

官方文档给的建议:

lightgbm的参数有很多:

可以针对性的看一下

over-fitting

在这里插入图片描述

可以看到参数有好几个可供调整,但针对不同的树,调整的参数不一样。

这里是调节GBDT树,选的参数有三个:

  • lambda_l2: l2 regularization;
  • min_data_in_leaf:minimal number of data in one leaf;
  • bagging_fraction: this will randomly select part of data without resampling;

三个参数分别控制L2正则,一个叶子中数据最少量,随机采样(相当于剪枝)

参数仿真

1.lambda_l2

lambda_valuetrain(auc)valid(abc)
Early stop 0.00.73750.6544
0.10.7420.6540
0.20.72490.6544
0.30.76530.6557
0.40.78830.6586
0.50.7640.6566
0.350.75170.6565
0.380.79140.6561

2.min_data_in_leaf

min_data_in_leaf valuetrainvalid
early stop 200.73750.6544
2000.774330.6592
5000.76940.6628
10000.763720.6646
20000.756650.6622
30000.75640.66335
200000.74820.661

3.bagging_fraction

bagging_fraction valuetrainvalid
early stop 1.00.73750.6544
0.90.73750.6544
0.80.73750.6544

从上述实验中可以看到,lambda_l2和min_data_in_leaf有效果,而bagging_fraction无效果

合起来实验

lambda value, min data in leaftraintest
0.1,10000.76770.661708
0.1,5000.7720.662445
0.1, 2000.7763610.6585
0.4,2000.77550.656514
0.4,5000.77230.66195
0.4, 10000.76790.66207

最终选定参数为lambda_l2=0.1min_data_in_leaf=500

总结

  • lambda_l2和min_data_in_leaf对过拟合有比较明显的效果,而bagging_fraction效果不大;
  • min_data_in_leaf的值越大,仿真越慢,一般是几百至几千;
  • lightGBM可调参数很多,可进行不断的尝试;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值