【机器学习】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
相关推荐
zch不会敲代码2 小时前
机器学习之线性回归简单案例(代码逐句解释)
人工智能·机器学习·线性回归
想搞艺术的程序员2 小时前
AI 编程 - 提示词技巧
人工智能·ai编程
UR的出不克2 小时前
基于PyTorch的MNIST手写数字识别系统 - 从零到实战
人工智能·python·数字识别
大江东去浪淘尽千古风流人物2 小时前
【Project Aria】Meta新一代的AR眼镜及其数据集
人工智能·嵌入式硬件·算法·性能优化·ar·dsp开发
Java后端的Ai之路2 小时前
【AI应用开发工程师】-分享Java 转 AI正确思路
java·开发语言·人工智能·java转行·程序员转型
Σίσυφος19002 小时前
视觉矩阵之 正交矩阵
人工智能·算法·矩阵
java1234_小锋2 小时前
【专辑】AI大模型应用开发入门-拥抱Hugging Face与Transformers生态 - 基于BERT文本分类模型微调
人工智能·深度学习·bert
网络安全研发随想2 小时前
主流大语言模型(LLM)的后训练技术
人工智能·机器学习·语言模型
人工智能AI技术2 小时前
【Agent从入门到实践】16 接口与网络:API调用、HTTP请求,Agent与外部交互的基础
人工智能·python