梯度提升决策树
英文是Gradient Boosting Decision Tree (GBDT)。是一种迭代的决策树算法,由多棵决策树组成,将所有树的结论累加起来做最终答案。值得注意的是,GBDT中的树都是回归树,不是分类树。GBDT主要用于回归问题(包括线性和非线性),但也可以用于分类问题。
我们在已经搞清楚决策树(DT)部分的前提下,可以简单看看梯度迭代(GB)。GB核心的思想就是每一棵树都在学习之前所有树结论和的残差。
输入
训练集数据 D = { ( x i , y i ) } i = 1 N D = \{(x_i,y_i)\}_{i=1}^N D={ (xi,yi)}i=1N。损失函数 L ( y , f ( x ) ) L(y, f(x)) L(y,f(x))。我们令树的数量为 M M M,用 m m m表示当前树的序号。
步骤
-
初始化 f 0 ( x ) = a r g m i n γ ∑ i = 1 N L ( y i , γ ) f_0(x) = argmin_\gamma \sum_{i=1}^N L(y_i, \gamma) f0(x)=argminγ∑i=1NL(yi,γ)
-
对于 m = 1 ∼ M m = 1 \sim M m=1∼M:
a) 对于每一个观测 i = 1 ∼ N i = 1 \sim N i=1∼N计算伪残差(pseudo-residuals)
r i m = − [ ∂ L ( y i , f m − 1 ( x i ) ) ∂ f m − 1 ( x i ) ] r_{im} = -[\frac{\partial L(y_i, f_{m-1}(x_i))}{\partial f_{m-1}(x_i)}] \\\\ rim=−[∂fm−1(xi)∂L(y