Bagging

Bagging

baggingbootstrap aggregating,每个分类器随机从原样本 中做有放回的随机抽样,在抽样结果上训练基模型,最后根据 多个基模型的预测结果产生最终结果

  • 核心为bootstrap重抽样自举

步骤

  • 建模阶段:通过boostrap技术获得k个自举样本 $S_1, S_2,…, S_K$,以其为基础建立k个相同类型模型 $T_1, T_2,…, T_K$

  • 预测阶段:组合K个预测模型

    • 分类问题:K个预测模型“投票”
    • 回归问题:K个预测模型平均值

模型性质

  • 相较于单个基学习器,Bagging的优势
    • 分类Bagging几乎是最优的贝叶斯分类器
    • 回归Bagging可以通过降低方差(主要)降低均方误差

预测误差

总有部分观测未参与建模,预测误差估计偏乐观

  • OOB预测误差:out of bag,基于袋外观测的预测误差, 对每个模型,使用没有参与建立模型的样本进行预测,计算预测 误差

  • OOB观测比率:样本总量n较大时有

    • 每次训练样本比率小于10交叉验证的90%

Random Forest

随机森林:随机建立多个有较高预测精度、弱相关(甚至不相关) 的决策树(基础学习器),多棵决策树共同对新观测做预测

  • RF是Bagging的扩展变体,在以决策树为基学习器构建Bagging 集成模型的基础上,在训练过程中引入了随机特征选择

  • 适合场景

    • 数据维度相对较低、同时对准确率有要求
    • 无需很多参数调整即可达到不错的效果

步骤

  • 样本随机:Bootstrap自举样本

  • 输入属性随机:对第i棵决策树通过随机方式选取K个输入变量 构成候选变量子集$\Theta_I$

    • Forest-Random Input:随机选择$k=log_2P+1或k=\sqrt P$ 个变量

    • Forest-Random Combination

      • 随机选择L个输入变量x
      • 生成L个服从均匀分布的随机数$\alpha$
      • 做线性组合 $vj = \sum{i=1}^L \alpha_i x_i, \alpha_i \in [-1, 1]$
      • 得到k个由新变量v组成的输入变量子集$\Theta_i$
  • 在候选变量子集中选择最优变量构建决策树

    • 生成决策树时不需要剪枝
  • 重复以上步骤构建k棵决策树,用一定集成策略组合多个决策树

    • 简单平均/随机森林投票

优点

  • 样本抽样、属性抽样引入随机性

    • 基学习器估计误差较大,但是组合模型偏差被修正
    • 不容易发生过拟合、对随机波动稳健性较好
    • 一定程度上避免贪心算法带来的局部最优局限
  • 数据兼容性

    • 能够方便处理高维数据,“不用做特征选择”
    • 能处理分类型、连续型数据
  • 训练速度快、容易实现并行

  • 其他

    • 可以得到变量重要性排序
    • 启发式操作
    • 优化操作

缺点

  • 决策树数量过多时,训练需要资源多
  • 模型解释能力差,有点黑盒模型