A-07 前向分步算法

前向分步算法

前向分步算法引入

在这里插入图片描述

  假设Nick的年龄是25岁。

  1. 第1棵决策树

把Nick的年龄设置成初始值0岁去学习,如果第1棵决策树预测Nick的年龄是12岁,即残差值为 25 − 12 = 13 25-12=13 2512=13
2. 第2课决策树
1. 把Nick的年龄设置成残差值13岁去学习,如果第2棵决策树能把Nick分到13岁的叶子节点,累加两棵决策树的预测值加和 12 + 13 = 25 12+13=25 12+13=25,就是Nick的真实年龄25岁
2. 如果第2棵决策树的得到的是10岁,残差值为 25 − 12 − 10 = 3 25-12-10=3 251210=3
3. 第3课决策树

把Nick的年龄设置成残差值3岁去学习……
4. 继续重复上述过程学习,不断逼近Nick的真实年龄

前向分步算法详解

加法模型

  加法模型(additive model)一般表示为弱学习器加和
f ( x ) = ∑ t = 1 T θ t b ( x ; γ t ) f(x) = \sum_{t=1}^T\theta_tb(x;\gamma_t) f(x)=t=1Tθtb(x;γt)
其中 b ( x ; γ t ) b(x;\gamma_t) b(x;γt)为弱学习器, γ t \gamma_t γt为弱学习器的参数, θ t \theta_t θt为弱学习器的系数。

加法模型目标函数优化问题

  给定训练数据以及目标函数 L ( y , f ( x ) ) L(y,f(x)) L(y,f(x)),加法模型的经验风险最小化问题既可以变为目标函数最小化问题
m i n ⏟ θ t , γ t ∑ i = 1 m L ( y i , ∑ t = 1 T θ t b ( x i ; γ t ) ) \underbrace{min}_{\theta_t,\gamma_t}\sum_{i=1}^mL(y_i,\sum_{t=1}^T\theta_tb(x_i;\gamma_t)) θt,γt mini=1mL(yi,t=1Tθtb(xi;γt))
  上述加法模型的目标函数优化问题是一个很复杂的优化问题,但是通过前向分布算法(forward stagewise algorithm)可以解决这一问题,它的思想是:因为学习问题是加法模型,所以每一步只学习一个弱学习器及其系数,然后逐步逼近优化目标函数,也就是说,每一步只需要优化如下所示的目标函数
m i n ⏟ θ , γ ∑ i = 1 m L ( y i , θ b ( x i ; γ ) ) \underbrace{min}_{\theta,\gamma}\sum_{i=1}^mL(y_i,\theta{b(x_i;\gamma)}) θ,γ mini=1mL(yi,θb(xi;γ))

前向分步算法流程

输入

  有 m m m个数据 n n n个特征的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\} T={(x1,y1),(x2,y2),,(xm,ym)};目标函数 L ( y , f ( x ) ) L(y,f(x)) L(y,f(x));弱学习模型集 { b ( x ; γ t ) } , ( t = 1 , 2 , ⋯   , T ) \{b(x;\gamma_t)\},\quad(t=1,2,\cdots,T) {b(x;γt)},(t=1,2,,T),在Boosting算法中 T T T相当于弱学习器的个数。

输出

  加法模型 f ( x ) f(x) f(x)

流程

  1. 初始化 f 0 ( x ) = 0 f_0(x)=0 f0(x)=0
  2. t = 1 , 2 , ⋯   , T t=1,2,\cdots,T t=1,2,,T
    1. 极小化目标函数
      ( θ t , γ t ) = a r g   m i n ⏟ θ , γ ∑ i = 1 m L ( y i , f t − 1 ( x i ) + θ b ( x i ; γ ) ) (\theta_t,\gamma_t)=\underbrace{arg\,min}_{\theta,\gamma}\sum_{i=1}^mL(y_i,f_{t-1}(x_i)+\theta{b(x_i;\gamma)}) (θt,γt)=θ,γ argmini=1mL(yi,ft1(xi)+θb(xi;γ))
      得到参数 θ t , γ t \theta_t,\gamma_t θt,γt
    2. 更新
      f t ( x ) = f t − 1 ( x ) + θ t b ( x ; γ t ) f_t(x)=f_{t-1}(x)+\theta_tb(x;\gamma_t) ft(x)=ft1(x)+θtb(x;γt)
  3. 得到加法模型

f ( x ) = f T ( x ) = ∑ t = 1 T θ t b ( x ; γ t ) f(x)=f_T(x)=\sum_{t=1}^T\theta_tb(x;\gamma_t) f(x)=fT(x)=t=1Tθtb(x;γt)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值