Boosting Decision Tree迭代过程中,假设我们前一轮迭代得到的强学习器是 f t − 1 ( x ) f_{t-1}(x) ft−1(x),损失函数是 L ( y , f t − 1 ( x ) ) L(y,f_{t-1}(x)) L(y,ft−1(x)),我们本轮迭代的目标是找到一个回归树模型的弱学习器 h t ( x ) h_t(x) ht(x),让本轮的损失 L ( y , f t ( x ) ) = L ( y , f t − 1 ( x ) + h t ( x ) ) L(y,f_t(x))=L(y,f_{t-1}(x)+h_t(x)) L(y,ft(x))=L(y,ft−1(x)+ht(x))最小。也就是说,本轮迭代找到的决策树,要让样本的损失函数尽量变得更小。
我们利用损失函数 L ( y i , f ( x i ) ) L(y_i,f(x_i)) L(yi,f(xi))的负梯度来拟合本轮损失函数的近似值,进而拟合一个CART回归树。其中第t轮的第i个样本的损失函数的负梯度表示为 r t i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f t − 1 ( x ) r_{ti}=-\left[\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)} \right]_{f(x)=f_{t-1}(x)} rti=−[∂f(xi)∂L(yi,f(xi))]f(x)=ft−1(x) 利用 ( x i , r t i ) i = 1 , 2 , 3 , … , m (x_i,r_{ti})i=1,2,3,…,m (xi,rti)i=1,2,3,…,m,我们可以拟合一棵CART回归树,得到第t棵回归树,其对应的叶节点区域为 R t j , j = 1 , 2 , 3 , … , J R_{tj},j=1,2,3,…,J Rtj,j=1,2,3,…,J,其中 J J J为叶子节点的个数。
针对每一个叶子节点中的样本,我们求出使损失函数最小,也就是拟合叶子节点最好的输出值 c t j c_{tj} ctj。其中决策树中叶节点值已经生成一遍,此步目的是稍加改变决策树中叶节点值,希望拟合的误差越来越小。 c t j = arg min ⎵ c ∑ x i ∈ R t j L ( y i , f t − 1 ( x i ) + c ) c_{tj}=\underset{c}{\underbrace{\arg\min}} \sum_{x_i \in R_{tj}}L(y_i,f_{t-1}(x_i)+c) ctj=cargminxi∈R