CHAPTER 8
✓ 已完成
🤝

集成学习

Ensemble Learning

学习目标

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

个体与集成

💡

集成学习的动机

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

单个学习器
🧠

可能犯错

  • • 偏差或方差较大
  • • 泛化能力有限
  • • 容易过拟合或欠拟合
集成学习器
🧠🧠🧠

少数服从多数

  • • 降低方差(Bagging)
  • • 降低偏差(Boosting)
  • • 更好的泛化性能

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

🎯

集成学习的类型

同质集成

个体学习器属于同一类型

基学习器 (Base Learner)
  • • 例:都是决策树
  • • 例:都是神经网络
异质集成

个体学习器包含不同类型

组件学习器 (Component Learner)
  • • 例:决策树+SVM+神经网络
  • • 多样性更好
🎮

集成学习效果演示

可视化对比单个学习器和集成学习器的决策边界(开发中)

🚧

交互式演示开发中

将展示集成如何降低误差

8.2

Boosting

🚀

Boosting策略

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

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

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

AdaBoost算法

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

学习器权重:

αt = ½ ln((1-εt)/εt)

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

样本权重更新:

Dt+1(i) = Dt(i) × exp(-αtyiht(xi)) / Zt

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

✓ 优势
  • • 泛化性能强
  • • 不易过拟合
  • • 可用于各种基学习器
  • • 不需要知道弱学习器的性能下界
⚠️ 注意
  • • 对噪声敏感
  • • 训练时间较长(串行)
  • • 基学习器不能太复杂
🎯

AdaBoost演示

可视化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 = log₂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(梯度提升决策树)是最常用和效果最好的集成方法