Adaboost(Adaptive Boosting)是一种经典的集成学习方法,主要思想是通过将多个弱学习器(通常是简单模型,如决策树桩)加权组合,来提升整体模型的预测能力。Adaboost 是一种自适应的学习方法,能够不断调整弱学习器的训练过程,专注于难分类的样本,从而逐步提高分类性能。
1. 背景与基本原理
在机器学习中,弱学习器是指其分类准确率略高于随机猜测的学习器。Adaboost的目标是将多个弱学习器组合成一个强学习器,来提高分类精度。它的基本原理是:
- 每个弱学习器会根据当前的样本权重进行训练,样本权重较大的样本对训练结果影响更大。
- 在每一轮训练中,Adaboost 会调整样本的权重,使得上一轮分类错误的样本权重增大,上一轮分类正确的样本权重减小,从而让后续的弱学习器更加关注难以分类的样本。
- 最终,Adaboost 会将所有弱学习器加权组合,形成一个强学习器。
2. 算法步骤
以下是 Adaboost 算法的详细步骤:
2.1 初始化
假设有 N 个训练样本,每个样本的特征为 和标签为
,其中
代表正样本,
代表负样本。所有样本的初始权重设置为均等的:
2.2 迭代训练弱学习器
Adaboost 会进行 T 次迭代(即训练 T 个弱学习器)。在每一轮 t:
-
训练弱学习器:
在当前样本权重的基础上训练一个弱学习器,其目标是最小化加权的训练误差。常用的弱学习器是决策树桩(深度为1的决策树)。
-
计算弱学习器的错误率:
计算当前弱学习器的加权错误率(即样本分类错误的权重总和