河南大学机器学习与数据挖掘——第八章 集成学习
集成学习(Ensemble Learning)是将多个基学习器(Base Learner)组合起来完成学习任务的一种机器学习策略,其目标是通过集体智慧提升模型的泛化能力。Boosting(加法模型)Stacking(堆叠模型)Bagging 与 Boosting。Bagging 适合高方差模型,如决策树、KNN;Boosting 适合高偏差模型,如浅层神经网络、线性模型。集成学习在 Kaggle
机器学习与数据挖掘(第八章)——集成学习详解
📌 本文适用于准备复习《机器学习与数据挖掘》课程第八章“集成学习”的同学,覆盖了核心理论、偏差-方差理解、以及常见集成方法 AdaBoost 与 Random Forest 的具体流程。
一、集成学习概述
集成学习(Ensemble Learning)是将多个基学习器(Base Learner)组合起来完成学习任务的一种机器学习策略,其目标是通过集体智慧提升模型的泛化能力。
常见的集成方法主要包括:
- Bagging(Bootstrap Aggregating)
- Boosting(加法模型)
- Stacking(堆叠模型)
本文重点介绍前两者:Bagging 与 Boosting。
二、偏差-方差分解
模型误差可以分为三部分:
Error=Bias2+Variance+Irreducible Error \text{Error} = \text{Bias}^2 + \text{Variance} + \text{Irreducible Error} Error=Bias2+Variance+Irreducible Error
- 偏差(Bias):学习算法预测值与真实值之间的误差,反映模型的拟合能力。
- 方差(Variance):模型对训练数据扰动的敏感度,反映模型的稳定性。
Boosting 主要降低偏差(Bias),Bagging 主要降低方差(Variance)。(考试考了)
三、Bagging:随机森林的基础
目标
通过自助采样法(Bootstrap)训练多个模型并投票(分类)或平均(回归)来降低方差,提升稳定性。
算法流程(以随机森林为例)(考试考了)
- 对训练集进行有放回采样,生成 TTT 个子训练集 D1,D2,…,DTD_1, D_2, \dots, D_TD1,D2,…,DT。
- 对每个子集 DtD_tDt 训练一个基学习器 ht(x)h_t(x)ht(x)(如决策树)。
- 集成多个学习器的输出:
- 分类:使用多数投票
- 回归:使用平均值
f^bag(x)=1T∑t=1Tht(x) \hat{f}_{bag}(x) = \frac{1}{T} \sum_{t=1}^{T} h_t(x) f^bag(x)=T1t=1∑Tht(x)
随机森林的两大关键
- 基学习器为 决策树。
- 每个节点的划分特征在随机子集中选择,增加多样性。
四、Boosting:AdaBoost为代表
目标
Boosting 是一种加法模型,逐步迭代构建多个弱学习器,每一步都关注前一步分类错误的数据样本,从而降低偏差。
AdaBoost 算法流程(用于二分类)(考试考了)
- 初始化训练样本权重:
w1(i)=1N,i=1,2,…,N w_1(i) = \frac{1}{N}, \quad i = 1, 2, \dots, N w1(i)=N1,i=1,2,…,N
-
对 t=1t = 1t=1 到 TTT(总迭代次数):
-
训练弱分类器 ht(x)h_t(x)ht(x),最小化加权错误率:
ϵt=∑i=1Nwt(i)⋅1(ht(xi)≠yi) \epsilon_t = \sum_{i=1}^{N} w_t(i) \cdot \mathbf{1}(h_t(x_i) \neq y_i) ϵt=i=1∑Nwt(i)⋅1(ht(xi)=yi)
-
计算分类器权重:
αt=12ln(1−ϵtϵt) \alpha_t = \frac{1}{2} \ln \left( \frac{1 - \epsilon_t}{\epsilon_t} \right) αt=21ln(ϵt1−ϵt)
-
更新样本权重:
wt+1(i)=wt(i)⋅exp(−αtyiht(xi)),i=1,…,N w_{t+1}(i) = w_t(i) \cdot \exp(-\alpha_t y_i h_t(x_i)), \quad i = 1, \dots, N wt+1(i)=wt(i)⋅exp(−αtyiht(xi)),i=1,…,N
并归一化,使其和为 1。
-
-
最终分类器:
H(x)=sign(∑t=1Tαtht(x)) H(x) = \operatorname{sign} \left( \sum_{t=1}^{T} \alpha_t h_t(x) \right) H(x)=sign(t=1∑Tαtht(x))
特点
- 每一轮关注分类错误的样本。
- 易受噪声影响,但准确率高于 Bagging。
五、Bagging vs Boosting 对比
| 特性 | Bagging | Boosting |
|---|---|---|
| 思想 | 并行训练多个弱学习器 | 顺序训练多个弱学习器 |
| 偏差-方差 | 降低方差 | 降低偏差 |
| 数据采样方式 | 有放回随机采样 | 所有数据,带权重调整 |
| 抗噪声能力 | 强 | 弱 |
| 典型方法 | 随机森林 Random Forest | AdaBoost、GradientBoost |
六、总结与应用场景
- Bagging 适合高方差模型,如决策树、KNN;
- Boosting 适合高偏差模型,如浅层神经网络、线性模型。
集成学习在 Kaggle 比赛、金融风控、图像识别中均有广泛应用,理解其原理与偏差-方差机制是提升算法工程能力的关键一步。
更多推荐


所有评论(0)