集成学习(Bagging,Boosting) 简介

简介: 集成学习算法的主要思想是利用弱分类器组合成为一个强分类器。通过一些既定的模型规则,如设置不同的弱分类器有不同的权重,同时在模型训练的过程中,逐步迭代优化,使组合成的强分类器在一个既定的评价指标下更优。

引言

一个人的力量是渺小的,但是一群人聚集到一起,就有了群体智慧。如在我们的城市的社会分工中,有的人是工程师,政客,有的人是建筑工人,有的人是教师,也有罪犯等等,每个人对这座城市都贡献着价值,整座城市也就井然有序,盎然向上,由于每个人对社会的作用不同,甚至有的为负贡献如罪犯等,如果有一个决策机关如政府的存在,就可以使数以百万人口的城市运作起来,而不是一盘散沙的存在。这种集聚群体智慧的思想,衍生出了一些优秀的算法,如bagging(减小方差),boosting(减小偏差)算法。

集成学习思想

集成学习算法的主要思想是利用弱分类器组合成为一个强分类器。通过一些既定的模型规则,如设置不同的弱分类器有不同的权重,同时在模型训练的过程中,逐步迭代优化,使组合成的强分类器在一个既定的评价指标下更优。

集成算法分类

序列集成方法(boosting)
序列集成方法(boosting),序列方法的原理是通过权重分配机制,比如AdaBoost通过修改数据集不同样本的权重与弱分类器对最终强分类器贡献的权重,做到弱分类器加权多数表决的效果,即增大错误率小的分类器的权重,减小错误率较大的分类器的权重的方法进行加权组合。而梯度提升树GBDT通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到新的模型,可以提高整体的预测效果。如下图所示:
boosting.jpg

并行集成方法(bagging)
并行集成方法(bagging),其中参与训练的基础学习器并行生成(例如 Random Forest)。并行方法的原理是利用基础学习器之间的独立性,通过平均或者投票等机制可以显著降低错误率。如下图所示:
bagging.jpg

集成学习算法特点

  • 利用多个分类器,弱分类器可以是同一种集合的算法也可以是不同类型集合的算法,将其聚合起来,以提高准确率。所以在某种意义上,集成学习并不是一个学习算法,而是训练弱分类器的一种上层算法,并将各弱分类器利用既定规则集合起来的一种策略,一种决策思想。
  • 集成学习无论是bagging还是boosting,都既可以做回归任务,也可以应用于分类任务。

    • 针对于分类算法,原理其实很简单,就是每一个树训练出来的结果(叶子),我们选择数量最多的(多数服从少数原理),即可以做到集成的效果。
    • 针对于回归算法,就是每一个树训练出来的结果(叶子),我们把他们的结果加和求平均,就得到一个平均值,那就达到了回归算法的效果。

各种强势集成算法登场

我们最常见的Bagging算法即随机森林RF算法。
我们常见的Boosting算法有AdaBoost,梯度提升树GBDT,Xgboost,以及微软亚洲研究院重磅开源的LightGBM。

相关文章
|
1月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
84 1
|
1月前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
88 0
|
1月前
|
机器学习/深度学习 算法 前端开发
集成学习任务七和八、投票法与bagging学习
集成学习任务七和八、投票法与bagging学习
15 0
|
1月前
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习
|
4月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
287 6
|
4月前
|
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. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
363 4
|
4月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
317 1
|
5月前
|
消息中间件 Java Kafka
springboot集成kafka
springboot集成kafka
168 2
|
5月前
|
监控 前端开发 Java
五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
|
4月前
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka Streams的集成
Spring Boot与Apache Kafka Streams的集成