Skip to content

第8章 集成学习 ​

🎯 学习目标 ​

  • 理解"三个臭皮匠顶个诸葛亮"的集成学习思想
  • 掌握Boosting和Bagging两大集成策略的区别
  • 理解随机森林的随机性来源和优势
  • 掌握多种结合策略:平均法、投票法、学习法
  • 理解多样性对集成学习性能的重要影响

8.1 个体与集成 ​

💡 集成学习的动机

集成学习(Ensemble Learning)通过构建并结合多个学习器来完成学习任务。俗话说"三个臭皮匠顶个诸葛亮",这正是集成学习的核心思想。

单个学习器 vs 集成学习器 ​

方面单个学习器 🧠集成学习器 🧠🧠🧠
偏差/方差偏差或方差较大降低方差(Bagging)或偏差(Boosting)
泛化能力有限更好的泛化性能
拟合风险容易过拟合或欠拟合平衡拟合

关键条件

个体学习器要"好而不同"——既要有一定的准确性,又要有多样性。

集成学习的类型 ​

类型说明示例
同质集成个体学习器属于同一类型(基学习器)都是决策树、都是神经网络
异质集成个体学习器包含不同类型(组件学习器)决策树+SVM+神经网络,多样性更好

8.2 Boosting ​

🚀 Boosting策略

Boosting是一族可将弱学习器提升为强学习器的算法。其工作机制:先训练一个基学习器,再根据其表现调整训练样本分布,使后续学习器更关注之前分错的样本。

Boosting工作流程 ​

  1. ⚖️ 初始化:所有样本权重相同
  2. 🎓 训练:根据当前权重训练学习器
  3. 📊 评估:计算学习器的错误率
  4. ⬆️ 更新:增加分错样本的权重
  5. 🔄 重复步骤2-4,直到达到预设数量
  6. 🤝 组合:加权组合所有学习器

核心思想

通过序列化训练,让后面的学习器专注于前面学习器的"短板"。

AdaBoost算法 ​

AdaBoost(Adaptive Boosting)是最著名的Boosting算法之一。

学习器权重:

αt=12ln⁡1−εtεt

错误率 εt 越小,权重 αt 越大。

样本权重更新:

Dt+1(i)=Dt(i)×exp⁡(−αtyiht(xi))Zt

分类错误的样本权重增加,正确的减少。

✓ AdaBoost优势

  • 泛化性能强
  • 不易过拟合
  • 可用于各种基学习器
  • 不需要知道弱学习器的性能下界

⚠️ 注意

  • 对噪声敏感
  • 训练时间较长(串行)
  • 基学习器不能太复杂

8.3 Bagging与随机森林 ​

📦 Bagging策略

Bagging(Bootstrap AGGregatING)基于自助采样法(Bootstrap Sampling),通过并行训练多个学习器并进行结合来降低方差。

Bagging工作流程 ​

1. 自助采样:

  • 从数据集D中有放回采样
  • 每次采样m个样本
  • 生成T个训练集
  • 约36.8%样本未被采到(OOB)

2. 并行训练:

  • 在每个采样集上独立训练
  • 训练T个基学习器
  • 可并行化,训练快
  • 学习器之间相互独立

3. 结合预测:

  • 分类任务:简单投票法
  • 回归任务:简单平均法

为什么有效?

通过训练集的扰动,个体学习器之间产生差异,降低整体方差。

随机森林 (Random Forest) ​

随机森林是Bagging的一个扩展变体,以决策树为基学习器,在Bagging的基础上进一步引入了随机属性选择。

两层随机性 ​

随机性方法说明
样本随机Bootstrap采样每棵树训练不同的样本子集,有放回采样
特征随机随机选择k个属性每次划分只考虑k个特征,推荐 k=log2⁡d

随机森林的三大优势:

  • ⚡ 训练快速:可并行,决策树简单
  • 🎯 性能优秀:泛化能力强,准确度高
  • 🛡️ 鲁棒性好:对噪声和过拟合抗性强

随机森林交互演示 ​

观察多棵决策树如何通过投票机制得到最终预测,理解特征随机和样本随机的作用。

特征空间

类别 0
类别 1
测试点

集成预测

🌲

点击"训练森林"开始预测

310
01
01

💡 随机森林原理

样本随机(Bagging)

每棵树使用自助采样(Bootstrap)从训练集中有放回地抽取样本,约63.2%的样本会被选中

特征随机

每次分裂时,从所有特征中随机选择k个特征,通常k = log₂d,增强树的多样性

投票机制

分类任务:多数投票(Majority Voting)
回归任务:平均预测值(Averaging)

为什么随机森林有效?

  • 降低方差:多个弱学习器的平均降低了过拟合风险
  • 增强鲁棒性:单棵树的错误可被其他树纠正
  • 特征重要性:可以评估每个特征的贡献度

8.4 结合策略 ​

🤝 如何结合多个学习器?

学习器结合可能从三个方面带来好处:统计、计算、表示。

策略适用场景方法
平均法回归任务简单平均、加权平均
投票法分类任务绝对多数投票、相对多数投票、加权投票
学习法Stacking训练元学习器学习如何组合

Stacking ​

  • 初级学习器:在原始数据集上训练多个不同的学习器
  • 次级学习器:将初级学习器的输出作为新特征,训练元学习器
  • 优势:理论上可以学习到最优的结合方式

8.5 多样性 ​

🎨 为什么需要多样性?

集成学习要取得好的性能,个体学习器应"好而不同"。多样性(Diversity)是集成学习成功的关键。

增强多样性的方法 ​

方法具体手段
数据样本扰动Bootstrap采样、不同样本权重、不同样本子集
输入属性扰动随机子空间、随机特征选择、特征变换
输出表示扰动翻转输出、ECOC编码、类别重标记
算法参数扰动不同参数设置、不同随机初始化、不同学习算法

权衡

多样性和准确性之间存在冲突。理想的集成应在两者间取得最佳平衡。

📝 本章小结 ​

总结

  • ✅ 集成学习通过构建并结合多个学习器,往往能获得比单一学习器更好的泛化性能
  • ✅ Boosting串行训练,关注难分样本,主要降低偏差;Bagging并行训练,降低方差
  • ✅ 随机森林在Bagging基础上引入随机特征选择,是最成功的集成学习方法之一
  • ✅ 结合策略包括平均法、投票法和学习法(Stacking),应根据任务选择合适的策略
  • ✅ 多样性是集成学习的关键,可通过数据、属性、输出、参数等多种方式增强
  • ✅ 实践中随机森林和GBDT(梯度提升决策树)是最常用和效果最好的集成方法

基于周志华《机器学习》教材