机器学习——集成学习

📕参考:ysu老师课件+西瓜书 +期末复习笔记


1.集成学习的基本概念

集成学习(ensemble learing)通过构建并结合多个学习器来完成学习任务。

有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。

理解:集成学习是一种机器学习方法,其核心思想是将多个学习器(弱学习器)集成在一起,以达到比单个学习器更好的性能。通过组合多个学习器的预测结果,集成学习可以提高整体的泛化能力和稳定性,从而在复杂的任务中取得更好的性能。        

 集成学习的主要目标是通过组合多个模型,弥补单个模型的局限性,减少过拟合,并提高模型的鲁棒性。

优缺点

集成学习的主要优缺点:

优点:

  1. 提高泛化能力: 集成学习能够减少模型的方差,提高模型的泛化能力。通过组合多个学习器,可以弥补单个学习器的局限性,提高整体性能。

  2. 降低过拟合风险: 通过在不同的子集上训练不同的学习器,集成学习降低了过拟合的风险。这对于处理复杂的数据和噪声较大的情况非常有用。

  3. 提高鲁棒性: 集成学习对数据的变化和噪声具有一定的鲁棒性。由于多个学习器的集成,模型更能应对不同情况下的变化。

  4. 适用于多样的学习器: 集成学习可以利用各种不同类型的学习器,包括决策树、神经网络、支持向量机等。这使得它在不同类型的问题上都有很好的适应性。

  5. 易于并行化: 集成学习的训练过程通常可以并行化,因为每个学习器可以独立地训练。这有助于提高训练效率。

缺点:

  1. 增加计算开销: 集成学习通常需要训练和集成多个学习器,这可能导致较大的计算开销,特别是在大规模数据集和复杂模型的情况下。

  2. 复杂性: 集成学习的模型通常相对复杂,这使得它们不太容易解释。在一些应用场景中,解释性可能是一个重要的考虑因素。

  3. 对参数调整敏感: 集成学习的性能通常对参数的选择和调整比较敏感。需要进行仔细的参数调整以达到最佳性能。

  4. 不适用于所有问题: 集成学习并不总是对所有类型的问题都有效。在一些简单的问题上,单个学习器可能已经足够好,而不需要引入集成学习的复杂性。

  5. 可能受到噪声的影响: 如果训练数据中存在大量噪声,集成学习可能会受到噪声的影响,从而导致模型性能下降。

2.集成学习方法

根据个体学习器的生成方式,目前的集成学习方法大致分为两大类

1.个体学习器间存在强依赖关系、必须串行生成的序列化方法:Boosting(提升法)。

2.个体学习器间不存在强依赖关系、可同时生成的并行化方法:Bagging(装袋法)和“随机森林”(Random Forest)。

1.Boosting(提升法)

Boosting是一族可以将弱学习器提升为强学习器的算法。

算法思路:通过迭代训练一系列弱学习器(通常是决策树或其他简单模型),每一轮都对前一轮的模型进行修正,以提高整体模型的性能。

  1. 训练基学习器:先从初始训练集训练出一个基学习器
  2. 更新样本权重:根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多的关注
  3. 重复迭代:基于调整后的样本训练下一个基学习器,一直重复以上操作,直到基学习器数目达到事先指定的值T
  4. 集成学习:最终将这T个基学习器进行加权结合

 特点:

1.个体学习器之间存在强依赖关系

2.串行生成

3.每次调整训练数据的样本分布

 2.Bagging(装袋法)

这一类方法的核心思想是通过对训练集进行有放回的抽样(Bootstrap抽样),构建多个独立的学习器,然后将它们的预测结果进行平均或投票。著名的算法包括随机森林(Random Forest)。

