集成学习:Bagging Boosting&Stacking (一)

简介: 集成学习:Bagging Boosting&Stacking (一)

1.简介


在我看来集成学习很像是每年的艺考,每一轮考试面试,需要面对不同的专业的老师,这些老师,从不同专业(形体,声乐,舞蹈)等角度对学生进行打分,如果满分是100,还要按照不同比例(形态30%,声乐30%,舞蹈40%)结合给出学生的综合得分。根据这个得分来作为录取学生的标准。


机器学习中的集成建模基于相同的原理,我们将多个模型的预测结合起来,生成最终的模型,从而提供更好的整体性能。集成建模有助于推广基于训练数据的学习,从而能够对未知数据进行准确预测。

建模是机器学习过程中最重要的一步。集成学习背后的主要动机是正确地组合弱模型,以获得更准确、更稳健的模型,并进行偏差-方差权衡。例如,随机森林算法是决策树的集成,由于它结合了多个决策树模型,所以它的性能总是优于单个决策树模型。

根据我们如何组合基本模型,集成学习可以分为三种不同类型:


Bagging

Boosting

Stacking


2.Bagging


回归任务


Bagging模型如下,Boostrap Sample是抽样的方法,最后预测的结合,可以用不同的聚合算法,如mean。

a0058faba35246829604f738d3fe98ad.png

分类任务

fdd2686d0c5b481a9c78dc72f56ef3d8.png

在bagging中,我们对原始数据集采用抽样的方法来建立独立的估计量,并对所有预测进行平均或投票。

由于多个模型预测的平均值一起形成最终预测,bagging减少了方差,有助于避免过度拟合。虽然它通常用于决策树方法,但它可以用于任何类型的方法。

Bagging是模型平均法的一个特例,在回归问题中,我们取输出的平均值,在分类中,我们取多数票,就是所有模型预测这个类别的数量占多数,就把这个数据预测为这个类。

如果我们有过拟合(高方差)的基础模型,bagging会更有帮助

最流行的套袋估计器是“bagging树”,也称为“随机森林”


2.1 Bootstrapping


Bootstrapping方法的实现很简单,假设抽取的样本大小为n:


在原样本中有放回的抽样,抽取n次。每抽一次形成一个新的样本,重复操作,形成很多新样本,通过这些样本就可以计算出样本的一个分布。新样本的数量通常是1000-10000。如果计算成本很小,或者对精度要求比较高,就增加新样本的数量。


优点:简单易于操作。

缺点:bootstrapping的运用基于很多统计学假设,因此假设的成立与否会影响采样的准确性


3.Boosting


在boosting的情况下,机器学习模型被一个接一个地使用,第一层模型的预测被用作下一层模型的输入。最后一层模型将使用之前所有层的预测来获得最终预测。

因此,boosting使每个后续模型都能够通过克服或减少前一个模型的错误来提高前一个模型的性能。

与bagging不同的是,在提高基础的情况下,学习者按照加权版本的数据顺序进行训练。如果我们有偏见的基本模型,那么推进会更有帮助。

Boosting可以用来解决回归和分类问题


6f6e980080c44b5bb0a043d595fa790a.png


不同类型的Boosting算法:

  • 梯度增压机(GBM)
  • 极端梯度增压机(XGBM)
  • LightGBM
  • CatBoost


4.Stacking


模型Stacking(叠加)是一种组合模型以减少其偏差的方法。每个单独模型的预测叠加在一起,并作为最终估计器的输入来计算预测。通过交叉验证对最终估计器进行训练。


注意,在堆叠的情况下,我们使用异构弱学习者(不同的学习算法),但在bagging和boosting的情况下,我们主要使用同质弱学习者(同一学习算法)。


stacking是一种分层模型集成框架。以两层为例,第一层由多个基学习器组成,其输入为原始训练集,第二层的模型则是以第一层基学习器的输出作为特征加入新模型进行再训练(通常是为了防止过拟合会采用简单的模型),从而得到完整的stacking模型


这里举例:第一层模型分别用XGB,GBDT,第二层用LR线性回归,我们的数据集有1250个,现在分层1000训练集和250测试集,我们用k折法对训练集进行划分,划分成5份。

6498fed88b174a75a374079ac61be776.png

蓝色的数据集,被拿去训练模型了,黄色的数据集,拿去验证数据集,生成它的预测值。红色的测试集拿去模型去预测


何时使用集成学习?


既然集成学习能带来更好的准确性、高一致性,也有助于避免偏差-方差权衡,那么我们不应该在任何地方都使用它吗?


简而言之,这取决于手头的问题。如果我们拥有可用训练数据的模型表现不佳,并且显示出过度拟合/不拟合的迹象,并且额外的计算能力不是问题,那么进行集成学习是最佳选择。然而,在使用简单方法之前,不应该跳过改进输入数据和尝试不同超参数的第一步。

相关文章
|
3天前
|
测试技术
软件质量保护与测试(第2版)学习总结第十三章 集成测试
本文是《软件质量保护与测试》(第2版)第十三章的学习总结,介绍了集成测试的概念、主要任务、测试层次与原则,以及集成测试的不同策略,包括非渐增式集成和渐增式集成(自顶向下和自底向上),并通过图示详细解释了集成测试的过程。
16 1
软件质量保护与测试(第2版)学习总结第十三章 集成测试
|
2天前
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习
|
2月前
|
机器学习/深度学习 运维 算法
【阿里天池-医学影像报告异常检测】3 机器学习模型训练及集成学习Baseline开源
本文介绍了一个基于XGBoost、LightGBM和逻辑回归的集成学习模型,用于医学影像报告异常检测任务,并公开了达到0.83+准确率的基线代码。
47 9
|
2月前
|
人工智能
LLama+Mistral+…+Yi=? 免训练异构大模型集成学习框架DeePEn来了
【8月更文挑战第6天】DeePEn是一种免训练异构大模型集成学习框架,旨在通过融合多个不同架构和参数的大模型输出概率分布,提升整体性能。它首先将各模型输出映射至统一概率空间,然后进行聚合,并最终反转回单一模型空间以生成输出。实验证明,在知识问答和推理任务上,DeePEn相比单一大模型如LLaMA和Mistral有显著提升,但其效果受模型质量和数量影响,并且计算成本较高。[论文: https://arxiv.org/abs/2404.12715]
38 1
|
3月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
203 6
|
3月前
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
236 4
|
3月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
196 1
|
4月前
|
消息中间件 Java Kafka
springboot集成kafka
springboot集成kafka
132 2
|
4月前
|
监控 前端开发 Java
五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
|
3月前
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka Streams的集成
Spring Boot与Apache Kafka Streams的集成

热门文章

最新文章

相关实验场景

更多