集成学习(Bagging和Boosting)

2023-05-16

一、概念

集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。

Baggging 和Boosting都是模型融合的方法,可以将弱分类器融合之后形成一个强分类器,而且融合之后的效果会比最好的弱分类器更好。

集成学习在各个规模的数据集上都有很好的策略:

  • 数据集大:划分成多个小数据集,学习多个模型进行组合
  • 数据集小:利用Bootstrap方法进行抽样,得到多个数据集,分别训练多个模型再进行组合

 

二、Bagging(套袋法)

1、其算法过程如下:

  • 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping(有放回采样)的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。k个训练集之间是相互独立的。
  • 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。
  • 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

2、案例

X 表示一维属性,Y 表示类标号(1或-1)测试条件:当x<=k时,y=?;当x>k时,y=?;k为最佳分裂点

下表为属性x对应的唯一正确的y类别

现在进行5轮随机抽样,结果如下

每一轮随机抽样后,都生成一个分类器

然后再将五轮分类融合

对比符号和实际类,我们可以发现:在该例子中,Bagging使得准确率可达90%

3、常用的集成算法类是随机森林

在随机森林中,通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回地重复随机抽取n个样本生成新的训练样本集合训练决策树,然后按以上步骤生成m棵决策树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。其实质是对决策树算法的一种改进,将多个决策树合并在一起,每棵树的建立依赖于独立抽取的样本。 单棵树的分类能力可能很小,但在随机产生大量的决策树后,一个测试样本可以通过每一棵树的分类结果经统计后选择最可能的分类,是一种bagging的思想。

 

三、Boosting

 AdaBoosting方式每次使用的是全部的样本,每轮训练改变样本的权重。下一轮训练的目标是找到一个函数 f 来拟合上一轮的残差。当残差足够小或者达到设置的最大迭代次数则停止。Boosting会减小在上一轮训练正确的样本的权重,增大错误样本的权重。(对的残差小,错的残差大)

关于Boosting的两个核心问题:

1、在每一轮如何改变训练数据的权值或概率分布?

通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。

2、通过什么方式来组合弱分类器?

通过加法模型将弱分类器进行线性组合,比如:

AdaBoost(Adaptive boosting)算法:刚开始训练时对每一个训练例赋相等的权重,然后用该算法对训练集训练t轮,每次训练后,对训练失败的训练样本赋以较大的权重,也就是让学习算法在每次学习以后更注意学错的样本,从而得到多个预测函数。通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

GBDT(Gradient Boost Decision Tree):每一次的计算是为了减少上一次的残差,GBDT在残差减少(负梯度)的方向上建立一个新的模型。损失函数(loss function)越大,说明模型越容易出错,如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度的方向上下降。

 

四、Bagging、Boosting二者之间的区别

1、样本选择上:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

2、样例权重:

Bagging:使用均匀取样,每个样例的权重相等

Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3、预测函数:

Bagging:所有预测函数的权重相等。

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4、并行计算:

Bagging:各个预测函数可以并行生成

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

5、bagging可以减少variance,而boosting可以减少bias

(1)什么是variance,什么是bias?

也就是说,High variance 是model过于复杂overfit,记住太多细节noise,受outlier影响很大;high bias是underfit,model过于简单,cost function不够好。

(2)为什么bagging可以减少variance?bagging随机选取data的subset,outlier因为比例比较低,参与model training的几率也比较低,所以bagging降低了outliers和noise对model的影响,所以降低了variance。

(3)为什么boosting可以减少bias?boosting是在优化loss function,在降低loss,那么很显然,这在很大程度上是减少bias。

 

参考地址:

https://www.cnblogs.com/earendil/p/8872001.html

