当前位置:网站首页 > 职业技能提升 > 正文

梯度提升树算法优点(梯度提升树算法优点是什么)



$$ f_M(x) = sum_{m=1}^M T(x;Theta_m) $$

$$ arg min_Theta sum_{i=1}^N L(y_i,f_M(x_i)) = arg min_Theta sum_{i=1}^N Lleft(y_i, sum_{m=1}^M T(x;Theta_m) ight) $$

这里,损失函数用来反应“样本标签 $y_i$ ”与提升树的输出 $f_M(x_i)$ 之间的差别,这里可以选择平方误差损失函数:

$$ L(y, f(x))=left( y-f(x) ight)^2 $$

提升树模型也可以表示为迭代过程

$$ f_m(x)=f_{m-1}(x)+T(x;Theta_m),~ m=1,2,...,M $$

$$ hat{Theta}_m = arg min_{Theta_m} sum_{i=1}^N L(y_i, f_{m-1}(x_i) + T(x_i;Theta_m)) $$

对于上式的求解,即为提升树的关键所在。如果采用平方损失函数,则有

$$ begin{eqnarray*} L(y_i,f_{m-1}(x_i)+T(x_i;Theta_m)) &=& left[,y_i - f_{m-1}(x_i) - T(x_i;Theta_m) ight]^2 \ &=& left[,r_{m,i} - T(x_i;Theta_m) ight]^2 end{eqnarray*} $$

梯度提升树与神经网络结合matlab代码 梯度提升树优缺点_决策树

梯度提升树与神经网络结合matlab代码 梯度提升树优缺点_决策树_02

梯度提升树与神经网络结合matlab代码 梯度提升树优缺点_r语言_03

二元GBDT分类算法
对于二分类问题,比较常用的损失函数为

$$ L(y,f(x))=log (1+exp (-y cdot f(x))) ag{12} $$

其中 $y∈{−1,+1}$,此时的负梯度误差为

$$ r_{m,i} = -left[ frac{partial L(y_i,f(x_i))}{partial f(x_i)} ight]_{f(x)=f_{m-1}(x)} = frac{y_i}{1+exp (y_i f_{m-1}(x_i))} $$

对于生成决策树,其叶子节点的输出值为

$$ c_{m,j} = arg min_c sum_{x_iin R_{m,j}} log (1+exp (-y_i (f_{m-1}(x_i) + c))) $$

由于上式比较难优化,我们一般使用近似值代替

$$ c_{m,j} =left. sum_{x_iin R_{m,j}} r_{m,i} middle / sum_{x_iin R_{m,j}} |r_{m,i}|(1-|r_{m,i}|) ight. $$

多元GBDT分类算法
对于多分类问题,假设类别为$ K$,一般采用的损失函数为

$$ L(y,f(x)) = - sum_{k=1}^K y_k log p_k(x) $$

其中,如果样本输出类别为 $k$ ,则 $y_k=1$ ;$p_k(x)$ 表示模型 $f(x)$判定 $x$属于第$k$ 类的概率,其表达式为

$$ p_k(x) = frac{exp (f_k(x))}{ sum_{l=1}^K exp(f_l(x))} $$

$$ r_{m,i,l} = -left[ frac{partial L(y_i,f(x_i))}{partial f(x_i)} ight]_{f(x)=f_{m-1,l}(x)} = y_{i,l} - p_{m,l}(x_i) $$

$$ c_{m,l,j} = arg min_c sum_{x_i in R_{m,l,j}} L(y_{i,l}, f_{m-1,l}(x_i) + c) $$

类似的,我们用近似值代替

$$ c_{m,l,j} = frac{K-1}{K} frac{sumlimits_{x_i in R_{m,l,j}}r_{m,i,l}}{ sumlimits_{x_i in R_{m,l,j}} |r_{m,i,l}|(1-|r_{m,i,l}|) } $$

GBDT 的正则化

  • 第一种是和Adaboost类似的正则化项,即使用步长(learning rate),定义为 αα 。常规的提升回归树的迭代为

$$ f_m(x) = f_{m-1}(x) + T(x;Theta_m) $$

引入正则化后,其迭代过程为

$$ f_m(x) = f_{m-1}(x) + alpha T(x;Theta_m) $$

其中,$0<α≤1$。对于同样的训练集学习效果,较小的 αα 意味着我们需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。

  • 第二种正则化的方式是通过子采样比例(subsample)。取值为(0,1]。注意这里的子采样和随机森林不一样,随机森林使用的是放回抽样,而这里是不放回抽样。如果取值为1,则全部样本都使用,等于没有使用子采样。如果取值小于1,则只有一部分样本会去做GBDT的决策树拟合。选择小于1的比例可以减少方差,即防止过拟合,但是会增加样本拟合的偏差,因此取值不能太低。推荐在[0.5, 0.8]之间。
    使用了子采样的GBDT有时也称作随机梯度提升树(Stochastic Gradient Boosting Tree, SGBT)。由于使用了子采样,程序可以通过采样分发到不同的任务去做boosting的迭代过程,最后形成新树,从而减少弱学习器难以并行学习的弱点。

  • 第三种称为 Regularized Learning Objective,将树模型的复杂度作为正则项显式地加进优化目标里,这也是XGBoost实现的独到之处。其具体实现可以参考文献[7],在这里列出其加入正则化后的优化目标

$$ L_{r}(y,f(x)) = L(y,f(x)) + sum_{m} Omega(T(x;Theta_m)) \ mathrm{where} ~~ Omega(T(x;Theta_m)) = gamma T_{leaf} + frac12 lambda | w |^2 $$

其中,$L(y,f(x))$ 为常规的损失函数;$Omega(T(x;Theta_m))$表示决策树的复杂度,$T_{leaf}$为树叶节点个数,$w$ 为叶节点的固定输出值$c_m$组成的向量;$γ,λ$为相应的系数。

  • 最后还有一种就是类 似DeepLearning 的 Dropout ,其具体可以参考文献[8]。通俗地讲,每次新加一棵树,这棵树要拟合的并不是之前全部树ensemble后的残差,而是随机抽取的一些树ensemble。
到此这篇梯度提升树算法优点(梯度提升树算法优点是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 梯度提升和梯度下降(梯度下降和梯度上升)2025-12-03 09:45:09
  • 梯度提升树和随机森林哪个好些(随机森林和梯度提升树的区别)2025-12-03 09:45:09
  • 梯度提升树原理(梯度提升和梯度下降的区别)2025-12-03 09:45:09
  • 梯度提升树算法流程(梯度提升算法的理解)2025-12-03 09:45:09
  • 梯度提升树算法原理(梯度提升算法的理解)2025-12-03 09:45:09
  • 梯度提升模型(梯度提升模型 参数)2025-12-03 09:45:09
  • 梯度提升树和随机森林哪个好(梯度提升树和随机森林哪个好用)2025-12-03 09:45:09
  • 梯度提升树分类算法(梯度提升树分类算法有哪些)2025-12-03 09:45:09
  • 梯度提升树原理图(梯度提升树原理图讲解)2025-12-03 09:45:09
  • 梯度提升树模型的优点(梯度提升树优缺点)2025-12-03 09:45:09
  • 全屏图片