五、西瓜书——集成学习

1.个体与集成

        集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能,这对“弱学习器”(weak learner)尤为明显因此集成学习的很多理论研究都是针对弱学习器进行的而基学习器有时也被直接称为弱学习器。

        要获得好的集成个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器
不能太坏,并且要有“多样性”(diversity),即学习器间具有差异 

2.Boosting         

        Boosting是一族可将弱学习器提升为强学习器的算法,这族算法的工作机制类似: 先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器: 如此重复进行直至基学习器数目达到事先指定的值 T,最终将这T个基学习器进行加权结合

        Boosting算法要求基学习器能对特定的数据分布进行学习,这可通过“重赋权法”(re-weighting)实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重.

        对无法接受带权样本的基学习算法,则可通过“重采样法”(resampling)来处理,即在每一轮学习中根据样本分布对训练集重新进行采样,再用重采样而得的样本集对基学习器进行训练.

        一般而言,这两种做法没有显著的优劣差别.需注意的是,若采用“重采样法”,则可获得“重启动”机会以避免训练过程过早停止[Kohavi and Wolpert,1996],即在抛弃不满足条件的当前基学习器之后,可根据当前分布重新对训练样本进行采样,再基于新的采样结果重新训练出基学习器从而使得学习过程可以持续到预设的T轮完成。

        从偏差-方差分解的角度看,Boosting 主要关注降低偏差,因此Bosting能基于泛化性能相当弱的学习器构建出很强的集成。

3.Bagging与随机森林  

(1)Bagging    

        Bagging是针对于样本而言的,它直接基于自助采样法(bootstrap sampling),给定包含 m个样本的数据集我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过 m次随机采样操作,我们得到含 m个样本的采样集初始练集中有的样本在采样集里多次出现,有的则从未出现由式(2.1)可知初始训练集中约有 63.2%的样本出现在采样集中
        照这样,我们可采样出T个含 m 个训练样本的采样集然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合.这就是 Bagging 的基本流程在对预测输出进行结合时,Bagging 通常对分类任务使用简单投票法,对回归任务使用简单平均法.若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜者。

        与标准 AdaBoost 只适用于二分类任务不同,Bagging 能不经修改地用于多分类、回归等任务

        值得一提的是,自助采样过程还给Bagging 带来了另一个优点:由于每个基学习器只使用了初始训练集中约 63.2%的样本,剩下约 36.8%的样本可用作验证集来对泛化性能进行“包外估计”。

        包外样本还有许多其他用途,例如当基学习器是决策树时,可使用包外样本来辅助剪枝,或用于估计决策树中各结点的后验概率,以辅助对零训练样本结点的处理:当基学习器是神经网络时可使用包外样本来辅助早期停止,以减小过拟合风险. 

        从偏差-方差分解的角度看,Bagging 主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。

(2) 随机森林

        随机森林是针对属性而言的,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分.这里的参数k 控制了随机性的引入程度: 若令 k =d则基决策树的构建与传统决策树相同,若令k =1,则是随机选择一个属性用于划分;一般情况下,推荐值 k = log2 d

        随机森林对 Bagging 只做了小改动,但是与 Bagging 中基学习器的“多样性,仅通过样本扰动(通过对初始训练集采样)而来不同,随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升.

4.结合策略

        学习器结合可能会从三个方面带来好处:

  • 首先,从统计的方面来看,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器则会减小这一风险;
  • 第二,从计算的方面来看,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化性能可能很糟糕,而通过多次运行之后进行结合,可降低陷入糟糕局部极小点的风险;
  • 第三,从表示的方面来看,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时若使用单学习器则肯定无效,而通过结合多个学习器,由于相应的假设空间有所扩大有可能学得更好的近似图      

         

    (1)平均法

                            

 

        加权平均法的权重一般是从训练数据中学习而得,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重不完全可靠,尤其是对规模比较大的集成来说,要学习的权重比较多,较容易导致过拟合.因此,实验和应用均显示出加权平均法未必一定优于简单平均法,一般而言在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法 

(2)投票法

  • 绝对多数投票法(majority voting):即若某标记得票过半数,则预测为该标记;否则拒绝预测
  • 相对多数投票法(plurality voting):即预测为得票最多的标记,若同时有多个标记获最高票,则从中随机选取一个
  • 加权投票法(weightedvoting)         

 

        标准的绝对多数投票法(8.24)提供了“拒绝预测”选项,这在可靠性要求较高的学习任务中是一个很好的机制,但若学习任务要求必须提供预测结果,则绝对多数投票法将退化为相对多数投票法.因此,在不允许拒绝预测的任务中,绝对多数、相对多数投票法统称为“多数投票法” 

