【机器学习】集成学习

news2024/10/6 1:36:45

1.什么是集成学习

        集成学习的基本思想是结合多个学习器组合成一个性能更好的学习器。这类方法会训练多个弱学习器(基学习器)并将它们输出的结果以某种策略结合起来组成一个强学习器。

2.集成学习的几种方法

        根据个体学习器的生成方式,集成学习方法大致可以分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表是Boosting,后者的代表是Bagging和随机森林。

         集成学习的方式有Bagging、Boosting、Stacking等,每个方式分别有很多不同的实现。

2-1 Bagging

       (1)Bagging基本介绍: Bagging的思想是基于并行策略的方式进行的。基学习器之间不存在依赖关系,可以同时训练生成。

       (2) Bagging方法的训练步骤:

        step 1:采用自助采样法对训练集随机采样,重复进行T次;

        step 2:基于每个采样训练一个基学习器,并得到T个基学习器;

        step 3:预测时,使用T个基学习器进行预测,集体进行投票表决;

        (3)Bagging的注意事项:使用Bagging框架时采用的基分类器最好采用对样本数据比较敏感的学习器,保持一定的不稳定性。

        (4)Bagging的优点:同时集成后分类器方差比基分类器的要小。

        (5)Bagging的特点:Bagging在训练时训练每个基学习器时只使用一部分样本并且偏好不稳定(对样本分布敏感)的学习器作为基学习器;

        (5)Bagging的经典代表:随机森林

        随机森林的思想是使用随机的方式建立一个森林,森林里有很多决策树组成,随机森林的决策树是没有关联的,在一个新的样本进入决策树之后,就让森林中的每一颗决策树分别进行判断。如果是分类问题,那就采取投票的思想,查看被投票最多的选项作为最终的分类结果;如果是回归问题,那就将均值作为结果。

2-2 Boosting

        (1)Boosting基本介绍:   Boosting采用的是迭代式学习的方式进行学习,采用的是串联的思想。让基学习器之间按照顺序的方式进行。

        (2)Boosting基本思想:  Boosting的分类器之间存在依赖关系,基学习器之间存在依赖关系,新的学习器需要根据上一个学习器生成。

       (3) Boosting方法的训练步骤:

        具体的实现方法是:首先给每一个训练样例赋予相同的权重,然后训练第一个基本分类器并用它来对训练集进行测试,对于那些分类错误的测试样例提高其权重(实际算法中是降低分类正确的样例的权重),然后用调整后的带权训练集训练第二个基本分类器,然后重复这个过程直到最后得到一个足够好的学习器。

        step 1: 先从初始训练集训练一个基学习器;初始训练集中各个样本的权重是相同的

        step 2:根据上一个基学习器的表现,调整样本权重,使分类错误样本得到更高的权重。

        step 3:基于调整后的样本分布,训练下一个基学习器;

        step 4:测试时,对各基学习器加权得到最终结果;

        (4)Boosting的特点:

        (1)与Bagging的训练样本不同,boosting算法在每次学习都会使用全部的训练样本。

        (2)由于boosting 会将注意力集中在分类错误的样本上,因此boosting会对训练数据的噪声非常敏感,如果训练数据中包含了噪音数据,那基学习器都集中在噪音数据上做训练,会影响整个模型的拟合效果。

       (5)Boosting的经典代表:

        Adaboost:更改训练样本权重。

        GBDT:损失函数一阶泰勒展开。

        XGBoost:损失函数二阶泰勒展开。

2-3 Stacking

         (1)Stacking基本介绍: 该方法通常考虑的是异质弱学习器,并行地学习它们,并通过训练一个「元模型」将它们组合起来,根据不同弱模型的预测结果输出一个最终的预测结果。

        (2)Stacking基本思想:通过训练学习器来结合个体学习器的方法。个体学习器被称为一级学习器,结合器被称为二级学习器,或者元学习器。Stacking是一种通用框架,可以看成是多种集成方法的泛化,它也可以看成是一种通过学习进行结合的特殊结合方法。

        (3)Stacking基本步骤:        

        step 1:首先使用原始的训练数据集来训练一级学习器。

        step 2:使用一级学习器的输出作为输入特征,并使用对应原始标记作为新标记,组成一个新数据集来训练二级学习器。一级学习器经常使用不同的学习算法,因此Stacking集成通常是异质的。

        (4)Stacking的特点:

        类似于bagging的升级版,bagging是多个模型结果的投票或者平均,stacking更复杂一些,是对多个小模型结果再建模,相当于两层模型。

 3.Boosting的经典代表

​​​​​​​        Adaboost:【机器学习】Adaboost_DonngZH的博客-CSDN博客

        GBDT:【机器学习】GBDT_DonngZH的博客-CSDN博客

        XGBoost:【机器学习】XGBoost_DonngZH的博客-CSDN博客

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

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

相关文章

手把手教你用React Hook和TypeScript从零实现虚拟滚动列表组件

前言 k8s 全称 kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,集应用的部署和运维,负载均衡,服务发现和扩容,版本回滚于一身,越来越多的公司正在拥…

linux集群技术(二)--keepalived(高可用集群)(二)

案例1--keepalived案例2--keepalived Lvs集群1.案例1--keepalived 1.1 环境 初识keepalived,实现web服务器的高可用集群。 Server1: 192.168.26.144 Server2: 192.168.26.169 VIP: 192.168.26.190 1.2 server1 创建etc下的…

02-04 周六 图解机器学习 SVM 支持向量机分类学习

