Boosting 的详细工作流程
Boosting 公式详解
Boosting 是一种集成学习方法,通过组合多个弱分类器构建强分类器。以下是AdaBoost(最常用的 Boosting 算法)的核心公式及分步讲解:
1. 初始化样本权重
假设有 N 个样本,初始权重均等分配:
意义:所有样本在初始时被视为同等重要。
2. 迭代训练弱分类器
在第 tt 轮迭代中,训练一个弱分类器 ht(x),其错误率 ϵt定义为:
说明:
I(⋅)是指示函数(错误分类时为 1,否则为 0)。
错误率是误分类样本的权重之和。
3. 计算弱分类器的权重 αtαt
弱分类器 ht(x) 的权重 αt 由错误率决定:
意义:
错误率越低(ϵt→0),αt 越大,表示该分类器越可靠。
错误率接近 0.5(随机猜测),αt→0,表示分类器无效。
4. 更新样本权重
根据分类结果调整样本权重,错误分类样本的权重增加,正确分类样本的权重减少:
具体规则:
若样本 ii 被正确分类(yiht(xi)=+1):
若样本 ii 被错误分类
:
归一化:
更新后需确保所有权重之和为 1:
5. 构建强分类器
最终分类器是所有弱分类器的加权组合:
说明:
若加权和为正,输出 +1;否则输出 −1。
高权重的弱分类器对最终决策影响更大。
示例演算:二分类问题
假设数据集包含 4 个样本(2 正类,2 负类),分布如下:
正类(+1):(1,1)(1,1)、(2,2)
负类(−1):(3,1)(3,1)、(4,4)
步骤 1:初始化权重
步骤 2:训练第 1 个弱分类器 h1(x)h1(x)
假设 h1(x) 为垂直分割线 x1=2.5:
正确分类:正类 (1,1)、(2,2),负类 (4,4)
误分类:负类 (3,1)(被分类为 +1)
错误率:
分类器权重:
更新权重:
步骤 3:训练第 2 个弱分类器 h2(x)
选择水平分割线 x2=2.5:
正确分类:正类 (1,1),负类 (3,1)、(4,4)
误分类:正类 (2,2)(被分类为 −1)
错误率:
分类器权重:
更新权重:
正确分类样本:权重降低
错误分类样本:权重升高
步骤 4:构建强分类器
假设最终组合为:
对于样本 (2,2)(2,2):
关键公式总结
核心思想
关注错误样本:通过权重调整,后续分类器更关注前一轮的误分类样本。
组合弱分类器:高精度弱分类器获得更大权重,共同提升整体性能。
指数损失优化:权重更新公式源自最小化指数损失函数
Boosting 的典型算法
- AdaBoost(Adaptive Boosting):最经典的 Boosting 算法,使用加权错误率来调整样本权重。
- Gradient Boosting(GBDT, XGBoost, LightGBM, CatBoost):通过优化损失函数,使用梯度下降策略构建弱学习器,提升模型效果。
- LogitBoost:基于逻辑回归损失函数的 Boosting 变种。