集成学习详细介绍

news2024/9/20 10:37:13

以下内容整理于:

  1. 斯图尔特.罗素, 人工智能.现代方法 第四版(张博雅等译)
  2. 机器学习_温州大学_中国大学MOOC(慕课)
  3. XGBoost原理介绍------个人理解版_xgboost原理介绍 个人理解-CSDN博客

集成学习(ensemble):选择一个由一系列假设h1, h2, …, hn构成的集合,通过投票、平均或其他形式的机器学习方法将他们的预测进行组合。我们称单独的假设为基模型(base model),其组合后的模型称为集成模型(ensemble model)

集成学习主要有三种集成方法,Bagging(自主聚合法),boosting(提升法) 和stacking(堆叠法)。

在统计学中,有放回的重复采样方法被称为Bootstrap (自助法),Bagging是bootstrap aggregating的缩写。

目录

1. Bagging(自主聚合法)

随机森林模型(Random forest):

2. Boosting(提升法)

AdaBoost(adaptive boosting,自适应提升法):

XGBoost(eXtreme Gradient Boosting,极端梯度提升)算法:

GBDT(Gradient Boosting Decision Tree)算法:

LightGBM算法:

3. Stacking(堆叠法):


1. Bagging(自主聚合法)

从训练集中进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果:

Bagging可应用于任何类型的模型,但最常应用于决策树模型。

Bagging的优点:可以并行计算,非常高效。

随机森林模型(Random forest):

随机森林模型是Bagging在决策树模型上应用的一种形式。

主要思想:在分割点的属性选择上进行随机化,具体操作就是,假如我们总共有n个属性,在构建决策树为每个节点选择split属性时,在全部n个属性中随机挑选n1/2(即根号n)个属性作为属性子集(对于分类问题),或选择n/3个属性作为属性子集(对于回归问题),让算法只在这个子集中选择split属性。如此操作,使得随机森林模型实现了众多决策树基模型之间的低关联性或没有关联,而基础的Bagging做不到这一点。


2. Boosting(提升法)

序贯算法,按次序一一训练(实现上可以做到并行),生成一系列基模型。在序贯训练过程中,基模型使用的训练集每次都按照某种策略进行一定的调整。

AdaBoost(adaptive boosting,自适应提升法):

核心思想:给每个样例赋予一个权重Wj,该权重代表样例在训练过程中应计数的次数,样例的权重越大代表样例在模型训练的过程中发挥的作用越大。自适应提升法从训练集所有样例具有相等的权重wj开始,根据该训练集,我们训练第1个基模型h1,h1会对一些训练样例进行正确分类,而对另一些训练样例错误分类。我们希望第二个基模型能在被分类错误的样例中表现得更好,因此我们将增加在第一个基模型中被错误分类的样例的权重,同时减小在第一个基模型中被正确分类的样例的权重,然后开始训练第2个基模型………………按照次序,训练一系列的基模型。最后将所有基模型按照不同的权重综合成一个集成模型,预测效果比较好的树占有的权重大,预测效果差的基模型占了权重小。

后一个基模型的训练永远是在前一个基模型的基础上完成的!


XGBoost(eXtreme Gradient Boosting,极端梯度提升)算法:

XGBoost算法又快又准确,颇受欢迎!

XGBoost算法是一种加法模型,往模型中不断添加新的树。XGBoost算法将模型上一次预测(由t-1棵树组合而成的模型)产生的误差作为参考建立下一棵树(第t棵树)

加法策略:

初始化(模型中没有树时,其预测结果为0):

往模型中加入第一棵树:

往模型中加入第二棵树:这里的f2即为由上一次预测产生的误差作为参考建立的第2棵树,f2(xi)为第2棵树的预测结果。

…………

往模型中加入第t棵树:

其中表示第棵树,表示组合了棵树的模型对样本的预测结果。

注:一棵树等同于基模型


GBDT(Gradient Boosting Decision Tree)算法:

是一种迭代的决策树算法,该算法由多棵决策树组成,GBDT和XGBoost算法很相似,都是累加所有树的结果作为最终结果,两者的区别在于两者对目标函数(即代价函数)的求解过程不同,GBDT算法在求解过程中用到了残差(residual)思想,XGBoost算法在求解过程中用到了n阶泰勒展开的思想。其他方面,两者基本无区别。