https://www.zhihu.com/question/26760839

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集成学习(Bagging和Boosting) 的相关文章

  • 集成学习

    中科院人工智能学院面试的时候有问到 xff0c 集成学习有哪些方法 xff0c 各自的优缺点 是因为我在简历上写了KPI异常检测最后需要通过无监督学习或者集成学习来解决 说实话我对集成学习的概念没那么清晰了 xff0c 我只记得裴丹用的随机
  • boosting

    https blog csdn net qq547276542 article details 78304454 utm medium 61 distribute pc relevant t0 none task blog OPENSEAR
  • 集成学习--Stacking

    参考 集成学习主要分为 bagging xff0c boosting 和 stacking方法 stacking过程如下图 xff0c 首先在训练集上训练m个基分类器 xff08 或回归器 xff09 xff0c 这m个分类器输出的预测结果
  • 集成学习(Ensemble Learning)

    集成学习Ensemble Learning Ensemble LearningDefinitionCommon types of ensemblesBootstrap aggregating Bagging BoostingStacking
  • 机器学习(十一)——集成学习

    集成学习 xff08 ensemble learning xff09 通过构建并结合多个学习器来完成学习任务 根据个体学习器的生成方式 xff0c 目前集成学习的方法大致分为两类 xff0c 即个体学习器之间存在强依赖关系 xff0c 必须
  • 集成学习

    李宏毅机器学习 周志华机器学习第8章 使用sklearn进行集成学习 stacking心得 xgboost实战 bagging xff1a 当原模型已经很复杂的时候 xff0c bias已经很小但variance很大时候 比较容易overf
  • 项目搭建之代码规范化解决方案

    代码规范化解决方案Eslint Prettier Eslint 是一个插件化的 javascript 代码检测工具 用于代码格式检测 不符合Eslint规则的代码 会被检测到发出警告 报错 通过 eslintrc js 文件可以进行自定义的
  • 如何在 Java 中将 InputStream 读取/转换为字符串?

    问题描述 如果您有一个 java io InputStream 对象 您应该如何处理该对象并生成一个 String 假设我有一个包含文本数据的 InputStream 并且我想将其转换为 String 例如 我可以将其写入日志文件 获取 I
  • redis命令,SpringBoot整合Redis6,主从复制,哨兵模式,集群,springCache初高级应用。

    目录 1 Docker安装Redis 2 Redis的基础 2 1 redis的key命令 2 2 reids的数据结构 6 0新增的数据结构 1 String 字符串 类型 2 List 列表 类型 3 set 集合 类型 4 Hash
  • 机器学习:集成学习

    一 集成学习算法简介 1 什么是集成学习 集成学习通过建立几个模型来解决单一预测问题 它的工作原理是生成多个分类器 模型 各自独立地学习和作出预测 这些预测最后结合成组合预测 因此优于任何一个单分类的做出预测 2 复习 机器学习的两个核心任
  • 集成学习思想

    一 集成学习 Ensemble Learning 集成学习的思想是将若干个学习器 分类器 回归器 组合之后产生一个新的学习器 集成学习的主要思想 1 Bagging 代表算法是随机森林 Random Forest 2 Boosting 代表
  • AdaBoost算法实例详解

    提升树Boosting Tree算法实例详解 程大海的博客 CSDN博客 从提升树Boosting Tree过度到梯度提升Gradient Boosting 程大海的博客 CSDN博客 GBDT梯度提升之回归算法个人理解 程大海的博客 CS
  • 实用的集成学习模型调优策略SWA

    集成学习介绍 强力的集成学习算法主要有2种 基于Bagging的算法和基于Boosting的算法 基于Bagging的代表算法有随机森林 而基于Boosting的代表算法则有Adaboost GBDT XGBOOST 集成学习的思想同样适用
  • 集成学习-Voting

    一 什么是集成学习 集成学习是使用一系列学习器进行学习 并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法 一般情况下 集成学习中的多个学习器都是同质的 弱学习器 上面的描述来自百度百科 看定义的话知道
  • Lightgbm 直方图优化算法深入理解

    一 概述 在之前的介绍Xgboost的众多博文中 已经介绍过 在树分裂计算分裂特征的增益时 xgboost 采用了预排序的方法来处理节点分裂 这样计算的分裂点比较精确 但是 也造成了很大的时间开销 为了解决这个问题 Lightgbm 选择了
  • XGboost进行时间序列预测

    文章最前 我是Octopus 这个名字来源于我的中文名 章鱼 我热爱编程 热爱算法 热爱开源 所有源码在我的个人github 这博客是记录我学习的点点滴滴 如果您对 Python Java AI 算法有兴趣 可以关注我的动态 一起学习 共同
  • 机器学习-集成学习-梯度提升决策树(GBDT)

    目录 1 GBDT算法的过程 1 1 Boosting思想 1 2 GBDT原理 需要多少颗树 2 梯度提升和梯度下降的区别和联系是什么 3 GBDT的优点和局限性有哪些 3 1 优点 3 2 局限性 4 RF 随机森林 与GBDT之间的区
  • 2021年系统集成项目管理工程师(软考中级)连夜整理考前重点

    一 信息与信息化 1 信息论奠基者香农认为 信息就是能够用来消除不确定性的东西 8种状态需要3位比特表示 5位比特则可表示64种状态 信息 物质材料 能源是三大戓略资源 2 信息论两个层次 本体论和认识论 3 信息传输模型 信源 编码 信道
  • Vue3 集成 UEditor puls 富文本编辑器

    一 前端配置 1 下载代码https gitee com modstart lib ueditor plus tree master 2 解压压缩包 如下图 3 拿到dist文件夹的内容 重命名为UEditor 并将其复制到vue项目的pu
  • 使用树输出预测 Spark 中梯度提升树情况下的类概率

    众所周知 Spark 中的 GBT 目前可以为您提供预测标签 我正在考虑尝试计算一个类的预测概率 假设所有实例都落在某个叶子下 构建 GBT 的代码 import org apache spark SparkContext import o

