【机器学习】06_集成学习

一、 集成学习基础概论

集成学习(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ˉ 越大),则集成效果越好
  1. 增强多样性的方法
  • 数据样本扰动: 如采样法(Bagging/AdaBoost)

  • 输入属性扰动: 如随机子空间,随机选择特征子集进行训练

  • 输出表示扰动: 如翻转法,随机改变部分样本的标签

  • 算法参数扰动: 改变神经网络的初始权重等

总结:如何选择集成策略?

方法 核心目标 适用场景 关键特点
Boosting 降低偏差 34 针对欠拟合,提高模型精度 串行执行,基学习器权重自适应 35
Bagging/RF 降低方差 36 针对过拟合,提高稳定性 并行执行,双重随机性引入 37
Stacking 综合多种优势 竞赛或处理极复杂任务 结构化组合,元模型自动加权 38
相关推荐
@小匠1 小时前
Read Frog:一款开源的 AI 驱动浏览器语言学习扩展
人工智能·学习
山间小僧2 小时前
「AI学习笔记」RNN
机器学习·aigc·ai编程
网教盟人才服务平台4 小时前
“方班预备班盾立方人才培养计划”正式启动!
大数据·人工智能
芯智工坊4 小时前
第15章 Mosquitto生产环境部署实践
人工智能·mqtt·开源
菜菜艾4 小时前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
TDengine (老段)4 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
小真zzz4 小时前
搜极星:第三方多平台中立GEO洞察专家全面解析
人工智能·搜索引擎·seo·geo·中立·第三方平台
GreenTea5 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
火山引擎开发者社区5 小时前
秒级创建实例,火山引擎 Milvus Serverless 让 AI Agent 开发更快更省
人工智能