GBDT算法的代价函数的部分求解过程:

泰勒展开式:

XGBoost算法的代价函数的部分求解过程:

XGBoost算法代价函数详细求解过程请参考:XGBoost原理介绍------个人理解版_xgboost原理介绍 个人理解-CSDN博客


LightGBM算法:

LightGBM算法是以XGBoost算法为基础改进的算法,相较于XGBoost算法,LightGBM算法训练速度更快,内存占用更少。XGBoost算法和LightGBM算法都是目前使用较多的算法。

LightGBM与XGBoost相比,主要有以下几个改进:
• 基于梯度的单边采样算法(Gradient-based One-Side Sampling, GOSS);
• 互斥特征捆绑算法(Exclusive Feature Bundling, EFB);
• 直方图算法(Histogram);
• 基于最大深度的 Leaf-wise 的垂直生长算法;
LightGBM = XGBoost + GOSS + EFB+ Histogram


3. Stacking(堆叠法):

在相同训练集中使用不同基模型类训练多个基模型,然后将这些基模型组合成集成模型。

将训练好的所有基模型对训练集进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,然后使用(来自基模型预测的)新的训练集和预先留出的验证数据对集成模型进行训练。

这种方法适合于团队分工,团队内的每个人独立工作,使用共同的训练集训练完善自己负责的基模型,最后把每个人的基模型汇聚到一起,建立最终的堆叠集成模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2143831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLM大模型基础知识学习总结,零基础入门到精通 非常详细收藏我这一篇就够了

在这个已经被大模型包围的时代,不了解一点大模型的基础知识和相关概念,可能出去聊天都接不上话。刚好近期我也一直在用ChatGPT和GitHub Copilot,也刚好对这些基础知识很感兴趣,于是看了一些科普类视频和报告,做了如下的…

从数据到决策,无限住宅代理还可以这么用

在企业发展中,一个良好的决策可以起到推波助澜的作用,让企业飞速发展。在决策的背后离不开数据的支撑,数据驱动决策已成为企业成功的关键因素。然而,随着数据量的激增和竞争的加剧,企业如何有效地收集、分析和应用数据…

Python 课程14-TensorFlow

前言 TensorFlow 是由 Google 开发的一个开源深度学习框架,广泛应用于机器学习和人工智能领域。它具有强大的计算能力,能够运行在 CPU、GPU 甚至 TPU 上,适用于从小型模型到大规模生产系统的各种应用场景。通过 TensorFlow,你可以…

【云原生监控】Prometheus之Alertmanager报警

Prometheus之Alertmanager报警 文章目录 Prometheus之Alertmanager报警概述资源列表基础环境一、部署Prometheus服务1.1、解压1.2、配置systemctl启动1.3、监控端口 二、部署Node-Exporter2.1、解压2.2、配置systemctl启动2.3、监听端口 三、配置Prometheus收集Exporter采集的数…

旧衣回收小程序:开启旧衣回收新体验

随着社会的大众对环保的关注度越来越高,旧衣物回收市场迎来了快速发展时期。在数字化发展当下,旧衣回收行业也迎来了新的模式----互联网旧衣回收小程序,旨在为大众提供更加便捷、简单、透明的旧衣物回收方式,通过手机直接下单&…

关于1688跨境官方接口的接入||跨境卖家必知的1688跨境要点

1688跨境是什么? 1688是国内领先的货源平台,每年服务超过6500万B类买家,其中很大一部分是跨境商家。这些跨境商家采购中国高性价比的商品到海外销售。 为什么要入驻跨境专供? 据统计,2028年跨境市场规模将实现翻三番&…

RabbitMQ(高阶使用)延时任务

文章内容是学习过程中的知识总结,如有纰漏,欢迎指正 文章目录 1. 什么是延时任务? 1.1 和定时任务区别 2. 延时队列使用场景 3. 常见方案 3.1 数据库轮询 优点 缺点 3.2 JDK的延迟队列 优点 缺点 3.3 netty时间轮算法 优点 缺点 3.4 使用消息…

HTML5好看的水果蔬菜在线商城网站源码系列模板2

文章目录 1.设计来源1.1 主界面1.2 商品列表界面1.3 商品详情界面1.4 其他界面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/142059220 HTML5好看的水果蔬菜在线商城…