考虑输出类型: 

        

                

 (3)学习法

        Stacking先从初始数据集训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器.在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记        

        需要注意的是,次级训练集的生成并不是基于初始的训练集,使用训练集生成很容易导致过拟合。而是采用k折交叉验证的方式,使用验证集的输出作为次级训练集。 

        次级学习器的输入属性表示和次级学习算法对 Stacking集成的泛化性能有很大影响.有研究表明,将初级学习器的输出类概率作为次级学习器的输入属性,用多响应线性回归(Multi-response Linear Regression,简称MLR)作为次级学习算法效果较好[Ting and Witten,1999],在MLR中使用不同的属性集更佳[Seewald,2002]

        贝叶斯模型平均(Bayes Model Averaging,简称 BMA)基于后验概率来为不同模型赋予权重,可视为加权平均法的一种特殊实现.[Clarke,2003] 对Stacking 和 BMA 进行了比较,理论上来说,若数据生成模型恰在当前考虑的模型中且数据噪声很少,则 BMA 不差于 Stacking; 然而在现实应用中无法确保数据生成模型一定在当前考虑的模型中,甚至可能难以用当前考虑的模型来进行近似,因此Stacking 通常优于 BMA因为其鲁棒性比 BMA 更好而且BMA对模型近似误差非常敏感

5.多样性 

(1)误差——分歧分解

        通过数学推导可以得到模型泛化误差、基学习器的泛化误差、个体分歧值之间的关系:

         

       欲构建泛化能力强的集成,个体学习器应“好而不同,事实个体学习的“准确”性“多样性”本身就在冲突.一般的,准确性很高之后,要增加多样性就需牺牲准确性. 

(2)多样性度量

   

(3)多样性增强

  • 数据样本扰动:给定初始数据集,可从中产生出不同的数据子集,再利用不同的数据子集
    训练出不同的个体学习器.例如:图像中的数据增强手段
  • 输入属性扰动:训练样本通常由一组属性描述,不同的“子空间”(subspace,即属性子集)提供了观察数据的不同视角.显然从不同子空间训练出的个体学习器必然有所不同。
  • 输出表示扰动:此类做法的基本思路是对输出表示进行操纵,以增强多样性。可对训练样本的类标记稍作变动,如“翻转法”(Flipping Output)随机改变一些训练样本的标记:也可对输出表示进行转化,如“输出调制法”(OutputSmearing)[Breiman,2000] 将分类输出转化为回归输出后构建个体学习器,还可将原任务拆解为多个可同时求解的子任务,如ECOC 法利用纠错输出码将多分类任务拆解为一系列二分类任务来训练基学习器
  • 算法参数扰动:基学习算法一般都有参数需进行设置,例如神经网络的隐层神经元数、初
    始连接权值等,通过随机设置不同的参数,往往可产生差别较大的个体学习器。学习器时通常需使用交叉验证等方法来确定参数值,这事实上已使用了不同参数训练出多个学习器,只不过最终仅选择其中一个学习器进行使用,而集成学习则相当于把这些学习器都利用起来; 由此也可看出集成学习技术的实际计算开销并不比使用单一学习器大很多

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

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

相关文章

武汉灰京文化:多样化推广与创新引领游戏行业

作为专业的游戏推广服务商,武汉灰京文化注重多样化的推广策略,通过与各大媒体、社交平台和游戏社区建立紧密的合作关系,为游戏企业提供全方位的推广服务。他们通过精确的广告投放、内容创作和社交媒体互动等方式,将游戏信息传播给…

【C++】STL学习之旅——初识STL,认识string类

string类 1 STL 简介2 STL怎么学习3 STL缺陷4 string4.1 初识 string4.2 初步使用构造函数成员函数 5 小试牛刀Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见!!! 1 STL 简介 …

解读OWASP软件保障成熟度模型SAMM

