集成学习模型(二)——GBDT

GBDT是一种集成学习方法,属于Boosting算法,通过结合多个弱决策树来构建强预测模型。文章详细介绍了GBDT的原理,包括回归树、提升树的概念,以及GBDT的损失函数和正则化方法。通过逐步优化和拟合残差,GBDT能有效提升预测精度。最后,提到了GBDT在实际应用中的模型构建和测试过程。

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

GBDT

一、概述

  梯度提升(Gradient boosting)是一种用于回归、分类和排序任务的机器学习技术1,属于Boosting算法族的一部分。Boosting是一族可将弱学习器提升为强学习器的算法,属于集成学习(ensemble learning)的范畴。Boosting方法基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断要好。通俗地说,就是“三个臭皮匠顶个诸葛亮”的道理。梯度提升同其他boosting方法一样,通过集成(ensemble)多个弱学习器,通常是决策树,来构建最终的预测模型。
  GBDT中的树是回归树(不是分类树),GBDT用来做回归预测,调整后也可以用于分类。

二、回归树

  回归树(Regression Decision Tree),总体流程类似于分类树,区别在于,回归树的每一个节点都会得一个预测值,该预测值等于属于这个节点的所有样本的平均值。分枝时穷举每一个feature的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化平方误差。也就是被预测出错的数量越多,错的越离谱,平方误差就越大,通过最小化平方误差能够找到最可靠的分枝依据。分枝直到每个叶子节点上样本特征都唯一或者达到预设的终止条件(如叶子个数上限),若最终叶子节点上样本特征不唯一,则以该节点上所有样本的平均做为该叶子节点的预测值。

  回归树的生成方法如下:

  • 输入:训练数据集 D D D
  • 输出:回归树 f ( x ) f(x) f(x)

  在训练数据集所在的输入空间中,递归地将每个区域划分为两个子区块并决定每个子区域上的输出值,构建二叉决策树:

  1.选择最优切分变量 j j j与切分点 s s s,求解
min ⁡ j , s [ min ⁡ c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + min ⁡ c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ] \min _{j, s}\left[\min _{c_1} \sum_{x_i \in R_1(j,s)} (y_{i}-c_{1})^{2}+\min _{c_{2}} \sum_{x_{i} \in R_{2}(j, s)}\left(y_{i}-c_{2}\right)^{2}\right] j,sminc1minxiR1(j,s)(yic1)2+c2minxiR2(j,s)(yic2)2

  容易得出,在 j j j s s s固定时, c 1 = 1 N 1 ∑ x i ∈ R 1 y i , c 2 = 1 N 2 ∑ x i ∈ R 2 y i c_{1}=\frac{1}{N_{1}} \sum_{x_{i} \in R_{1}} y_{i}, \quad c_{2}=\frac{1}{N_{2}} \sum_{x_{i} \in R_{2}} y_{i} c1=N11xiR1yi,c2=N21xiR2yi

  遍历变量 j j j,对固定的切分变量 j j j扫描切分点 s s s,选择使其值达到最小的对 ( j , s ) (j,s) (j,s)

  2.用选定的对 ( j , s ) (j,s) (j,s)划分区域并决定相应的输出值:
R 1 ( j , s ) = { x ∣ x ( j ) ⩽ s } , R 2 ( j , s ) = { x ∣ x ( j ) > s } c ^ m = 1 N m ∑ x i ∈ R m ( j , s ) y i , x ∈ R m , m = 1 , 2 \begin{array}{c} R_{1}(j, s)=\left\{x \mid x^{(j)} \leqslant s\right\}, \quad R_{2}(j, s)=\left\{x \mid x^{(j)}>s\right\} \\ \hat{c}_{m}=\frac{1}{N_{m}} \sum_{x_{i} \in R_{m}(j, s)} y_{i}, \quad x \in R_{m}, \quad m=1,2 \end{array} R1(j,s)={ xx(j)s},R2(j,s)={ xx(j)>s}c^m=Nm1xiRm(j,s)yi,xRm,m=1,2

  3.继续对两个子区域调用步骤(1),(2),直至满足停止条件。

  4.将输入空间划分为 M M M个区域 R 1 , R 2 , ⋯   , R M R_{1}, R_{2}, \cdots, R_{M} R1,R2,,RM,生成决策树:
f ( x ) = ∑ m = 1 M c ^ m I ( x ∈ R m ) f(x)=\sum_{m=1}^{M} \hat{c}_{m} I\left(x \in R_{m}\right) f(x)=m=1Mc^mI(xRm)

三、提升树

  提升树(Boosting Decision Tree),是迭代多棵回归树来共同决策。当采用平方误差损失函数时,每一棵回归树学习的是之前所有树的结论和残差,拟合得到一个当前的残差回归树,残差的计算方法: 残 差 = 真 实 值 − 预 测 值 残差 = 真实值 - 预测值 =。提升树模型可以表示为决策树的加法模型。

f M ( x ) = ∑ m = 1 M T ( x ; Θ m ) f_{M}(x)=\sum_{m=1}^{M} T\left(x ; \Theta_{m}\right) fM(x)=m=1MT(x;Θm)

  其中, T ( x ; Θ m ) T(x;\Theta_m) T(x;Θm)表示决策树;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值