《统计学习方法》8.提升方法

总结机器学习中的boosting模型。

1. AdaBoost算法:

输入:训练数据集 , 其中 ;弱学习算法

输出:分类器 $G\left(x\right)$

  1. 初始化训练数据的权值分布

  2. 对 $m=1,2,\cdots,M$
    2.1 使用具有权值分布 $D_{m}$ 的训练数据集学习,得到基本分类器

    2.2 计算 $G_{m}\left(x\right)$ 在训练数据集上的分类误差率

    2.3 计算 $G_{m} \left(x\right)$的系数

    2.4 更新训练数据集的权值分布

    其中,$Z_{m}$是规范其中,$Z_{m}$是规范化因子

  3. 构建基本分类器的线性

    得到最终分类器

2. 加法模型

其中,$b\left(x;\gamma_{m}\right)$为基函数,$\beta_{m}$为基函数系数,$\gamma_{m}$为基函数参数。

在给定训练数据及损失函数 $L\left(y,f\left(x\right)\right)$ 的条件下,学习加法模型 $f\left(x\right)$成为经验风险极小化问题

学习加法模型,从前向后每一步只学习一个基函数及其系数,即每步只优化

3. 前向分布算法:

输入:训练数据集 ,损失函数 ;基函数集

输出:加法模型$f\left(x\right)$

  1. 初始化 $f_{0}\left(x\right)=0$
  2. 对 $m=1,2,\cdots,M$
    2.1 极小化损失函数

    得到参数 $\beta_{m},\gamma_{m}$

    2.2 更新

  3. 得到加法模型

训练数据集

其中,$x_{i} \in \mathcal{X} \subseteq R^{n}, y_{i} \in \mathcal{Y} \subseteq R, i = 1, 2, \cdots, N$。

将输入空间 $\mathcal{X}$ 划分为 $J$ 个互不相交的区域$R_{1},R_{2},\cdots,R_{J}$,且在每个区域上确定输出的常量$c_{j}$,则回归树

其中,参数 表示树的区域划分和各区域上的常数。$J$是回归树的负责度即叶结点个数。

4. 回归提升树使用前向分布算法

在前向分布算法的第 $m$ 步给定当前模型$f_{m-1}\left(x\right)$ ,模型参数

得到第$m$棵树的参数$\hat \varTheta_{m}$

当采用平方误差损失函数

其中,$r=y-f_{m-1}\left(x\right)$是当前模型拟合数据的残差。

5. 回归提升树算法:

输入:训练数据集

输出:回归提升树 $f_{M}\left(x\right)$

  1. 初始化 $f_{0}\left(x\right)=0$
  2. 对 $m=1,2,\cdots,M$
    2.1 计算残差

    2.2 拟合残差$r_{mi}$学习一个回归树,得到$T\left(x;\varTheta_{m}\right)$
    2.3 更新$f_{m}=f_{m-1}\left(x\right)+T\left(x;\varTheta_{m}\right)$

  3. 得到回归提升

6 梯度提升算法:

输入:训练数据集 ,损失函数 $L\left(y,f\left(x\right)\right)$
输入:回归树 $\hat f\left(x\right)$

  1. 初始化
  1. 对 $m=1,2,\cdots,M$
    2.1 对 $i=1,2,\cdots,N$计算

    2.2 对 $r_{mi}$拟合回归树,得到第$m$棵树的叶结点区域 $R_{mj},j=1,2,\cdots,J$

    2.3 对 $j=1,2,\cdots,J$计算

    2.4 更新$f_{m}\left(x\right)= f_{m-1}\left(x\right) + \sum_{j=1}^{J} c_{mj} I \left(x \in R_{mj} \right)$

  2. 得到回归树

Search

    Table of Contents

    本站总访问量: , 您是第位访客