OWASP软件保证成熟度模型(SAMM)可为所有类型的组织分析和改进其软件安全态势提供有效和可衡量的方法。OWASP SAMM支持完整的软件生命周期,包括开发和获取,并且与技术和过程无关。 1. 简介 OWASP软件保证成熟度模型(SA…

数据结构 第3章 栈、队列和数组(一轮习题总结)

第3章 栈、队列和数组 3.1 栈3.2 队列3.3 栈与队列的应用3.4 数组和特殊矩阵 3.1 栈(1 10 11 20) 3.2 队列(6 12 14 17) 3.3 栈与队列的应用(6 11) 3.4 数组和特殊矩阵 3.1 栈 T1 栈和队列具有相同的逻辑…

k8s-prometheus监控部署 22

新建项目仓库并上传部署prometheus所需的镜像 开始部署 修改svc访问方式为LoadBalancer 查看用户名和密码 访问grafana监控页面 http://192.168.182.103/​​​​​​ 修改可视化模板 官方监控模板:https://grafana.com/grafana/dashboards 访问prometheus监控页面…

1. vue3-环境准备

1、安装node.js 如果开发环境上面没有安装node.js,需要到node.js官方网站下载node.js。下载安装后,可以通过npm --version查看nodejs版本 2. 开发工具 开发工具建议使用vscode

知识图谱1——neo4j

2024年要搞知识图谱,因此没有办法,只能将我之前固守的JDK1.8,升级到JDK21,因为JDK21也是LTS版本,neo4j高版本就不支持JDK8,因此没有办法,只有升级了。写这篇只是一个搭建笔记,我的初…

AJAX 学习笔记(Day3)

「写在前面」 本文为黑马程序员 AJAX 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. AJAX 学习笔记(Day1) 目录 3 AJAX 原理 3.1 XMLHttpRequest 3…

springboot心灵治愈交流平台源码和论文

本论文主要论述了如何使用JAVA语言开发一个心灵治愈交流平台 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述心灵治愈交流平台的当前背景以及系统开发的目的&a…

@Transactional--开启事物后换源报错

一、问题出现的场景 系统架构设计、每个企业一个企业库、通过数据源切在平台库、和企业库之间动态切换完成业务操作。 二、跨库事物失效的原因 1、SpringTransactional不支持跨数据源事物,Spring 事物控制是基于数据库链接进行的,当数据源切换后&#x…

SketchUp Pro 2023:颠覆传统,重塑设计世界mac/win版

SketchUp Pro 2023是一款强大的三维建模软件,专为设计师、建筑师和创意专业人士打造。这款软件以其直观易用的界面和强大的功能而著称,为用户提供了无限的创意空间。 SketchUp Pro 2023软件获取 SketchUp Pro 2023在用户体验方面进行了全面的优化&#…

SpringBoot整合rabbitmq-重复消费问题

说明:重复消费的原因大致是生产者将信息A发送到队列中,消费者监听到消息A后开始处理业务,业务处理完成后,监听在告知rabbitmq消息A已经被消费完成途中中断,也就时说我已经处理完业务,而队列中还存在当前消息…

Qt|QTreewidget类下函数qt助手详解说明示例(上)

该系列持续更新,喜欢请一键三连,感谢各位大佬。 QT5.14.2 参考官方QT助手 文章目录 QTreeWidget ClasspropertiesPublic Functions默认构造函数默认析构函数添加根节点void addTopLevelItem(QTreeWidgetItem *item)添加多个根节点void addTopLevelItems…

Linux下的权限

1. 操作系统的外壳 在理解Linux权限之前,我们先来吃点小菜。 1.大部分指令都是文件,如果把指令对应的文件删除了,那么这条指令就使用不了了。 2.用户执行某种功能的时候,不是直接让操作系统执行对应的指令的,而是先交…

Python开源项目月排行 2024年2月

Python 趋势月报,按月浏览往期 GitHub,Gitee 等最热门的Python开源项目,入选的项目主要参考GitHub Trending,部分参考了Gitee和其他。排名不分先后,都是当前月份内相对热门的项目。 入选公式=70%GitHub Trending20%Gitee10%其他 …

jvm面试题-背诵版

按照思维导图抽查和记忆,答案见:四、面试-多线程/并发_scheduledfuture释放-CSDN博客

Jmeter系列(4) 线程属性详解

线程属性 线程组是配置压测策略的一个重要环节线程组决定了测试执行的请求数量 线程数 在这里线程数相当于一个虚拟用户每个线程数大约占内存1M特别注意⚠️ 单台机器最大线程数不要超过1000,不然可能会造成内存溢出 Ramp-Up时间 所有线程在多长时间内全部启动…

计算机网络-第2章 物理层

本章内容:物理层和数据通信的概念、传输媒体特点(不属于物理层)、信道复用、数字传输系统、宽带接入 2.1-2.2 物理层和数据通信的概念 物理层解决的问题:如何在传输媒体上传输数据比特流,屏蔽掉传输媒体和通信手段的差…

文献阅读笔记《Spatial-temporal Forecasting for Regions without Observations》13页

目录 目录 目录 发行刊物 ABSTRACT 1 INTRODUCTION 2 RELATED WORK(相关工作 2.1 Spatial-temporal Forecasting(时空预测 2.2 Spatial-temporal Forecasting withIncomplete Data(不完全数据的时空预测 2.3 Graph Contrastive Lear…

蓝桥杯集训·每日一题2024 (前缀和)

笔记&#xff1a; 例题&#xff1a; #include<bits/stdc.h> using namespace std; const int N 5000010; char str[N]; int s[N]; int main(){int t;cin>>t;for(int a1;a<t;a){int n;cin>>n;scanf("%s",str1);for(int i1;i<n;i){s[i]s[i-1]…