MATLAB系列06:复数数据、字符数据和附加画图类

MATLAB系列06:复数数据、字符数据和附加画图类 6. 复数数据、字符数据和附加画图类6.1 复数数据6.1.1 复变量( complex variables)6.1.2 带有关系运算符的复数的应用6.1.3 复函数( complex function)6.1.4 复数数据的作…

通信工程学习:什么是ONU光网络单元

ONU:光网络单元 ONU(Optical Network Unit,光网络单元)是光纤接入网中的用户侧设备,它位于光分配网络(ODN)与用户设备之间,是光纤通信系统的关键组成部分。以下是关于ONU光网络单元的…

Web后端开发技术:RESTful 架构详解

RESTful 是一种基于 REST(表述性状态转移,Representational State Transfer)架构风格的 API 设计方式,通常用于构建分布式系统,特别是在 Web 应用开发中广泛应用。REST 是一种轻量级的架构模式,利用标准的 …

构建响应式API:FastAPI Webhooks如何改变你的应用程序

FastAPI,作为一个现代、快速(高性能)的Web框架,为Python开发者提供了构建API的卓越工具。特别是,它的app.webhooks.post装饰器为处理实时Webhooks提供了一种简洁而强大的方法。在本文中,我们将探讨如何使用…

Git使用教程-将idea本地文件配置到gitte上的保姆级别步骤

🤹‍♀️潜意识起点:个人主页 🎙座右铭:得之坦然,失之淡然。 💎擅长领域:前端 是的,我需要您的: 🧡点赞❤️关注💙收藏💛 是我持…

剖析Spark Shuffle原理(图文详解)

Spark Shuffle 1.逻辑层面 从逻辑层面来看,Shuffle 是指数据从一个节点重新分布到其他节点的过程,主要发生在需要重新组织数据以完成某些操作时。 RDD血统 Shuffle 触发条件: reduceByKey、groupByKey、join 等操作需要对数据进行分组…

制作OpenLinkSaas发行版

发行版配置 作为软件研发效能一站式解决方案,OpenLinkSaas提供了众多的功能。再不同的场景中,所需要的软件功能是有差异的。OpenLinkSaas提供了发行版配置功能,以便在不同场景下组合所有的功能。 修改代码下面的src-tauri/src/vendor_cfg.rs…

软考高级:嵌入式-嵌入式实时操作系统调度算法 AI 解读

讲解 嵌入式实时操作系统中的调度算法主要用于管理任务的执行顺序,以确保任务能够在规定时间内完成。针对你提到的几种调度算法,我会逐一进行通俗解释。 生活化例子 假设你在家里举办一个家庭聚会,家里人轮流使用一个游戏机玩游戏。你作为…

springboot+redis+缓存

整合 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 连接redis&#xff0c;配置yml文件 主机 端口号 数据库是哪一个 密码 配置类 p…

嵌入式最常用的接口之一:SDIO 介绍

SDIO简介 SDIO(Secure Digital Input Output)是一种基于SD卡技术的扩展接口标准,允许外部设备通过标准的SD卡槽连接并通信。与传统的SD卡仅限于存储数据不同,SDIO设备通过该接口进行多种功能扩展,如网络连接、GPS、蓝牙、摄像头等。这使得SDIO成为一种广泛应用于移动设备…

html实现好看的多种风格手风琴折叠菜单效果合集(附源码)

文章目录 1.设计来源1.1 风格1 -图文结合手风琴1.2 风格2 - 纯图片手风琴1.3 风格3 - 导航手风琴1.4 风格4 - 双图手风琴1.5 风格5 - 综合手风琴1.6 风格6 - 简描手风琴1.7 风格7 - 功能手风琴1.8 风格8 - 全屏手风琴1.9 风格9 - 全屏灵活手风琴 2.效果和源码2.1 动态效果2.2 源…

等保测评中的个人信息保护:重点与策略

在信息安全等级保护&#xff08;等保&#xff09;测评过程中&#xff0c;个人信息保护成为企业必须重视的关键环节。随着《个人信息保护法》等法规的出台&#xff0c;个人信息保护不仅是企业通过等保测评的重要指标&#xff0c;更是企业社会责任和用户信任的基础。将探讨等保测…