随机推荐

  • ubuntu server 20.04使用kubeadm安装k8s v1.23.5

    这篇文章也不错 xff1a https blog csdn net hefashion0190 article details 122635188 两台服务器配置hosts vim etc hosts 192 168 199 116 mas
  • 使用kubeadm 在Centos7.9 上安装k8s集群

    停止并禁用firewalld systemctl stop firewalld amp amp systemctl disable firewalld 关闭selinux sed i s 34 SELINUX 61 enforcing 34
  • Linux bash命令根据历史记录补全

    比如 xff0c 想找 docker run 开头的历史命令 xff0c 只需要键入 docker run 然后按 进行选择 但是在用服务器的bash时没有这个功能 xff0c 每次按 都会把敲入一半的命令清除掉 ctrl r 也不是很好用
  • Docker优化参数

    cat gt etc docker daemon json lt lt EOF 34 oom score adjust 34 1000 34 log driver 34 34 json file 34 34 log opts 34 34 m
  • Rancher 监控组件 Grafana 数据持久化

    以下配置是基于在 Rancher Cluster Manager 中启用监控 xff0c 而非在 Cluster Explorer 应用程序和市场中启用的新版监控 场景描述 xff1a 首先确保你的pv 回收策略是Retain 可以参照此文
  • MATLAB设置使用语言为中文

    因为每次自己都会忘记如何操作 xff0c 所以记录在自己的博客里 xff0c 避免忘记 在MATLAB主页 预设 帮助 右侧选取语言为简体中文 xff0c 具体操作可以见图片
  • kubernetes cordon原理

    cordon 节点可以使节点不接受调度pod 那么原理是什么呢 其实很简单 xff0c 就是给节点增加了一个污点 kubectl describe node NODE NAME 能看到这个污点配置 xff1a Taints node kub
  • 解决win10 win11 蓝牙音箱可以连接无法播放声音/蓝牙音箱无法选择使用

    这个靠谱 xff0c 记录一下 1 快捷键win 43 r xff0c 输入regedit xff0c 打开注册表 2 进入目录 xff1a 计算机 HKEY LOCAL MACHINE SYSTEM ControlSet001 Contr
  • journalctl 日志保留时间及持久化存储日志

    Systemd Journald基础 默认情况下 xff0c Systemd将系统日志存储在 run log journal目录中 xff0c 正如我们在了解Linux文件系统层次结构中所说的 参考 xff1a 介绍Red Hat Ente
  • Linux之/etc/fstab文件详解及实践

    转 https blog csdn net carefree2005 article details 125632867
  • Jenkins 上传文件到工作目录

    使用插件 xff1a File Parameter Plugin 之前写过一篇关于Jenkins 用户上传文件到工作目录的文章 xff0c 那时候还需要使用sharedlibraries 现在使用这个插件可以非常简单的上传文件 话不多说 x
  • Jenkins 在不同的agent之间传递文件/上传文件

    有时jenkins pipeline需要在不同的agent上执行不同的操作 xff0c 同时需要在不同的agent之间传递文件 方法如下 xff1a stage 39 上传文件 39 agent 39 label A 39 steps sc
  • 解决vscode编写go代码时提示过慢

    vscode的自动代码提示 xff0c 发现太慢了 xff0c 隔3 xff0c 4秒才会出提示 xff0c 所以换为Google推荐的 gopls来代替 下载过程 方案一 打开 VS Code 的setting 搜索 go useLang
  • windows server安装OpenSSH server

    右键powershell 选择以管理员运行 powershell 查看可安装的OpenSSH server版本 xff0c 在PowerShell中执行命令如下所示 Get WindowsCapability Online Name Ope
  • 表白密码:I Love you的42种密码表白方式

    字母表白数字密码 xff1a 9121522521 表白解密 xff1a 从1开始到26 xff0c 分别表示从A到Z xff0c 即 xff1a A xff08 1 xff09 B xff08 2 xff09 C xff08 3 xff0
  • C语言字符串结束标志

    为了测定字符串的实际长度 xff0c C语言规定了一个字符串结束标志 0 作为标志 xff0c 如果一个字符串为9个 xff0c 前面九个都不为空字符 xff0c 那么第十个字符为 0 xff0c 也就是说在遇到字符 0 时 xff0c 表
  • 用体光栅作角度滤波器

    体光栅由于其高光谱灵敏性和角度灵敏度 xff0c 可以设计成光谱滤波器或角度滤波器 根据K Bang等人的工作 xff0c 我们在VirtualLab Fusion中构造了这样的体光栅 xff0c 并分析了它们的角度响应 与传统的采用4 f
  • linux网络编程(完整版)

    之间在网上看到很多网络编程都是一个一个demo xff0c 今天我把之前学到的汇总起来 xff0c 希望大家可以进行补充 我理解的网络通信分为4种 1 xff0c udp客户端 2 xff0c udp服务端 3 xff0c tcp客户端 4
  • 一阶线性微分方程

    1 一阶线性微分方程概念 2 一阶线性齐次微分方程解法 例题 xff1a 例题 xff1a 3 一阶线性非齐次微分方程解法 例题 xff1a 4 伯努利方程 例题 xff1a
  • 集成学习(Bagging和Boosting)

    一 概念 集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型 xff0c 集成学习潜在的思想是即便某一个弱分类器得到了错误的预测 xff0c 其他的弱分类器也可以将错误纠正回来 Baggging 和Boosting都是模