Bagging(Bootstrap Aggregating)算法的过程包括以下步骤:

  1. Bootstrap抽样: 从原始训练集中有放回地抽取若干个样本,构成一个新的训练子集。这个过程可以重复多次,生成多个不同的子集。

  2. 训练独立的学习器: 对每个生成的子集使用相同的学习算法(可以是决策树、神经网络等),独立地训练一个学习器。由于每个子集都是通过Bootstrap抽样得到的,这些学习器之间具有一定的差异性。

  3. 集成学习: 将所有独立学习器的预测结果进行集成。对于分类问题,可以采用投票的方式,选择获得最多票数的类别作为最终预测结果;对于回归问题,通常采用平均值或加权平均值。

问题:Bagging(Bootstrap Aggregating)算法中的弱学习器必须一样吗?

在Bagging中,弱学习器通常可以是不同的,即它们可以是同一种类型的学习器,也可以是不同种类的学习器。核心思想是通过对训练集进行Bootstrap抽样,得到多个略有不同的训练子集,然后在这些子集上独立地训练弱学习器,最终进行集成。

弱学习器的不同性质可以增加集成模型的多样性,从而提高整体模型的泛化能力。这样的多样性可以通过使用不同的学习算法、不同的参数设置或者在特征选择上的差异来实现。在实际应用中,常常选择同一种学习算法,但在不同的子集上进行训练,以获得差异化的弱学习器。

3.随机森林(Random Forest)

随机森林(Random Forest)是一种基于Bagging思想的集成学习算法,它通过构建多个决策树,并对它们的输出进行平均或投票来提高整体模型的性能。

随机森林算法流程:

  1. Bagging过程: 从原始训练集中使用Bootstrap抽样,生成多个不同的训练子集。(随机抽样)

  2. 构建决策树: 在每个训练子集上独立地训练一个决策树。与传统的决策树不同,随机森林是在每个节点上随机选择一部分特征进行划分的。

  3. 集成决策树: 将所有独立训练的决策树的输出进行平均(回归问题)或投票(分类问题),得到最终的随机森林模型。

优缺点:

随机森林的优点包括:

  • 降低过拟合风险: 通过随机选择特征子集,每个决策树都在不同的特征子空间上进行训练,降低了模型的方差,有助于防止过拟合。

  • 提高泛化性能: 由于集成了多个模型的意见,随机森林通常能够在不同类型的数据集上取得很好的泛化性能。

  • 对于高维数据有效: 随机森林对于高维数据的处理相对较好,因为每个决策树只使用部分特征。

  • 易于并行化: 由于每棵树可以独立构建,随机森林的训练过程容易并行化,适合在大规模数据集上使用。

随机森林的缺点:

  1. 不易解释: 随机森林由多个决策树组成,每个树的决策过程相对独立,导致整个模型的解释性较差。对于一些应用场景,特别是需要理解模型内部逻辑的情况下,随机森林可能不是最佳选择。

  2. 计算开销: 随机森林包含多个决策树,因此在训练和预测时可能需要较大的计算资源。尤其在树的数量很大的情况下,可能会对性能产生一定的影响。

  3. 对于高维稀疏数据效果较差: 随机森林在处理高维稀疏数据(例如文本数据)时,可能不如其他算法表现出色。这是因为在随机选择特征时,可能会错过一些关键的特征。

  4. 样本不平衡: 当数据集存在严重的类别不平衡时,随机森林可能对多数类别的预测性能较好,而对少数类别的预测性能较差。

 3.结合策略

1.平均法

(1)算数平均法

(2)加权平均法

一般个体学习器性能相差较大时用加权平均法,性能相近时用简单平均法。

2.投票法

(1)绝对多数投票法:即若某lable得票过半数,就预测为该lable,否则拒绝预测。

(2)相对多数投票法(少数服从多数):即预测为得票最多的标记。

        若同时有多个标记获最高票,则从中随机选取一个。

(3)加权投票法:和加权平均法一样,每个基学习器的分类票数与权重相乘,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。

3.学习法

代表:Stacking

Stacking算法的主要思想是利用弱学习器的学习结果作为输入,将初始样本的标记当做样例标记,重新训练新的学习器。

