Boosting思想起源于PAC(Probably Approximately Correct)学习模型,
Kearns
和
Valiant
于1989年提出弱学习器与强学习器学习能力等价的猜想[1],1990年Schapire通过构造多项式的方法证实了这一猜想,这也是最初的Boosting算法。一年后,Schapire提出了一种更为高效的Boosting算法,但这两种算法都需要知道弱学习器的学习正确率的下限,难以应用实际问题。
Adaptive Boosting
1997年,Schapire提出了AdaBoost(Adaptive Boosting)算法,能够更好地利用弱学习器的优势,同时也摆脱了对弱学习器先验知识的依赖。AdaBoost的主题思想是减弱上一轮预测正确的样本的权重,增大预测错误的样本权重。同时,给预测错误率低的学习器更大权重。
AdaBoost的损失函数是指数损失函数
,从而可以推导出分类器的权重。
其伪代码如下[2]:

AdaBoost方法有着很强的抗过拟合能力
,Freund 和Schapire 使用可最初给出的AdaBoost的误差上界为:
泛化错误(泛化错误可理解为测试错误) < 训练错误 + 学习算法容量相关项
实验表明,AdaBoost通常不会发生过拟合,也就是说在训练误差降为0以后,泛化集的误差常常随着训练继续下降,甚至可以继续新增1000个学习器左右。1998年,Schapire引入margin-based理论解释,基于margin的概念,
AdaBoost的误差上界为:
泛化错误 < 训练Margin项 + 学习算法容量相关项 (2)