zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

(《机器学习》完整版系列)第8章 集成学习——8.4 GBDT算法(逐次估值逼近)

机器集成算法学习 系列 完整版 估值 逼近
2023-09-11 14:14:53 时间

Gradient Boosting的重要代表有GBDT,它是通过不断改进估算来实现的,即逐次估值进行逼近

GBDT算法

Gradient Boosting的重要代表有GBDT,它是通过不断改进估算来实现的,下面以简单情况来描述其思路。

设训练集为 D = { x i , y i } i = 1 m D=\{\boldsymbol{x}_i,y_i\}_{i=1}^m D={xi,yi}i=1m,其中, y i y_i yi为连续型,即为回归问题,对于二分类问题取 y i y_i yi为属于正例的概率即可。

第0次估值(即初始化):

  • 数据集 D D D中所有样本 x i \boldsymbol{x}_i xi y ^ i 0 = 1 m ∑ i = 1 m y i \hat{y}_i^0=\frac{1}{m}\sum_{i=1}^my_i y^i0=m1i=1myi(常数)。
  • 推广到所有的 x \boldsymbol{x} x F 0 ( x ) = 1 m ∑ i = 1 m y i F_0(\boldsymbol{x})=\frac{1}{m}\sum_{i=1}^my_i F0(x)=m1i=1myi
    这时,所有样本的预测值都是一样的,显然不靠谱,好在它只是个初始化。 数据集 D D D中样本 x i \boldsymbol{x}_i xi的残差为: ε i 1 = y i − y ^ i 0 {\varepsilon}_i^1=y_i-\hat{y}_i^0 εi1=yiy^i0,形成数据集 D 1 = { x i , ε i 1 } i = 1 m D_1=\{\boldsymbol{x}_i,{\varepsilon}_i^1\}_{i=1}^m D1={xi,εi1}i=1m,在 D 1 D_1 D1上使用CART树【西瓜书第4.2.3节】进行回归,学习得到 h 1 ( x ) h_1(\boldsymbol{x}) h1(x)

第1次估值:

  • 对任意的 x \boldsymbol{x} x F 1 ( x ) = F 0 ( x ) + h 1 ( x ) F_1(\boldsymbol{x})=F_0(\boldsymbol{x})+h_1(\boldsymbol{x}) F1(x)=F0(x)+h1(x)(对上次的估值用残差校正)。
  • 数据集 D D D中样本 x i \boldsymbol{x}_i xi y ^ i 1 = F 1 ( x i ) \hat{y}_i^1=F_1(\boldsymbol{x}_i) y^i1=F1(xi)

这时,数据集 D D D中样本 x i \boldsymbol{x}_i xi的残差为: ε i 2 = y i − y ^ i 1 {\varepsilon}_i^2=y_i-\hat{y}_i^1 εi2=yiy^i1,形成数据集 D 2 = { x i , ε i 2 } i = 1 m D_2=\{\boldsymbol{x}_i,{\varepsilon}_i^2\}_{i=1}^m D2={xi,εi2}i=1m,在 D 2 D_2 D2上使用CART树学习得到 h 2 ( x ) h_2(\boldsymbol{x}) h2(x)

第2次估值:

  • 对任意的 x \boldsymbol{x} x F 2 ( x ) = F 1 ( x ) + h 2 ( x ) F_2(\boldsymbol{x})=F_1(\boldsymbol{x})+h_2(\boldsymbol{x}) F2(x)=F1(x)+h2(x)(对上次的估值用残差校正)。
  • 数据集 D D D中样本 x i \boldsymbol{x}_i xi y ^ i 2 = F 2 ( x i ) \hat{y}_i^2=F_2(\boldsymbol{x}_i) y^i2=F2(xi)

这时,数据集 D D D中样本 x i \boldsymbol{x}_i xi的残差为: ε i 3 = y i − y ^ i 2 {\varepsilon}_i^3=y_i-\hat{y}_i^2 εi3=yiy^i2,形成数据集 D 3 = { x i , ε i 3 } i = 1 m D_3=\{\boldsymbol{x}_i,{\varepsilon}_i^3\}_{i=1}^m D3={xi,εi3}i=1m,在 D 3 D_3 D3上使用CART树学习得到 h 3 ( x ) h_3(\boldsymbol{x}) h3(x)

如此类推,得到递推公式
F k + 1 ( x ) = F k ( x ) + h k + 1 ( x ) \begin{align} F_{k+1}(\boldsymbol{x})=F_k(\boldsymbol{x})+h_{k+1}(\boldsymbol{x}) \tag{8.31} \end{align} Fk+1(x)=Fk(x)+hk+1(x)(8.31)
由此得到集成公式
F T ( x ) = F 0 ( x ) + ∑ i = 1 T h i ( x ) \begin{align} F_T(\boldsymbol{x})=F_0(\boldsymbol{x})+\sum_{i=1}^Th_i(\boldsymbol{x}) \tag{8.32} \end{align} FT(x)=F0(x)+i=1Thi(x)(8.32)

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:8.3 AdaBoost算法的详细推导
下一篇:8.5再谈投票法(硬投票,软投票)