当前位置: 首页 > news >正文

机器学习第8章 集成学习

目录

  • 个体与集成
  • Boosting
  • Bagging与随机森林
    • Bagging
    • 随机森林
  • 结合策略
    • 平均法
    • 投票法
    • 学习法

个体与集成

定义:集成学习,也叫多分类器系统、基于委员会的学习等,它是一种通过结合多个学习器来构建一个更强大的学习器的技术。如下图所示在这里插入图片描述
在这里,个体学习器通常由一个现有的学习算法从训练数据产生。集成学习通过整合多个模型的预测结果,可以提高整体的预测准确性和泛化能力。我们希望通过将多个学习器结合在一起能获得比其中任意一个学习器还要好的性能,这是我们要研究的重点,比如举下面一个例子。在这里插入图片描述
遵从少数服从多数原则,在(a)中,每个分类器都只有66.6% 的精度,但集成学习却达到了 100%;在(b)中,三个分类器没有差别,集成之后性能没有提高;在(c)中,每个分类器的精度都只有33.3%,集成学习的结果变得更糟。故要获得好的集成,个体学习器应"好而不同",即要具有"准确性"。
事实上,如何产生并结合"好而不同"的个体学习器,恰是集成学习研究的核心。根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类:第一类是个体学习器问存在强依赖关系、必须串行生成的序列化方法;第二类是个体学习器间不存在强依赖关系、可同时生成的并行化方法。前者的代表是Boosting,后者的代表是Bagging和"随机森林"。下面介绍一下这两者。

Boosting

Boosting是一族集成学习方法,通过顺序训练多个弱学习器,每个弱学习器都尝试修正前一个学习器的错误,从而逐步提高整体模型的性能。
Boosting族算法最著名的代表是AdaBoost,其算法流程如下图所示在这里插入图片描述
Boosting 算法要求基学习器能对特定的数据分布进行学习,这可通过"重赋权法" (re-weighting)实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重。若某些样本无法赋权,则对该样本实施“重采样法”,即对训练集重新采样,再对采样后的样本集进行训练。
从偏差–方差分解角度看,Boosting 主要关注降低偏差,因此 Boosting能基于泛化性能相当弱的学习器构建出很强的集成。

Bagging与随机森林

Bagging

Bagging是一种并行集成学习方法,通过随机抽样训练集合构建多个基学习器(具体流程是给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,经过m
次随机采样操作,我们得到含m个样本的采样集,照这样,我们可采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合.)然后将它们的预测结果进行平均或投票来得到最终预测( Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法)。
Bagging算法描述如下:在这里插入图片描述
Bagging是一个很高效的集成学习算法,并且,与标准 AdaBoost 只适用于二分类任务不同,Bagging 能不经修改地用于多分类、回归等任务。

随机森林

随机森林是Bagging的一个典型代表,它在使用决策树作为基学习器的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,在随机森林中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。
在这里插入图片描述
从上面图片可以看出,Bagging集成规模越大,其划分效果就相对越好。
随机森林的收敛性与 Bagging相似,如下图所示,随机森林的起始性能往往相对较差, 特别是在集成中只包含一个基学习器时。随着个体学习器数目的增加,随机森林通常会收敛到更低的泛化误差。
在这里插入图片描述

结合策略

学习器结合有如下好处:
(1)从统计的方面来看,结合多个学习器,可以避免相关风险,比如使用单学习器可能因误选而导致泛化性能不佳;
(2)从计算的方面来看,通过多次运行之后进行结合, 可降低陷入糟糕局部极小点的风险;
(3)从表示的方面来看,通过结合多个学习器,由于相应的假设空间有所扩大,有可能学得更好的近似。
下图给出了一个直观示意图:在这里插入图片描述
下面介绍几种对基学习器进行结合的常见策略

平均法

简单平均法:即对所有基学习器的输出进行加和取平均值, H ( x ) = 1 T ∑ i = 1 T h i ( x ) H\left ( x \right ) =\frac{1}{T} \sum_{i=1}^{T} h_{i} \left ( x \right ) H(x)=T1i=1Thi(x)
加权平均法 H ( x ) = ∑ i = 1 T w i h i ( x ) H\left ( x \right ) =\sum_{i=1}^{T} w_{i} h_{i} \left ( x \right ) H(x)=i=1Twihi(x),其中 w i w_{i} wi是个体学习器 h i h_{i} hi,通常要求 w i ≥ 0 w_{i} \ge 0 wi0 ∑ i = 1 T w i = 1 \sum_{i=1}^{T} w_{i} =1 i=1Twi=1
一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法.

投票法

绝大多数投票法:若某标记得票过半数,则预测为该标记;否则拒绝预测。
相对多数投票法:即预测为得票最多的标记,若同时有多个标记获最高票,则从中随机选取一个。

学习法

当训练数据数量很庞大时,最好使用学习法,即通过另一个学习器来进行结合。其中Stacking是学习法的代表,其流程如下:在这里插入图片描述
Stacking 先从初始数据集训练出初级学习器,然后"生成"一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。

在训练阶段,次级训练集是利用初级学习器产生的,若直接用初级学习器的训练集来产生次级训练集,则过拟合风险会比较大;因此,一般是通过使用交叉验证或留一法这样的方式,用训练初级学习器未使用的样本来产生次级学习器的训练样本。

http://www.lryc.cn/news/433807.html

相关文章:

  • 京东鸿蒙上线前瞻——使用 Taro 打造高性能原生应用
  • day2 QT
  • JS_函数声明
  • 快速排序+归并排序代码回顾
  • DBC中一种特殊的特殊的Signal—多路复用Signal
  • 前端基础面试题·第三篇——JavaScript(其三)
  • MacBook真的不能打游戏吗?Mac打游戏会损坏电脑吗?苹果电脑怎么玩游戏
  • 安卓逆向(之)真机root(红米手机)
  • 关于转行网络安全的一些建议
  • (六十五)第 10 章 内部排序(希尔排序)
  • 802.11 中 scrambler的matlab仿真
  • centos 服务器 多网卡 ip 地址 设置
  • 什么是大数据、有什么用以及学习内容
  • ZBrush与Blender雕刻功能哪个更好些?
  • 软件工程技术专业软件开发综合实训室解决方案
  • 链动2+1:高效用户留存与增长的商业模式解析
  • Python 调用手机摄像头
  • E5053A 微波下变频器
  • 记录:uniapp直播的弹幕的样式修改与发送弹幕会自动滚动到底部两个技巧
  • 【流程设计】JAVA系统集成activiti工作流,流程设计器,在线审批,会签,驳回,流程图查看(实际多套系统运用案例分析)
  • Debezium系列之:大规模应用debezium server采集数据库,从每个Debezium Server中导出JMX采集指标
  • QY-SW 浮子水位计 RS485 LCD显示屏
  • 橘子学ES实战操作之管道类型Ingest pipelines的基本使用
  • VScode:前端开发中的常用快捷键和技巧
  • Radmin-同一局域网只需IP就可以控制电脑
  • 【附答案】C/C++ 最常见50道面试题
  • C++音视频开发笔记目录
  • spring项目整合log4j2日志框架(含log4j无法打印出日志的情况,含解决办法)
  • Linux网络:应用层协议http/https
  • transforemr网络理解