gbdt算法_经典算法·GBDT

GBDT是一种集成学习方法,针对模型偏差优化,使用CART回归树。它通过负梯度误差来拟合损失函数,进行迭代优化。分类任务中,GBDT使用对数似然损失函数。正则化方面,包括学习率、子采样和树的剪枝。GBDT优点在于灵活性和高准确性,但易受异常值影响,且训练不易并行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1e7cfb24de71f77affec9dfa4c464911.png

Gradient Boosting Decision Tree

梯度提升树(Gradient Boosting Decison Tree,GBDT)是集成学习Boosting重要算法。该方法是针对模型的偏差进行的优化。而随机森林是基于对模型的方差进行优化。即使在集成算法中,Adaboost是利用前一轮迭代器弱学习器的误差率来更新训练集的权重。

GBDT算法中,限定了只能使用CART回归模型。一般的CART是这样的:用于分类任务时,树的分裂准则采用基尼指数,用于回归任务时,用MSE(均方误差)。前一轮迭代得到的强学习器是

,损失函数是
, 本轮迭代的目标是找到CART回归树模型的弱学习器
,让本轮的损失函数
最小。

关于损失函数拟合方法,Freidman提出了用损失函数的负梯度来拟合本轮损失的近似值,进而拟合新的CART回归树。与XGBOOST的明显区别,就是这样的一阶导数与二阶导数的拟合方式。在不同任务中区别仅仅在损失函数不同导致的负梯度不同而已。

GBDT算法过程

输入:训练集样本

, 最大迭代次数
,损失函数

1) 初始化弱学习器

2) 对迭代轮数

   a)对样本

,计算负梯度:

   b)利用

拟合一颗CART回归树,得到第
颗回归树,其对应的叶子节点区域为
,其中
为回归树
的叶子节点的个数。

   c) 对叶子区域

,计算最佳拟合值

   d) 更新强学习器:

3) 得到强学习器

的表达式

GBDT回归与分类

回归算法是比较简单的,毕竟CART就是回归树。回归的问题也可以看成分类任务中一种特殊方法。分类问题的处理,类似与图像识别中的分类任务,分类任务变化成每一类别的概率值预测。

二元GBDT分类算法

对数似然损失函数为:

负梯度误差为:

各个叶子节点的最佳残差拟合值为:

上式的计算过于复杂,通常选取近似的方式:

多元GBDT分类算法

类的概率
的表达式为:

计算出第

轮的第
个样本对应类别
的负梯度误差为:

其实这里的误差就是样本

对应类别
的真实概率和
轮预测概率的差值。

一般使用近似值代替:

GBDT的正则化

模型加入正则是为了防止过拟合。GBDT的正则化主要有三种方法:

  • 第一种是正则化项,步长(learning rate),定义为
    。较小的
    意味着需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。
  • 第二种正则化的方式是通过子采样比例(subsample)。注意这里的子采样和随机森林不一样,随机森林使用的是放回抽样,而这里是不放回抽样。并且取值为(0,1]。
  • 第三种是对于弱学习器即CART回归树进行正则化剪枝。决策树的剪枝包括预剪枝与后剪枝。通过对叶子节点的控制实现正则。

GBDT优缺点

优点:

  • 可以灵活处理各种类型的数据,包括连续特征和离散特征。
  • 在相对少的调参时间情况下,预测的准确率也可以比较高。

缺点:

  • 由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。
  • 对数据异常值比较敏感。使用一些健壮的损失函数(Huber损失函数),对异常值的鲁棒性非常强。Huber损失,它是均方差和绝对损失的折中产物,对于远离中心的异常点,采用绝对损失,而中心附近的点采用均方差。这个界限一般用分位数点度量。损失函数如下:

对应的负梯度误差为:

有关GBDT回归于分类的真实例子,可以参考以下连接:

  • GBDT原理与Sklearn源码分析-回归篇 - SCUT_Sam - 优快云博客
  • GBDT原理与Sklearn源码分析-分类篇 - SCUT_Sam - 优快云博客
GBDT中的max_depth参数是指每个回归树的最大深度。它控制了回归树的叶子节点的最大层数,也就是决策树的分支深度。在GBDT中,每个回归树都是通过学习前一棵树的残差来进行训练的,max_depth参数可以限制每棵树的复杂度,防止过拟合。 具体来说,max_depth参数限制了每个回归树的分裂次数,即树的最大深度。较小的max_depth值会使得每棵树更加简单,有较少的叶子节点和分支,限制了树的复杂度。较大的max_depth值会使得每棵树更加复杂,有更多的叶子节点和分支,提高了树的拟合能力。 在实际使用中,选择max_depth参数的取值要根据具体问题和数据集的特点来确定。如果数据集很大,特征较多,可以适当增大max_depth来提高模型的表达能力。如果数据集较小,特征较少,可以适当减小max_depth来避免过拟合。 参考文献: 在本文中,我们首先引出回归树与梯度提升算法结合的优势;然后详细推导了GBDT回归算法的原理,并用实际案例解释GBDT回归算法;其次不仅用Python3实现GBDT回归算法,还用sklearn实现GBDT回归算法;最后,介绍了GBDT回归任务常见的损失函数、GBDT正则化和我对GBDT回归算法若干问题的思考。GBDT中的树是回归树(不是分类树),GBDT可以用来做回归预测,这也是我们本文讲的GBDT回归算法,但是GBDT调整后也可以用于分类任务。让我们期待一下GBDT分类算法,在分类任务中的表现吧! 【10】GBDT详细讲解&常考面试题要点,地址:https://mp.weixin.qq.com/s/M2PwsrAnI1S9SxSB1guHdg 【7】GBDT:梯度提升决策树,地址:https://www.jianshu.com/p/005a4e6ac775<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深入理解GBDT回归算法](https://blog.youkuaiyun.com/qq_42722197/article/details/124811872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值