Gradient Boosting Decision Tree (GBDT)

GBDT也是集成学习Boosting家族的成员,Boosting是各个基学习器之间有很强的依赖关系,即串行。

Boosting可以分为两类:

  1. Adaboost: 改变样本的权重
  2. Gradient Boosting: 用负梯度做残差的估计

GBDT是一个加法模型,采用前向分步算法进行求解。假设前一轮得到的模型是 f t − 1 ( x ) f_{t-1}(x) ft1(x),损失函数是 L ( y , f t − 1 ( x ) ) L(y, f_{t-1}(x)) L(y,ft1(x)),本轮迭代的目标是 min ⁡ L ( y , f t ( x ) ) \min L(y,f_t(x)) minL(y,ft(x)),其中 f t ( x ) = f t − 1 ( x ) + h t ( x ) f_t(x)=f_{t-1}(x)+h_t(x) ft(x)=ft1(x)+ht(x)

Freidman提出用损失函数的负梯度作为残差的估计。

GBDT回归算法如下:
Gradient Boosting Decision Tree (GBDT)_第1张图片

GBDT用的是CART回归树,因此GBDT如何做分类变成了CART回归树如何做分类。
二元GBDT分类算法
对数似然损失函数如下:(y为1或-1)
注意和logistic regression损失函数(y为1或0)本质是一样的
在这里插入图片描述
负梯度:
在这里插入图片描述
用第m棵回归树去拟合负梯度:
在这里插入图片描述
Gradient Boosting Decision Tree (GBDT)_第2张图片

预测的时候, 1 1 + e x p ( − f ( x ) ) \frac{1}{1+exp(-f(x))} 1+exp(f(x))1,其中 f ( x ) 为 多 颗 决 策 树 的 和 f(x)为多颗决策树的和 f(x)

多元GBDT分类算法
K分类,那么每次迭代要生成K棵树。

[1] https://www.cnblogs.com/ModifyRong/p/7744987.html
[2] https://blog.csdn.net/Liangjun_Feng/article/details/80668461

你可能感兴趣的:(机器学习算法总结)