02-04 周六 图解机器学习 SVM 支持向量机分类学习时间版本修改人描述2023年2月4日11:15:16V0.1宋全恒新建文档 环境搭建 首先搭建jupyter环境,方便可视化 (base) rootnode33-a100:~# docker run --name sqh-learn -d -p 10088:8888 -it 10.101.12.128/framework/ju…

Qt-QProcess-启动子进程-控制台进程隐藏-获取子进程标准输出和返回码

文章目录1.隐藏控制台程序1.1.控制台程序生成即隐藏1.2.调用程序隐藏控制台2.QProcess2.1.基础用法-start和startDetached2.2.获取子进程的标准输出3.代码范例3.1.等待进程执行完毕,获取所有的输出3.2.子进程返回信号3.3.进程是否启动3.4.执行命令行3.5.与子进程交互…

GIT客户端安装

步骤1:运行“Git-2.13.1-64-bit.exe”,并点击“运行”按钮(默认)步骤2:许可信息页面,点击“Next”(默认)步骤3:选择安装路径(默认)步骤4&#xff…

记一次 .NET 某医保平台 CPU 爆高分析

一:背景 1. 讲故事 一直在追这个系列的朋友应该能感受到,我给这个行业中无数的陌生人分析过各种dump,终于在上周有位老同学找到我,还是个大妹子,必须有求必应 😁😁😁。 妹子公司的…

IDEA高效插件和设置

安装好Intellij idea之后,进行如下的初始化操作,工作效率提升十倍。 一. 安装插件 1. Codota 代码智能提示插件 只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。 原因是它学习了我的项目代码&…

力扣-从不订购的客户

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:183. 从不订购的客户二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果总结前言…

2月编程语言排行榜谁还没有看?

近日,TIOBE公布了2023年2月编程语言排行榜,本月各个语言表现如何?谁又摘得桂冠?一起来看看吧! TIOBE 2月Top15编程语言: 详细榜单查看TIOBE官网 https://www.tiobe.com/tiobe-index/ 关注IT行业的小伙伴们…

Qt音视频开发15-动态切换解码内核的设计

一、前言 动态切换解码内核这个需求也是源自客户的真实需求,既然是动态切换,那肯定是运行期间切换,而不是通过改变标志位重新编译程序来切换,最开始做的就是这种方式,这样就是实现起来简单,但是用起来不够…

OpenGL ES基础简介

简介 视频的渲染源是 YUV 或者 RGBA 格式的数据,这种数据是描述画面最基础的格式,其中 YUV 常用在视频的原始格式中,RGBA 常用在一些图像的原始格式上。 目前各个平台最终渲染到屏幕上的都是 RGBA 格式的,因为硬件对屏幕上的设计…

【可视化实战】Python 绘制出来的数据大屏真的太惊艳了

今天我们在进行一个Python数据可视化的实战练习,用到的模块叫做Panel,我们通过调用此模块来绘制动态可交互的图表以及数据大屏的制作。 而本地需要用到的数据集,可在kaggle上面获取 https://www.kaggle.com/datasets/rtatman/188-million-us…

SpringBoot之DEBUG远程调试黑科技?

所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地 的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道 远程服务端的此时的内部状态。 简单的…

计算机408考研先导课---C语言难点

以下为小编在重温C语言时,容易犯错的一些点,希望列出来对大家有一定帮助! 一、整型变量数的范围 类型说明符长度(字节)数的范围int4/2(有些为4字节,有些为2字节)-32768~32767short2…

ArcMap出图小技巧:主图设计、图例、比例尺、指北针、标题

ArcMap一个重要的功能是出图!!!!! 因为图片对于一些文字描述来说更为直观,所以掌握一些出图技巧也是极为重要的,不仅能让我们在数据处理过程快速得到我们想要的图层,也可以让图层看起…

Teradata退了? 无所谓,GBASE会出手

近期,就在2月15日,国内IT界有搞出个大瓜,Teradata以对中国当前及未来商业环境的不确定性,慎重考虑后决定退出中国运营,后续将进入中国公司关闭程序。Teradata是一家有着40多年历史的数据仓库企业,被业界专业…

动态规划从入门到精通-蓝桥杯

一、了解动态规划1.简单来说动态规划是一种状态转移与递推2.例题引入——最少硬币问题有多个不同面值的硬币(任意面值); 数量不限; 输入金额S,输出最少硬币组合。 (回顾用贪心求解硬币问题。)贪心法硬币面值1、2、5。支…

2023年中职网络安全竞赛跨站脚本渗透解析-2(超详细)

跨站脚本渗透 任务环境说明:需求环境可私信博主! 服务器场景:Server2126(关闭链接)服务器场景操作系统:未知访问服务器网站目录1,根据页面信息完成条件,将获取到弹框信息作为flag提交;访问服务器网站目录2,根据页面信息完成条件,将获取到弹框信息作为flag提交;访问…

CenterMask paper笔记

CenterMask是一个anchor free的实例分割模型, 来自paper: CenterMask: Real-Time Anchor-Free Instance Segmentation 提起anchor free, 会想到FCOS模型,是用来目标检测的, 那么这里就用到了FCOS, 不过换了backbone, 在FCOS检测出目标框后&…

插装式比例插装阀比例节流阀比例顺序阀放大器

都是直动式,不需要最小先导压力以及先导流量。它们的动作执行都是基于平衡力的设计理念。(电磁力能按比例地反作用于液压力)所有的比例螺线管都是按照5000psi(350bar)的标准设计,所以这些阀的所有口都可以承…