梯度提升树算法简介
Boosting方法是一种常用的集成学习方法,它通过比较每次迭代结果的错误情况,调整样本的权重,训练新一轮的学习器,从而得到多个模型按权重相加的结果。GBDT就是利用Boosting思想将若干个决策树进行组合,采用梯度下降的方式计算损失函数,最终形成一个强学习器,因此称为梯度提升树。XGBoost和LightGBM均是在GBDT基础上发展演变而来的,都属于梯度提升类算法,但它们相比传统的GBDT有更高准确率和效率。
GBDT简介
GBDT(Gradient Boosting Decision Tree)属于提升树类型算法,由于它是基于上一轮建立的模型,以损失函数按负梯度下降最快的方式,建立新一轮学习模型的,故称为梯度提升树[13]。GBDT可看作由若干个弱学习组合而来的强学习器,我们假设t轮前得到的弱学习器集成结果为,损失函数如:
其中,y为样本的真实值,x标识输入样本的字段,那么我们目标是找到一个决策树弱学习器,使t轮的损失函数最小,即使该公式最小:
如何使损失函数不断以取值最小的方向发展是GBDT的重点,故Freidman提出了负梯度下降最快的方式确定损失函数值,作为回归问题中的提升树残差的近似值,从而训练下一轮决策树。因此,第t轮第i个样本的负梯度表达式如:
故一个完整的梯度提升算法回归模型可用以下流程表示:
(1)输入训练样本