AdaBoost
AdaBoost
是英文"Adaptive Boosting"(自适应增强)的缩写,其自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。是一种集成学习方法。
算法
- 设训练数据集\(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 \]权值仅用于计算分类误差,并不改变数据的真实分布.并在训练时选择误差最小的分类点得到当前的最优分类器. - 使用具有权值分布Dm的训练数据集学习,得到基本分类器(二分类)\[G_m(x):\chi\longrightarrow \{-1,+1\} \]
- 计算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) \]分类误差率是被错分的样本的权值之和.
- 计算Gm(x)的系数\[\alpha_m={1 \over 2}log{1-e_m \over e_m} \]可见,分类器的系数与误差率呈负相关,目的是减小最终误差
- 更新训练数据集的权值分布(对分类误差率较大的数据集加大权重,提高后续的分类器对这部分数据的分类准确率)\[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)) \]
- 重复2~5直到m为M(循环 M次)
- 构建基本分类器的线性组合\[f(x)=\sum_{m=1}^M \alpha_mG_m(x) \]
- 最终分类器\[G(x)=\rm{sign}[f(x)] \]
优缺点
缺点: AdaBoost方法对于噪声数据和异常数据很敏感。
优点:
- 准确率可以大幅提升.
- 速度较快,几乎不用调参.
- 不太容易出现过拟合现象.
- 分类器可以自由选择
本文源自http://www.cnblogs.com/makefile/