AdaBoost

会有一股神秘感。 提交于 2021-02-15 01:39:39

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方法对于噪声数据和异常数据很敏感。 优点:

  • 准确率可以大幅提升.
  • 速度较快,几乎不用调参.
  • 不太容易出现过拟合现象.
  • 分类器可以自由选择
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!