Gradient Boosting Decision Tree (GBDT)

GBDT也是集成学习Boosting家族的成员,Boosting是各个基学习器之间有很强的依赖关系,即串行。GBDT限定了基学习器只能使用CART回归树。

树模型的优缺点:
Gradient Boosting Decision Tree (GBDT)

GBDT是一个加法模型,采用前向分步算法进行求解。假设前一轮得到的模型是ft1(x),损失函数是L(y,ft1(x)),本轮迭代的目标是 minL(y,ft(x)),其中ft(x)=ft1(x)+ht(x)

Freidman提出用损失函数的负梯度来拟合。

GBDT在函数空间利用梯度下降法进行优化,算法原理如下:
L是损失函数,T是想迭代的次数
Gradient Boosting Decision Tree (GBDT)
其中,f0一般是常数,即样本均值。学习第t棵树的过程使用的是均方误差最小化来挑选划分属性和阈值。

总结出GBDT的关键词是:CART回归树、一阶导数、负梯度、步长(每棵树的权重)

上面讲的是GBDT如何用于回归问题, 接下来简单说一下GBDT用于分类问题:
https://www.zhihu.com/question/55379008/answer/148479883

GBDT用的是CART树,但是对于分类问题,GBDT已经不是用gini系数来做split。GBDT实质是个回归问题,使用GBDT来解决分类问题,实质是把它转化为回归问题。
假设有k个类别,那么每一轮要构建k棵树,输出是f1(x),f2(x)...fk(x)
然后用softmax,损失函数是交叉熵,求出负梯度,然后用树来拟合,拟合的过程用的最小均方误差来选择划分属性和阈值。这一点一定要注意,因为我们需要的是用树来拟合负梯度值,因此使用均方误差。

第一轮的每棵树初始值为0就可以。

最终预测的时候,输入x会得到k个输出值,然后通过softmax获得属于每一类的概率。