周志华《机器学习—西瓜书》八

周志华《机器学习---西瓜书》八

八、集成学习

以下是按顺序整理的内容:

1. 集成学习

  • 定义:使用多个学习器协同解决问题的方法("多个模型融合")。
  • 实践表现:近十年KDDCup、Kaggle等竞赛的获胜方案几乎都用到了集成技术,是实战中提升模型性能的关键方法之一。

2.好而不同

如何得到好的集成
  • 核心原则:令个体学习器 "好而不同"

    • "好":个体学习器的性能不能太差(如准确率高于随机猜测);
    • "不同":个体学习器之间要有差异性(预测结果不完全一致)。
  • 示例验证:

    • 当个体学习器"好且不同"时,集成性能会远高于单个学习器;
    • 若个体学习器"差"或"无差异",集成性能会很差甚至失效。
多样性是关键(误差-分歧分解)
  • 理论分解:集成误差 E=Eˉ−AˉE = \bar{E} - \bar{A}E=Eˉ−Aˉ,其中:

    • Eˉ\bar{E}Eˉ:个体学习器的平均误差;
    • Aˉ\bar{A}Aˉ:个体学习器的平均"分歧"(即多样性)。
  • 结论:个体学习器越准确、多样性越高,集成性能越好。

  • 局限:"分歧"缺乏可操作的定义,且该分解仅适用于回归任务的平方损失场景。

3. 成功的集成学习方法分类

  • 序列化方法 (个体学习器按顺序训练,后一个学习器依赖前一个):
    代表:AdaBoost、GradientBoost、LPBoost等。
  • 并行化方法 (个体学习器独立训练):
    代表:Bagging、Random Forest、Random Subspace等。

4. Boosting流程

  • 核心思路:逐步调整数据集权重,让前一个学习器预测错误的样本在后续训练中获得更高权重,最终通过"加权组合"整合所有学习器。

  • 流程:

    1. 从原始数据集生成初始子数据集,训练第一个学习器;
    2. 根据第一个学习器的预测结果,增加错误样本的权重,生成新的子数据集,训练第二个学习器;
    3. 重复上述步骤,得到多个学习器;
    4. 对所有学习器的输出进行加权组合,得到最终结果。

5. Bagging

  • 核心思路:通过可重复采样(Bootstrap) 生成多个数据集,每个数据集训练一个个体学习器,最终通过"投票(分类)"或"平均(回归)"聚合结果。

  • 流程:

    1. 从原始数据集通过Bootstrap采样(有放回随机采样)生成多个子数据集;
    2. 每个子数据集训练一个个体学习器;
    3. 分类任务:选择得票最多的类别;回归任务:取个体学习器的输出平均值。
相关推荐
zz_lzh3 分钟前
arm版AI牛马:armbian(rk3588)设备部署openclaw
arm开发·人工智能·arm
AI医影跨模态组学9 分钟前
如何通过影像组学模型无创预测三阴性乳腺癌中的三级淋巴结构(TLSs),并借助病理组学揭示其与治疗响应、预后及细胞侵袭性表型的机制联系
人工智能·论文·医学·医学影像·影像组学·医学科研
Awesome Baron38 分钟前
skill、tool calling、MCP区别
开发语言·人工智能·python
十铭忘1 小时前
FLUX.1架构的理解5——Transformer之前的预处理
人工智能
weixin_446260851 小时前
城市智能化的底层基石:基于腾讯地图服务生态的移动定位与导航架构指引
大数据·人工智能·架构
Smilezyl1 小时前
一个独立开发者,靠一份 markdown 驱动 Claude Code, 用 20 天跑通 9 个包的 monorepo 工程
前端·人工智能·github
fundroid1 小时前
AI Coding 知识库最佳实践:三层结构重建可维护工程
人工智能·skill·ai 编程·ai coding·skill.md·agent.md
测试员周周1 小时前
【AI测试系统】第4篇:告别硬编码!基于 Markdown + Python 的 Skill 引擎设计:让 AI 测试系统拥有无限扩展的“灵魂”
人工智能·python·测试
Cosolar1 小时前
封神级 TTS!VoxCPM2 凭连续表征,玩转多语言合成 + 创意音色 + 无损声纹克隆
人工智能·llm·github