LightGBM参数说明与参数调优建议

1. 引入

从识别率上来说,LGBM并不逊色于XGB和RF;LGBM在笔者很多场景下都优于CatBoost。
从工程化上来说,LGBM的模型size小、训练速度快、支持并发训练、兼容sklearn接口、支持GPU训练,这都使得LGBM的工程化能力更强。
和RF比较,在准确率相当的前提下,LGBM的size也是比RF小很多倍(LGBM=4M,RF=100MB)。

所以接下来写一下LGBM的调参思路, LGBM的参数以参考1中的接口LGBMClassifier命名为准(兼容sklearn的接口)。

2. 调参重点

模型中的参数具体见参考1,参数很多,但具体来说也就分为如下几类:

  1. 影响模型结构的参数,也就是影响基分类器(决策树)结构的参数
  • 结构越复杂,模型的拟合能力越强,但也容易过拟合
  1. 影响训练准确率的参数,比如树的棵数
  • n_estimators在一定程度上,是越大准确率越高,但高到一定程度后再增加则可能降低准确率
  1. 对抗过拟合的参数,比如正则化参数
  • 防止模型过拟合

3. 模型结构参数调优

  1. num_leaves
  • 单个基分类器(决策树)中,叶子结点的最大数量
  • num_leaves越大,对训练集的分类越准确,但太大了可能会过拟合了
  • 思考一种极端情况:num_leaves很大,直接等于训练集样本数量;每个训练集样本都能分类正确,但对测试集就不一定了
  • 根据官方参考3,选择 num_leaves的值不超过2^(max_depth);参考2中作者一般选择的参数范围是(20, 3000)
  1. max_depth
  • 单个基分类器(决策树)中,树的最大深度
  • max_depth越大,模型越复杂,越容易过拟合
  • max_depth越小,模型越简单,越容易欠拟合
  • 大部分情况下选择3~12就可以
  1. min_data_in_leaf
  • 在参考1中等同于参数 min_child_samples
  • LGBM使用的是一种叫做“leaf-wise tree growth algorithm”的算法,这个参数是防止该算法过拟合的一个参数
  • 这个值增大了可以防止过拟合
  • 实际使用时,这个值设置为几百到几千都可以

4. 影响准确率的参数调优

  1. n_estimators
  • 决策树的棵数
  • 在一定程度上,是越大准确率越高,但高到一定程度后再增加则可能降低准确率
  • 笔者一般取200~3000
  1. learning_rate
  • 学习速率影响模型训练的快慢
  • 一般设置为 0.01 到 0.3

5. 影响过拟合的参数调优

  1. reg_alpha
  • L1正则化
  • 一般设置为0~100
  1. reg_lambda
  • L2正则化,同上
  1. min_gain_to_split
  • 同min_split_gain
  • 表示 分裂的最小增益阈值
  • 参考2中作者将其当做extra regularization来看待,调参时搜索范围是 (0, 15)
  1. subsample
  • 同 bagging_fraction
  • 训练样本的采样比例
  • 这个值设置为(0,1)之间的小数
  • 必须设置如下参数为大于0的整数后,才会按照该比率进行样本采样
  • 根据参考4中说明,调小该参数可以防止过拟合,加快运算速度
  1. subsample_freq
  • 每隔多少轮iteration进行一次“按比例采样”
  • 默认设置为0,即disable
  • 选择这个参数为大于0的整数k,说明第k次iteration进行“按比例采样”,比例值为上面的参数subsample
  1. colsample_bytree
  • 同feature_fraction
  • 0.0 < feature_fraction <= 1.0
  • 在训练时,对某一棵树,随机选取的特征比例
  • 即 LightGBM will randomly select a subset of features on each iteration (tree)
  • 根据参考4中说明,调小可以防止过拟合,加快运算速度

6. 参考

  1. lightgbm官方参数说明文档
  • https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.LGBMClassifier.html
  1. lightgbm参数调优博客
  • https://towardsdatascience.com/kagglers-guide-to-lightgbm-hyperparameter-tuning-with-optuna-in-2021-ed048d9838b5
  1. lightgbm官方参数调优文档
  • https://lightgbm.readthedocs.io/en/latest/Parameters-Tuning.html#tune-parameters-for-the-leaf-wise-best-first-tree
  1. GBDT、XGBoost、LightGBM 的使用及参数调优
  • https://zhuanlan.zhihu.com/p/33700459
  1. lightgbm官方参数细节说明(各个参数及其别名)
  • https://lightgbm.readthedocs.io/en/latest/Parameters.html
  • 4
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值