[机器学习]集成学习

基本概念

集成学习:

集成学习是一种机器学习方法,它本身不是一个单独的机器学习算法,而是通过构建并结合多个学习器来完成学习任务。这种方法有时也被称为多分类器系统或基于委员会的学习。

集成学习通常用多个分类器/模型各自独立地学习和作出预测。这些预测最后结合成组合预测,组合预测优于任何一个单独模型的预测。

图片来源:https://zhuanlan.zhihu.com/p/33621750

强学习器与弱学习器:

弱学习器:那些分类准确率只稍微好于随机猜测的分类器(error rate < 0.5),例如决策树、朴素贝叶斯分类器、支持向量机等

强学习器:在机器学习中,具有较高预测能力的学习算法或模型。与弱学习器相比,强学习器的预测准确率更高,能够提供更可靠的预测结果,常见的强学习器包括神经网络、深度学习模型、支持向量机等

集成学习的优点

集成学习的优势主要体现在以下几个方面:

  • 降低偏差:多个模型的预测结果可以互相补充,减少单一模型可能出现的高偏差问题。有助于解决欠拟合问题
  • 降低方差:通过结合多个模型的结果,可以减少过拟合的可能性,从而降低模型的方差。
  • 增强稳定性:集成学习通过将多个弱模型的优势结合起来,可以提高最终预测结果的稳定性

集成学习算法需要关注的问题

如何训练弱学习器?

  1. 按照个体学习器是否相同,可以分为两种:

    同质个体学习器(Homogeneous Ensemble):集成学习中所有个体学习器都是同一类型的模型。这些模型通常具有相同的学习算法,但可能在参数设置、训练数据或训练过程中有所不同。

    • Boosting系列算法:每个学习器的训练都依赖于前一个学习器的结果。Boosting算法通过关注前一个学习器错误分类的样本来提高模型性能。典型的Boosting算法包括AdaBoost、Gradient Boosting和XGBoost等。
    • Bagging系列算法:个体学习器之间可以并行生成。每个学习器都是在原始数据集的一个随机子集上训练得到的。随机森林(Random Forest)是Bagging的一个变种,它使用决策树作为基学习器,并且在分裂节点时引入随机性来增加多样性。

    异质个体学习器(Heterogeneous Ensemble):集成学习中包含不同类型的模型,这些模型可能有不同的学习算法和结构。

    • Stacking:Stacking将多个不同的学习器(可以是同质的也可以是异质的)的输出作为新的特征,输入到一个或多个元学习器(meta-learner)中进行学习。这种方法的关键在于,元学习器能够学习如何最好地组合不同基学习器的预测结果。Stacking可以用于分类和回归问题,并且可以提高模型的泛化能力。
  2. 按照个体学习器之间的依赖关系,可以分为两种

    • 强依赖关系:在Boosting系列算法中,个体学习器之间存在强依赖关系。每个学习器的训练都依赖于前一个学习器的错误,通过调整样本权重或关注特定样本来提高整体性能。

    • 无依赖关系:在Bagging系列算法中,个体学习器之间没有强依赖关系,可以独立并行训练。这种方法的优点是计算效率高,可以很好地扩展到大规模数据集。

如何将个体学习器组合?

  1. 在分类问题中,可以通过多数投票法来决定最终的类别。即每个个体学习器对新样本进行预测,然后选择得票最多的类别作为最终预测结果
  2. 对于回归问题,可以将所有个体学习器的预测结果取平均值作为最终的预测结果。这种方法也可以用于分类问题,通过计算每个类别的预测概率的平均值来确定最终的类别

boosting

个体学习器间存在强依赖关系、必须串行生成的序列化方法

核心思想

关注那些被之前分类器错误分类的样本,并给予这些样本更高的权重,从而使后续的分类器更加关注这些"困难"样本。

  1. 提高分错样本的权值,减小分对样本的权值
    • 在每一轮迭代中,Boosting 算法会训练一个新的弱分类器。
    • 这个分类器会给予那些在前一轮被错误分类的样本更高的权重,那些被正确分类的样本的权重会被降低。这样,后续的分类器就会更加关注那些之前被错误分类的样本。
  2. 加法模型:将弱分类器进行线性组合
    • Boosting 算法最终的强分类器是所有弱分类器的线性组合。
    • 每个弱分类器都有一个与之对应的权重,这个权重通常是基于该分类器在训练集上的性能来确定的。
    • 最终的预测结果是所有弱分类器预测结果的加权和。

