xgboost 一般多少棵树_Xgboost总结

XGBoost是一种基于梯度提升决策树的机器学习算法,它在GBDT基础上加入正则项,通过目标函数最小化进行优化,支持自定义损失函数和并行计算,有效防止过拟合。文章介绍了XGBoost的优化策略,如列采样、正则化和学习率,以及如何选择特征分裂点。XGBoost的参数调优对模型性能至关重要,包括eta、min_child_weight、max_depth等。
摘要由CSDN通过智能技术生成

从决策树、随机森林、GBDT最终到XGBoost,每个热门算法都不是孤立存在的,而是基于一系列算法的改进与优化。决策树算法简单易懂可解释性强,但是过拟合风险很大,应用场景有限;随机森林采用Bagging采样+随机属性选择+模型集成的方法解决决策树易过拟合的风险,但是牺牲了可解释性;GBDT在随机森林的基础上融合boosting的思想建立树与树之间的联系,使森林不再是互相独立的树存在,进而成为一种有序集体决策体系;XGBoost在GBDT的基础上更进一步,将每轮迭代的目标函数中加入正则项,进一步降低过拟合的风险。相对于GBDT启发式的迭代原则,XGBoost的优化准则完全基于目标函数的最小化推导,并采用了二阶泰勒展开,使自定义损失函数成为可能。除此之外,XGBoost同样继承了随机采样、随机属性选择、学习率等算法实用技巧,与此同时实现了属性计算级别的并行化。可以说,XGBoost是一种集大成的机器学习算法。

几个误区:

在目标函数中增加正则项是XGBoost的一项比较重要的改进,因为GBDT中的正则化主要依靠一些工程措施,局限性与可操作性较差。XGBoost则直接将正则项加入到目标函数中,这样一来,每一轮的迭代均在数学层面进行了正则化,效果与可操作性大大提升。

XGB是一个具有可扩展性的树提升算法机器学习系统,它的可扩展性体现在以下四个方面:

模型的scalability,弱分类器除cart外也支持lr和linear

策略的scalability,可以支持不同的loss functions,来优化效果,只要一、二阶可导即可

算法的scalability,做了很多细节工作,来优化参数学习和迭代速度,特征压缩技,bagging学习中的特征抽样,特征选择与阈值分裂的分位方法和并行方法等

数据的scalability,因为3种的优化,支持B级别的快速训练和建模;同时也因为加上了正则项和随机特征抽样,减少了过拟合问题

1. Xgboost的算法的流程?

(1)引入

回归树:每个叶子节点都有一个分数,预测的结果就是所有树的分数之和

输入:age,gender,occupation,...

输出:判断一个人是否喜欢打游戏

xgboost的基本思想就是一种提升的思想,后一个模型在前一个模型的基础上再进行预测,弥补前一个模型做的不好的地方。例如真实值是100,第一颗树的预测值是95,还有5的误差,然后我们再用第二颗树再预测,预测出来3这样两颗树的综合结果就是98,然后依次类推。

给定数据集,n个实例,m个特征:

树集成模型(下图所示)使用K个函数的累加和来预测输出;

这里有几个疑问:

每一棵树的分支依据是如何确定的?(比如先分age,再分性别) 【贪心:从所有特征中找最好的】

每一棵树的分支分到哪里为止?(比如is male?下面还要不要分支?)【可以根据公式判断是否要继续分裂,见(3)节公式4】

每棵树的叶子节点的权重分值是如何确定的?(为什么有的是2,有的是0.9,有的是-1)【对于固定的树结构,可以根据(3)节公式2得到叶子的最优权重】

树的棵数是如何确定的,多少棵树是最合适的?

(2)目标函数

目标函数:

这里l是一个可微的凸损失函数,测量预测值和目标值的不同。

 是k颗树的正则项,用于抑制模型的复杂度防止过拟合。当正则项的参数是0时,上述目标函数就是一个传统的梯度树提升模型。

左上角描绘的是用户随着时间的变化对某话题的感兴趣程度的变化,如果使用step function来建模,可以看到右上角的模型基本上拟合到每一个数据点,然而也可以看到它太复杂了,也就是模型复杂度太高;而对于左下角模型,它虽然比较简单,但是很多数据都没有拟合到;最后看看右下角的模型,它简单,而且基本拟合到所有数据点。因此我们说右下角的模型是最好的,对于一个机器学习的模型的通用原则是:简单并且准确。模型往往需要在简单和准确之中做一个折中,这种折中也成为偏差-方差的折中(bias-variance tradeoff)。

(3)梯度树提升

上述目标函数的参数本身是函数,这样使用传统的优化方法是不能优化到最优值的。相反,模型的训练时采用加法的形式来训练的,形式上,使用  作为第i个

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值