在这种情况下,将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年【道路运输企业主要负责人】考试及道路运输企业主要负责人考试题库

题库来源:安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人考试参考答案及道路运输企业主要负责人考试试题解析是安全生产模拟考试一点通题库老师及道路运输企业主要负责人操作证已考过的学员汇总,相对有效帮助道路运输企业主要负责人考试题…

网络异常案例四_IP异常

问题现象 终端设备离线,现场根据设备ip,ping不通。查看路由器。 同一个路由器显示的终端设备(走同一个wifi模块接入),包含不同网段的ip。 现场是基于三层的无线漫游,多个路由器wifi配置了相同的ssid信息&a…

五、图像像素算术操作

算术操作无非就是像数值之间的加减乘除操作 一、创建图像像素算术操作——头文件 在项目的头文件中,右击添加,新建项 创建用于图像像素算术操作的头文件,我这边是operater.h 该头文件声明了一个Operater类(class Operater),该…

海康威视有插件、无插件播放;webrtc直播;西瓜视频播放器;mpegts.js直播;flvjs直播

Notes 视频播放的几种方式 一、Video mp4链接直接播放 二、海康威视3.3插件版直播、云台控制,资源下载地址 index.html引入hk文件中的js文件双击HCWebSDKPlugin.exe安装插件前端参照文件夹hkCamera中的示例代码 三、海康威视3.2无插件版直播,资源下…

Linux---进程间通信 | 管道 | PIPE | MKFIFO | 共享内存 | 消息队列

管道 管道是UNIX中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的数据流称为一个管道。 一个文件,可以被多个进程打开吗?可以,那如果一个进程打开文件,往文件里面写数据,另一个进程打开文…

【服务器】RAID(独立磁盘冗余阵列)

RAID(独立磁盘冗余阵列) 一、RAID的介绍二、RAID的分类#2-1 RAID 02-2 RAID 1#2-3 RAID 32-4 RAID 52-5 RAID 62-6 RAID 10(先做镜像,再做条带化)2-7 RAID 01(先做条带,再做镜像)2-8 RAID比较 三、磁盘阵列…

设备的层次结构 - 驱动程序的复杂层次结构

由于设备对象的水平结构和垂直结构,组成了Windows设备的树形结构图。在Windows中出事的时候会有一个根设备,为了理解简单,我们将PCI总线想象成根总线(根总线其实不是PCI总线,只是为了理解方便)。查到PCI总线…

【云原生】Docker如何构建镜像

目录 前言 一、基于已有的镜像创建 步骤一:先基于现有的镜像创建一个容器,然后进入容器去完成修改 步骤二:将该容器作为一个模板提交创建为一个新的镜像 步骤三:基于新的镜像,docker run创建一个容器,进…

leetcode刷题(剑指offer) 297.二叉树的序列化和反序列化

297.二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现…

C#,雅各布斯塔尔—卢卡斯(Jacobsthal Lucas Number)的算法与源代码

1 雅各布斯塔尔序列 雅各布斯塔尔序列是一个与斐波那契序列类似的加法序列,由递归关系JnJn-12Jn-2定义,初始项J00,J11。序列中的一个数字称为雅可布沙尔数。它们是卢卡斯序列Un(P,Q)的一种特殊类型&#x…

【CSS】文本溢出省略的两种方式

【CSS】文本溢出省略的两种方式 假设有一个卡片组件,组件里的内容有长有短,我们希望在内容很长的时候省略文字,以保证卡片的高度不会过高。 单行文本 要实现在文字超出时不显示超出部分,并用省略号表示还有更多文字&#xff0…

alibabacloud学习笔记05(小滴课堂)

高并发下的微服务存在的问题 高并发下的微服务容错方案 介绍什么是分布式系统的流量防卫兵Sentinel 微服务引入Sentinel和控制台搭建 每个服务都加上这个依赖。 启动方式: 讲解AliababCloud微服务整合Sentinel限流配置实操 我们在order和video模块都加上。 分别启动…