AdaBoost

AdaBoost

是英文"Adaptive Boosting"(自适应增强)的缩写,其自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。是一种集成学习方法。

算法

  1. 设训练数据集\(T={(x_1,y_1), (x_2,y_2)...(x_N,y_N)}\).
    初始化训练数据的权值分布(均匀分布)

    \[D_1=(w_{11},w_{12}\dots w_{1i}\dots w_{1N}), w_{1i}={1 \over N}, i=1,2,\dots,N \]

    权值仅用于计算分类误差,并不改变数据的真实分布.并在训练时选择误差最小的分类点得到当前的最优分类器.
  2. 使用具有权值分布Dm的训练数据集学习,得到基本分类器(二分类)

    \[G_m(x):\chi\longrightarrow \{-1,+1\} \]

  3. 计算Gm(x)在训练数据集上的分类误差率

    \[e_m=P(G_m(x_i)\neq y_i)=\sum_{i=1}^N w_{mi}I(G_M(x_i)\neq y_i) \]

    分类误差率是被错分的样本的权值之和.
  4. 计算Gm(x)的系数

    \[\alpha_m={1 \over 2}log{1-e_m \over e_m} \]

    可见,分类器的系数与误差率呈负相关,目的是减小最终误差
  5. 更新训练数据集的权值分布(对分类误差率较大的数据集加大权重,提高后续的分类器对这部分数据的分类准确率)

    \[D_{m+1}=(w_{m+1,1},\dots w_{m+1,i}\dots ,w_{m+1,N}), \]

    \[w_{m+1,i}={w_{mi} \over Z_m}exp(-\alpha_m y_i G_m(x_i)),i=1,2,\dots ,N \]

    \(Z_m\)是规范化因子,目的是使\(D_{m+1}\)成为一个概率分布:

    \[Z_m=\sum_{i=1}^N w_{mi}exp(-\alpha_m y_i G_m(x_i)) \]

  6. 重复2~5直到m为M(循环 M次)
  7. 构建基本分类器的线性组合

    \[f(x)=\sum_{m=1}^M \alpha_mG_m(x) \]

  8. 最终分类器

    \[G(x)=\rm{sign}[f(x)] \]

优缺点

缺点: AdaBoost方法对于噪声数据和异常数据很敏感。
优点:

  • 准确率可以大幅提升.
  • 速度较快,几乎不用调参.
  • 不太容易出现过拟合现象.
  • 分类器可以自由选择
posted @ 2018-04-26 10:25  康行天下  阅读(290)  评论(0编辑  收藏  举报