下面的模型使用前向分步加法模型算法求解:
Boost算法的基函数和损失函数可以自定义
Adaboost 的基函数是基本分类器,损失函数是指数函数
提升树的基函数是决策树,分类问题使用的基函数是二叉分类树,损失函数是指数函数,可以认为分类提升树是Adaboost的一种特殊情况;回归问题使用的是二叉回归树,损失函数是平方差损失。
GBDT是一种新的算法,针对的是当损失函数为非指数函数和平方差函数的任意函数,其使用的是树函数作为基函数,并使用回归树拟合负梯度(残差),下面文章把残差的处理看作梯度下降过程,可以进一步拓宽理解思路。
http://nicolas-hug.com/blog/gradient_boosting_descent
GBDT可以看成梯度下降,只不过这里的对应需要下降的参数为每一个基函数本身,回忆一下GBDT中的残差为loss对基函数的导数的负数,这就是梯度下降的方向啊!然后我们需要用cart回归树去拟合的就是boosting过程中每一步基函数的负梯度,也就说GBDT学习的是树的基函数与树拟合的每一步梯度下降的方向,这是其精髓!