前面的博文中我们一起看了提升树,这一篇中我们正式来理解GBDT。理解GBDT算法关键是GB,也就是梯度提升(Gradient Boosting),那么这个和我们之前的提升树又有什么不一样呢?
梯度提升
之前介绍的提升树是用加法模型和向前分步算法实现学习的优化过程,其中误差函数也就是损失函数一般是平方损失和指数损失函数的时候,每一步优化比较简单,但是对于一般的损失函数来说,每一步优化就并不是那么容易。针对这个问题,梯度提升算法横空出世,其关键就是利用损失函数的负梯度在当前模型中的值:
首先之前讲的提升树和这里的GBDT其实是没有很大区别,GBDT也是加法模型也是向前分步的优化过程,如何加入下一棵树,都是建立在最小化误差的基础,GBDT不过是在最小化误差的的时候换了一个损失函数,它不是计算当前模型拟合训练样本的误差,而是计算这个误差函数的负梯度。比如在回归任务中,我们一般使用平方误差作为损失函数:,这个时候我们对