万字总结XGBoost原理、核心参数以及调优思路(下篇)

万字总结XGBoost原理、核心参数以及调优思路(下篇)

在数据科学领域,XGBoost以其卓越的性能和灵活性,成为了众多机器学习算法中的佼佼者。作为一种梯度提升框架,XGBoost通过构建决策树的集合来最小化一个可微分的损失函数,广泛应用于分类、回归等任务。本文将万字总结XGBoost的深层原理、关键核心参数,以及实用的调优策略。从算法基础到模型部署,我们将深入探讨XGBoost的每一个环节,为读者提供全面的指导和深入的洞见。无论您是希望提升模型性能的数据科学家,还是对XGBoost感兴趣的学习者,本文都将是您理解和掌握这一强大工具的宝贵资源。让我们启程,深入探索XGBoost的奥秘。

本篇是关于xgboost的下篇,将侧重xgboost模型的优化,xgboost各类参数详解见上篇:
万字总结XGBoost原理、核心参数以及调优思路(上篇)


三、XGBoost的参数空间与超参数优化

1 确定XGBoost优化的参数空间

与之前介绍过的随机森林、gbdt一样,对xgboost的调参同样可以分为两步,首先确定不同参数对模型的影响力大小,确定调参范围,然后对待调参的参数进行进一步探索,初步确定有效的调参空间,再行调参

在这里插入图片描述
注意:

  • 在随机森林中影响力巨大的max_depth在XGBoost中默认值为6,比GBDT中的调参空间略大(GBDT中默认为3),但还是没有太多的空间,因此影响力不足,并且max_depth很多时候都是往大了调。
  • 在GBDT中影响力巨大的max_features对标XGBoost中的colsample_by*系列参数,原则上来说影响力应该非常大,但由于三个参数共同作用,调参难度较高,在只有1个参数作用时效果略逊于max_features。
  • 精剪枝参数往往不会对模型有太大的影响,但在XGBoost当中,min_child_weight与结构分数的计算略微相关,因此有时候会展现出较大的影响力。故而将这个精剪枝参数设置为4星参数。
  • 类似于objective这样影响整体学习能力的参数一般都有较大的影响力,但XGBoost当中每种任务可选的损失函数不多,因此一般损失函数不在调参范围之内,故认为该参数的影响力不明显。
  • XGBoost的初始化分数只能是数字,因此当迭代次数足够多、数据量足够大时,起点的影响会越来越小。因此一般不会对base_score进行调参。

调参时的参数选择(重点!!!)

  • num_boost_round和eta,重点中的重点,必须调。

  • colsample_by*中选一个调,一般选bytree的多,非要选两个就再选一个bynode(一般不会同时选两个,过于随机会造成模型不稳定,严重影响整体模型的学习能力),gamma和lambda选一个调,一般选lambda。(搜索的时候如果gamma进行搜索了,lambda和min_child_weight最好也进行搜索)

  • booster一般不调,如果出现验证过拟合情况了,可以考虑使用。

  • min_child_weight和max_depth一般要参与调。

  • 数据量很大的时候subsamples也要调,一般可以不用调,调得话最好也是0.5以上,样本太少建模不稳定。

  • 计算资源足够的时候可以都调。

待调参参数参数空间的确定:
欢迎关注公众号:待调参参数参数空间的确定

2 使用贝叶斯优化(TPE)对xgboost进行模型优化

xgboost模型调优流程以及代码实现


总结

欢迎关注我的公众号~

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值