机器学习——集成学习

📕参考: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算法的主要思想是利用弱学习器的学习结果作为输入,将初始样本的标记当做样例标记,重新训练新的学习器。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flink实时数仓同步:快照表实战详解

一、背景 在大数据领域,初始阶段业务数据通常被存储于关系型数据库,如MySQL。然而,为满足日常分析和报表等需求,大数据平台采用多种同步方式,以适应这些业务数据的不同存储需求。这些同步存储方式包括离线仓库和实时仓…

1894_透明性以及可显性

1894_透明性以及可显性 全部学习汇总: g_unix: UNIX系统学习笔记 (gitee.com) 这是一个透明性以及可显性的基本描述。 这个是对透明性以及可显性的功能作用的一个基本描述。 做一个简单的小结,从一个软件工程师的角度来看看透明性以及可显性的概念和作用…

[职场] 资信评估是什么? #学习方法#笔记

资信评估是什么? 资信评估是指对个人或机构的信用状况进行评估和分析的过程。它主要通过收集和分析各种相关信息来评估借款人或机构的还款能力、信用历史和风险承受能力,以确定其信用等级或信用评分。 资信评估通常包括以下几个方面的内容: …

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

题库来源:安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人考试报名是安全生产模拟考试一点通总题库中生成的一套道路运输企业主要负责人理论考试,安全生产模拟考试一点通上道路运输企业主要负责人作业手机同步练习。2024年【道路运输企业主…

gif动图的裁剪实现思路

项目需求(对app的轮播,以及banner和咨询的图片进行裁剪):前期实现使用用vue-cropper插件对图片进行插件,----后续需求需要裁剪gif动图(vue-cropper、微信自带的截图工具,以及fastStone截图工具,都只能截取静态图片,打开动图时只显示某一帧的静态图片),所以需要研究为什么vue-cr…

Blender 与 3ds Max | 面对面的直接较量(2024)

Blender和3ds Max,哪个动画软件更好?作为一个从事动画领域十年的专业人士,Mark McPherson提供了八条最新建议,帮助你了解哪个软件更适合满足你的3D动画需求。 1.建模 获胜者:3ds Max。3ds Max的建模机制已经被证明是…

uniapp H5 px转换rpx

uniapp H5 px转换rpx 安装 px2rpx 重启 HBuilderX在要转换的文件 点击右键 点击 开启px2rpx(1px转成2rpx) 开启成功!使用 编辑页面后 按下键盘 Ctrl s 保存!转化成功!当然 你也需要对使用的插件 进行转换!否则可能导致样式出现…

xinput1_3.dll文件缺失的解决方法

在使用计算机的过程中,遇到“找不到xinput1_3.dll”这样的错误提示并不罕见。该问题通常出现在尝试启动某些游戏或应用程序时,特别是那些依赖于Microsoft DirectX接口来处理输入设备(如游戏手柄)的程序。xinput1_3.dll是DirectX库…

Fink CDC数据同步(二)MySQL数据同步

1 开启binlog日志 2 数据准备 use bigdata; drop table if exists user;CREATE TABLE user(id INTEGER NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL DEFAULT ,birth VARCHAR(20) NOT NULL DEFAULT ,gender VARCHAR(10) NOT NULL DEFAULT ,PRIMARY KEY(id) ); ALTER TA…

数学建模-退火算法和遗传算法

退火算法和遗传算法 一.退火算法 退火算法Matlab程序如下: [W]xlsread(D:100个目标经度纬度);>> x[W(:,1)];>> y[W(:,2)];>> w[x y];;d1[70, 40];>> w[d1;w;d1]ww*pi/180;%角度化成弧度dzeros(102);%距离矩阵初始化for i1:101…

STL——空间配置器

空间配置器是STL六大组件之一,它和其他五个组件相互配合,起着很关键的作用。 容器:各种数据结构、如vector、list、stack、deque、queue、set、map、unordered_map等等算法:各种算法,如sort、serach、copy、erase 提供…

【vue】报错 Duplicate keys detected 解决方案

错误描述:Duplicate keys detected. This may cause an update error.错误直译:检测到重复的键。这可能会导致错误。错误原因:有相同父元素的多个子元素的v-for有相同的key值。 解决方法: return:{dataList:[{name:张三&#xf…

坚持刷题|二叉树的前、中、后序遍历(递归迭代)

文章目录 题目思考递归实现迭代实现前序遍历后序遍历中序遍历 在前、中、后序的迭代遍历中,为什么都采用栈来模拟递归,而非队列? Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天刷&…

excel给数据库初始化/旧数据处理(自动sql拼装)

思路: 首先导出数据到excel编写单条数据操作的sql利用excel CONCATENATE 函数自动生成,每一行数据的操作sql 小技巧:对于需要套娃的字段值,可以加一个临时列同样使用CONCATENATE函数进行sql拼装 案例: 1.临时列:CONCATENATE(C2, …

ROS方向第二次汇报(5)

文章目录 1.本方向内学习内容:1.1.自定义msg:1.1.1.定义msg文件:1.1.2.编辑配置文件: 1.2.自定义srv:1.2.1.定义srv文件:1.2.2.编辑配置文件: 1.3.服务通信案例实现:1.3.1.服务端实现…

回溯法:回溯法通用模版汇总以及模版应用

从一个问题开始 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4] ] 很容易想到 用两个for循环就可以解决。 如果n为100,k为50呢,那就50层for循…

修改Vim编辑器的缩进和显示行数

一、Vim编辑器的缩进和显示行数 1.指令 sudo vi /etc/vim/vimrc2.插入内容 set tabstop4 set shiftwidth4 set nu 注意输入的格式,前后不要留空格 tabstop是输入按下tab缩进4个 shiftwidth是批量缩进4个 nu是显示行数

【blender烘焙】法线烘焙出现大面积结构丢失怎么办?blender烘焙vs八猴烘焙

用dcc烘焙法线是很常用的减面优化手段,很多建模的dcc自己也内置的烘焙的功能,像我自己在工作流中也偶尔用blender的烘焙做一下材质的整合优化,在质量要求不高的时候还算凑合可用。 问题描述 在前期的文章中飞燕2号建模,我就遇到…

Vue3+vite搭建基础架构(5)--- 使用vue-i18n

Vue3vite搭建基础架构(5)--- 使用vue-i18n 说明官方文档安装vue-i18n使用vue-i18n测试vue-i18n的国际化配置 说明 这里记录下自己在Vue3vite的项目使用vue-i18n做国际化语言的过程,不使用ts语法,方便以后直接使用。这里承接自己的…