目录



 

前向分步算法一、前向分步算法引入

假设Nick的年龄是25岁。

  1. 第1棵决策树

把Nick的年龄设置成初始值0岁去学习,如果第1棵决策树预测Nick的年龄是12岁,即残差值为25−12=1325−12=13

2. 第2课决策树

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

2. 如果第2棵决策树的得到的是10岁,残差值为25−12−10=325−12−10=3

3. 第3课决策树

把Nick的年龄设置成残差值3岁去学习……

4. 继续重复上述过程学习,不断逼近Nick的真实年龄

二、前向分步算法详解

2.1 加法模型

加法模型(additive model)一般表示为弱学习器加和



f(x)=∑t=1Tθtb(x;γt)f(x)=∑t=1Tθtb(x;γt)


其中b(x;γt)b(x;γt)为弱学习器,γtγt为弱学习器的参数,θtθt为弱学习器的系数。

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

给定训练数据以及目标函数L(y,f(x))L(y,f(x)),加法模型的经验风险最小化问题既可以变为目标函数最小化问题



minθt,γt∑i=1mL(yi,∑t=1Tθtb(xi;γt))min⏟θt,γt∑i=1mL(yi,∑t=1Tθtb(xi;γt))


上述加法模型的目标函数优化问题是一个很复杂的优化问题,但是通过前向分布算法(forward stagewise algorithm)可以解决这一问题,它的思想是:因为学习问题是加法模型,所以每一步只学习一个弱学习器及其系数,然后逐步逼近优化目标函数,也就是说,每一步只需要优化如下所示的目标函数



minθ,γ∑i=1mL(yi,θb(xi;γ))min⏟θ,γ∑i=1mL(yi,θb(xi;γ))


三、前向分步算法流程

3.1 输入

有mm个数据nn个特征的训练数据集T={(x1,y1),(x2,y2),⋯,(xm,ym)}T={(x1,y1),(x2,y2),⋯,(xm,ym)};目标函数L(y,f(x))L(y,f(x));弱学习模型集{b(x;γt)},(t=1,2,⋯,T){b(x;γt)},(t=1,2,⋯,T),在Boosting算法中TT相当于弱学习器的个数。

3.2 输出

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

3.3 流程

  1. 初始化f0(x)=0f0(x)=0
  2. 对t=1,2,⋯,Tt=1,2,⋯,T
  1. 极小化目标函数

(θt,γt)=argminθ,γ∑i=1mL(yi,ft−1(xi)+θb(xi;γ))(θt,γt)=argmin⏟θ,γ∑i=1mL(yi,ft−1(xi)+θb(xi;γ))

  1. 得到参数θt,γtθt,γt
  2. 2. 更新

ft(x)=ft−1(x)+θtb(x;γt)ft(x)=ft−1(x)+θtb(x;γt)

  1. 得到加法模型



f(x)=fT(x)=∑t=1Tθtb(x;γt)f(x)=fT(x)=∑t=1Tθtb(x;γt)