AdaBoost 自适应提升(一) 基本原理

AdaBoost(Adaptive Boosting,自适应提升)算法由 Yoav Freund 和 Robert Schapire 于 1995 年提出,是一种能自动找出薄弱环节并不断改进的集体学习方法,是机器学习历史上具有里程碑意义的算法。它首次在理论上证明:即使是性能较弱的模型,只要经过合理的组合,也能形成一个强大的分类器。凭借简单而高效的设计,它在图像识别、医学诊断、金融风控等多个领域得到广泛应用。

传统 AdaBoost 用于二分类,Scikit-Learn 中实现的是其多分类扩展版本 SAMME(Stagewise Additive Modeling using a Multi-class Exponential loss)。

Paper:https://link.intlpress.com/JDetail/1806634576447516674

1. 预测过程

预测过程:

  1. 每个弱学习器对输入样本的各类别分别打分
  2. 将所有弱学习器的类别分数按各自模型权重加权求和
  3. 得分最高的类别即为最终预测结果

2. 训练过程

AdaBoost 的目标:把一堆单兵作战能力一般的小模型,训练成一个协同作战的强模型。它的秘诀只有两样:样本权重模型权重

样本权重是它的引导机制。上一轮弱学习器把某些样本判错了,这些样本的权重就会提高。判对了的样本权重会下降。下一轮训练时,弱学习器会自然把更多精力放在那些前任处理不好的样本上。如此往复,每个弱学习器都在专门修补前一轮的盲点。

但小模型之间也有水平高低。有的弱学习器确实学到了东西,有的则只是混了一下训练流程。这就需要模型权重来分配话语权:表现好的弱学习器权重大、影响力强。表现差的弱学习器被自动降权,避免它们把整体结果带偏。

整个训练可以这样概括:

  • 初始样本权重全部相同
  • 用当前样本权重训练弱学习器
  • 根据弱学习器的错误率计算模型权重
  • 根据该弱学习器的预测结果更新样本权重,让误分样本在下一轮更显眼
  • 重复上述步骤,逐步累积多个弱学习器

说到底,AdaBoost 的训练像是一场接力赛,每一棒都试图弥补上一棒留下的漏洞,最终把这些不那么完美的弱选手,组合成一个尽可能可靠的强模型。

下面对重要概念进行总结:

  • 核心思想:通过组合多个弱学习器,逐步提升整体分类性能,训练过程是串行的,每一轮都依赖上一轮的结果
  • 样本权重:通过动态调整样本权重,让分类错误或难分的样本在下一轮获得更高关注度。
  • 模型权重:每个弱学习器都被赋予一个模型权重,表示其重要性,权重越大,对最终预测影响越强
  • 预测方式:最终预测由所有弱学习器的加权投票得到
  • 弱学习器:通常使用非常简单的模型,性能略优于随机猜测,能有效避免过拟合