GBDT 核心思想
Gradient Boosting Machine 基于梯度提升算法的学习器
从 [[Gradient Descend]] 到 Gradient Boosting
-
Gradient Descend
-
迭代公式:$${\theta ^t = \theta ^{t-1} + \theta _{t}}$$
-
负梯度方向更新参数:$${\theta _t = - \alpha _t g_t}$$
-
最终参数等于每次迭代的增量的累加和:$${\theta = \sum_{t=0}^T \theta _t}$$
-
Gradient Boosting
-
迭代公式:$${f^t(x) =f^{t-1}(x) + f_t(x)}$$
-
拟合负梯度:$${f_t(x)= - \alpha _t g_t(x)}$$
-
最终函数等于每次迭代的增量的累加和:$${F(x) = \sum_{t=0}^T f_t(x)}$$
加法模型
-
F(x;w)=m=1∑Mαmhm(x;wm)=m=1∑Mft(x;wt)
-
其中,x 为输入样本,h 为分类回归树,w 是分类回归树的参数,α 是每棵树的权重。
-
GBDT 算法可以看成是由 k 棵树组成的加法模型
- y^i=∑k=1Kfk(xi),fk∈F
流程
-
通过最小化损失函数求解最优模型:F∗=argminF∑i=1NL(yi,F(xi))
-
输入: (xi,yi),T,L
-
- 初始化:f0(x)
-
- 求解损失函数最小
-
- 随机初始化
-
- 训练样本的充分统计量
-
- 对于 t=1toT :
-
2.1 计算负梯度(伪残差): yi~=−[∂F(x)∂L(yi,F(xi))]F(x)=Fm−1(x),i=1,2,...,N
-
2.2 根据 yi~ 学习第 m 棵树: w∗=argminw∑i=1N(yi~−ht(xi;w))2
- 最小化问题中,如果有解析解,直接带入。否则,利用泰勒二阶展开,Newton Step 得到近似解。
-
2.3 line searcher 找步长:ρ∗=argminρ∑i=1NL(yi,Ft−1(xi)+ρht(xi;w∗))
-
2.4 令 ft=ρ∗ht(x;w∗),更新模型:Ft=Ft−1+ft
-
- 输出 FT
[[GBDT/Loss]]
[[GBDT/Question]]
Ref