代表

AdaBoost(Adaptive Boosting)

AdaBoost 是最早的Boosting算法之一,它通过迭代地训练弱分类器(通常是决策树),并根据每个分类器的错误率来分配权重。

在每一轮中,错误分类的样本权重增加,而正确分类的样本权重减少。

最终的分类器是所有弱分类器的加权多数投票。

GBDT(Gradient Boosting Decision Tree)

GBDT 通过构建决策树来逐步改进模型。

它使用梯度下降法来最小化损失函数,并以负梯度方向作为残差的近似值来训练新的决策树。

GBDT 可以处理回归和分类问题。

XGBoost(eXtreme Gradient Boosting)

XGBoost 是基于GBDT的优化版本,它在速度和性能上都有所提升。

XGBoost 引入了正则化项来控制模型的复杂度,防止过拟合。

它还支持并行处理和处理缺失值,使得训练过程更加高效。

bagging

个体学习器间不存在强依赖关系、可同时生成的并行化方法

核心思想

  1. 从原始样本集中抽取出k个训练集
    Bagging 算法首先从原始样本集中使用自助法(Bootstrapping)抽取k个训练集,每个训练集包含n个样本。
    这个过程是有放回的抽样,意味着同一个样本可能在不同的训练集中被多次抽取,而某些样本可能一次都没有被抽取到。
    共进行k轮抽取,得到k个相互独立的训练集。
  2. k个训练集分别训练,得到k个模型
    每个训练集都被用来训练一个个体学习器,共得到k个模型。
    由于训练集是独立抽取的,这些模型的训练过程可以并行进行,提高了计算效率。
    在随机森林(Random Forest)算法中,除了对样本进行随机抽取外,还会在构建每棵树时随机选择特征子集,进一步增加了模型的多样性。
  3. 将k个模型通过一定方式组合起来
    Bagging 算法的最后步骤是将得到的k个模型组合起来,以得到最终的预测结果。
    对于分类问题,通常采用投票的方式得到分类结果。在多数投票法中,每个模型的预测结果被视作一票,最终选择得票最多的类别作为预测结果。
    对于回归问题,通常计算上述模型的预测结果的均值作为最终结果。这种方法可以平滑个别模型的极端预测,提高预测的稳定性。

代表

随机森林

  • 随机森林由多个决策树组成,每棵决策树都是在原始数据集的一个自助样本(Bootstrap样本)上训练得到的,每棵树的训练数据不同。
  • 在随机森林中,每棵树在分裂节点时不是考虑所有特征,而是随机选择一部分特征,然后从中选择最佳分裂特征。这个随机选择的过程增加了树与树之间的多样性。
  • 对于分类问题,随机森林通过多数投票的方式来确定最终的类别;对于回归问题,则通常取多棵树预测结果的平均值作为最终预测。
相关推荐
·云扬·1 小时前
【Leetcode hot 100】101.对称二叉树
算法·leetcode·职场和发展
代码AI弗森2 小时前
从 IDE 到 CLI:AI 编程代理工具全景与落地指南(附对比矩阵与脚本化示例)
ide·人工智能·矩阵
xchenhao3 小时前
SciKit-Learn 全面分析分类任务 breast_cancer 数据集
python·机器学习·分类·数据集·scikit-learn·svm
007tg5 小时前
从ChatGPT家长控制功能看AI合规与技术应对策略
人工智能·chatgpt·企业数据安全
Memene摸鱼日报5 小时前
「Memene 摸鱼日报 2025.9.11」腾讯推出命令行编程工具 CodeBuddy Code, ChatGPT 开发者模式迎来 MCP 全面支持
人工智能·chatgpt·agi
linjoe995 小时前
【Deep Learning】Ubuntu配置深度学习环境
人工智能·深度学习·ubuntu
Greedy Alg6 小时前
LeetCode 142. 环形链表 II
算法
睡不醒的kun6 小时前
leetcode算法刷题的第三十二天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
先做个垃圾出来………7 小时前
残差连接的概念与作用
人工智能·算法·机器学习·语言模型·自然语言处理
AI小书房7 小时前
【人工智能通识专栏】第十三讲:图像处理
人工智能