Gradient Boosting Decision Tree (GBDT)
GBDT也是集成学习Boosting家族的成员,Boosting是各个基学习器之间有很强的依赖关系,即串行。GBDT限定了基学习器只能使用CART回归树。
树模型的优缺点:
GBDT是一个加法模型,采用前向分步算法进行求解。假设前一轮得到的模型是,损失函数是,本轮迭代的目标是 ,其中。
Freidman提出用损失函数的负梯度来拟合。
GBDT在函数空间利用梯度下降法进行优化,算法原理如下:
是损失函数,是想迭代的次数
其中,一般是常数,即样本均值。学习第棵树的过程使用的是均方误差最小化来挑选划分属性和阈值。
总结出GBDT的关键词是:CART回归树、一阶导数、负梯度、步长(每棵树的权重)
上面讲的是GBDT如何用于回归问题, 接下来简单说一下GBDT用于分类问题:
https://www.zhihu.com/question/55379008/answer/148479883
GBDT用的是CART树,但是对于分类问题,GBDT已经不是用gini系数来做split。GBDT实质是个回归问题,使用GBDT来解决分类问题,实质是把它转化为回归问题。
假设有k个类别,那么每一轮要构建k棵树,输出是
然后用softmax,损失函数是交叉熵,求出负梯度,然后用树来拟合,拟合的过程用的最小均方误差来选择划分属性和阈值。这一点一定要注意,因为我们需要的是用树来拟合负梯度值,因此使用均方误差。
第一轮的每棵树初始值为0就可以。
最终预测的时候,输入x会得到k个输出值,然后通过softmax获得属于每一类的概率。