一、 集成学习基础概论
集成学习(Ensemble Learning)的核心思想是通过构建并结合多个个体学习器(Individual Learner)来完成学习任务,以获得比单一学习器更好的泛化能力和性能 1。
1. 学习器分类
- 同质集成(Homogeneous): 集成中只包含同种类型的个体学习器(如全是决策树),此时个体学习器称为基学习器 2。
- 异质集成(Heterogeneous): 个体学习器由不同的学习算法生成(如结合SVM和逻辑回归),通常称为"组件学习器" 3。
2. 组合范式
- 并行式(Parallel): 学习器之间不存在强依赖关系,可并行生成(如 Bagging、随机森林)
- 序列式(Sequential): 学习器之间存在强依赖关系,必须串行生成,后续学习器会对前驱学习器的错误进行改进(如 Boosting)
二、 Boosting:串行优化的艺术
Boosting 是一类通过不断调整样本分布来训练一系列基学习器的方法,旨在降低偏差(Bias)
1. AdaBoost(自适应提升)
AdaBoost 的核心逻辑是:"关注错题"。它根据前一轮基学习器的表现调整样本权重,使做错的样本在下一轮获得更多关注 7。
晦涩公式解析:基学习器权重系数 αt\alpha_tαt
αt=12ln1−etet\alpha_{t}=\frac{1}{2}ln\frac{1-e_{t}}{e_{t}}αt=21lnet1−et
- 意义: 该公式决定了第 ttt 个学习器在最终投票中的话语权。
- 解释: ete_tet 是错误率。当错误率越小时,αt\alpha_tαt 越大(代表该专家越可靠);当错误率 et=0.5e_t = 0.5et=0.5(相当于随机猜测)时,αt=0\alpha_t = 0αt=0;如果错误率大于 0.5,算法通常会停止迭代
晦涩公式解析:样本权重更新 wt+1,iw_{t+1,i}wt+1,i
wt+1,i=wtiZtexp(−αtyigt(xi))w_{t+1,i}=\frac{w_{ti}}{Z_{t}}exp(-\alpha_{t}y_{i}g_{t}(x_{i}))wt+1,i=Ztwtiexp(−αtyigt(xi))- 意义: 更新下一轮训练时每个样本的重要性。
- 解释: yigt(xi)y_i g_t(x_i)yigt(xi) 代表分类是否正确。若分类正确,乘积为正,加上负号后指数项变小,样本权重降低;若分类错误,权重增大,迫使下一个学习器去解决这些"难题"
2. GBDT(梯度提升树)
GBDT 不再像 AdaBoost 那样通过调权重来解决难题,而是去拟合损失函数的负梯度(又称伪残差)
- 原理: 每一棵新树都是在当前模型的梯度下降方向上构建的,从而逐步降低整体损失
- 优势: 可以方便地扩展到各种损失函数(如回归的平方损失、分类的交叉熵)
三、 Bagging 与随机森林:并行的稳定性
此类方法通过增加学习器之间的多样性 来降低方差(Variance)
1. Bagging(装袋法)
- 自助采样(Bootstrap Sampling): 采用有放回的随机采样。大约 36.8% 的样本在采样中始终不会被选中,这些被称为"包外(OOB)数据",可用于性能评估
- 策略: 分类任务通常使用简单多数投票法 ;回归任务使用简单算术平均法
2. 随机森林(Random Forest, RF)
随机森林是 Bagging 的工业级加强版,引入了双重随机性:
- 样本扰动: 来自自助采样
- 属性扰动: 在决策树划分结点时,先随机选择 kkk 个特征子集,再从中选最优特征
- 优点: 泛化性能极强,抗噪声能力好,通常不需要剪枝
四、 Stacking(堆叠法):元学习器
Stacking 是一种多层集成结构,它将多个初级学习器的预测结果作为"新特征",再训练一个**次级学习器(元模型)**来得出最终结论
- 核心逻辑: 通过次级学习器自动学习各个基学习器的权重,而不是简单地手动分配
五、 多样性(Diversity):集成的"圣杯"
集成学习之所以有效,是因为个体学习器之间"好而不同"
1. 误差-分歧分解(Error-Ambiguity Decomposition)
核心公式:E=Eˉ−AˉE = \bar{E} - \bar{A}E=Eˉ−Aˉ 24* EEE: 集成的泛化误差
- Eˉ\bar{E}Eˉ: 个体学习器误差的加权均值
- Aˉ\bar{A}Aˉ: 个体学习器的加权分歧值(多样性的度量)
- 结论: 个体学习器准确度越高(Eˉ\bar{E}Eˉ 越小)、多样性越大(Aˉ\bar{A}Aˉ 越大),则集成效果越好
- 增强多样性的方法
-
数据样本扰动: 如采样法(Bagging/AdaBoost)
-
输入属性扰动: 如随机子空间,随机选择特征子集进行训练
-
输出表示扰动: 如翻转法,随机改变部分样本的标签
-
算法参数扰动: 改变神经网络的初始权重等
总结:如何选择集成策略?
| 方法 | 核心目标 | 适用场景 | 关键特点 |
|---|---|---|---|
| Boosting | 降低偏差 34 | 针对欠拟合,提高模型精度 | 串行执行,基学习器权重自适应 35 |
| Bagging/RF | 降低方差 36 | 针对过拟合,提高稳定性 | 并行执行,双重随机性引入 37 |
| Stacking | 综合多种优势 | 竞赛或处理极复杂任务 | 结构化组合,元模型自动加权 38 |