1.XGBoost的是对梯度提升树的改进,目标函数由梯度提升算法损失以及正则化项构成
2.XGBoost拟合的目标值是(-g/h):一阶导除以二阶导的负数,这也是牛顿法求解结果
3.XGBoost分两阶段求解参数:叶子节点的输出值以及寻找树的最佳分裂
4.最佳分裂采取贪心策略,有Exact Greedy Algorithm和Approximate Algorithm两种分裂方式,后者是解决前者计算量大而提出的
5.二阶导数h是样本所产生损失的权重, 其描述了样本在损失函数中的重要性
6.GBDT展开到二阶的原因是统一损失函数求导的形式以支持自定义损失函数
7.二阶信息本身就能让梯度收敛更快更准确,这是牛顿法比梯度法更优的地方
本文我们继文章集成学习(四)进一步介绍GBDT的一个变种算法:XGBoost。它是对梯度提升树的改进。
梯度提升算法改进
XGBoost是对梯度提升树的改进,求解损失函数极值时使用了牛顿法。训练时的目标函数由两部分构成,第一部分为梯度提升算法损失,第二部分为正则化项:
对于XGBoost,如果用q表示树的结构,那么函数f(x)可以表示为
根据加法模型,迭代第k次弱学习器时,需要最小化损失函数为:
牛顿法到二阶导
直接求解上式过于复杂,我们采取牛顿法近似求解,因此展开到二阶有: