Bagging(Bootstrap Aggregating)

Bagging(引导聚集算法)简述 目录1 概念2 原理2.1 方差2.2 模型的偏差与方差 1 概念         Bagging算法 (Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法。         Bagging算法可与其他分类、回归算法结合,提高其准确率、稳定性的同时,通过降低结果的方差,避免过拟合的发生。 b 阅读详情

思想:Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差的技术。主要想法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。 这是机器学习中常规策略的一个例子,被称为模型平均(modelaveraging)。采用这种策略的技术被称为集成方法。 

框架流程:

  1. 从原始样本集中使用Bootstraping 方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集(k个训练集之间相互独立,元素可以有重复)。
  2. 对于n个训练集,我们训练k个模型,(这个模型可根据具体的情况而定,可以是决策树,knn等)
  • 对于分类问题:由投票表决产生的分类结果;对于回归问题,由k个模型预测结果的均值作为最后预测的结果(所有模型的重要性相同)。

bagging通过在不同数据集上训练模型降低分类器的方差。换句话说,bagging可以预防过拟合。bagging的有效性来自不同训练数据集上单独模型的不同,它们的误差在投票过程中相互抵消。此外,某些bootstrap训练样本很可能略去离散值。

典型算法:与其说Bagging是一种算法啊,不如说是一种解决问题的思想,一种框架,而Random Forest是基于Bagging的一种经典装袋法。顾名思义,随机森林是一种算则分类回归树作为基模型的Bagging算法。

Random Forest :在Bagging策略的基础上进行修改后的一种算法
(1)从样本集中用Bootstrap采样选出n个样本;
(2)从所有属性中随机选择K个属性,选择出最佳分割属性作为节点创建决策树;
(3)重复以上两步m次,即建立m棵决策树;
(4)这m个决策树形成随机森林,通过投票表决结果决定数据属于那一类

随机森林的随机性体现在哪几个方面?

1、数据集的随机选取

从原始的数据集中采取有放回的抽样(bagging),构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。

2、待选特征的随机选取

与数据集的随机选取类似,随机森林中的子树的每一个分裂过程并未用到所有的待选特征,而是从所有的待选特征中随机选取一定的特征,之后再在随机选取的特征中选取最优的特征。

思想:

随机森林实际上是一种特殊的bagging方法,它将决策树用作bagging中的模型。首先,用bootstrap方法生成m个训练集,然后,对于每个训练集,构造一颗决策树,在节点找特征进行分裂的时候,并不是对所有特征找到能使得指标(如信息增益)最大的,而是在特征中随机抽取一部分特征,在抽到的特征中间找到最优解,应用于节点,进行分裂。随机森林的方法由于有了bagging,也就是集成的思想在,实际上相当于对于样本和特征都进行了采样(如果把训练数据看成矩阵,就像实际中常见的那样,那么就是一个行和列都进行采样的过程),所以可以避免过拟合。最终分类的时候采用多用用户投票,回归采用均值。

为什么绝大多数随机森林算法中用的都是cart树

在sklearn中的随机森林算法中用的就是cart树,在分类问题中,分裂方式不限于gini,也可以选entropy,在回归问题中,用的是mse和mae。

ID3有很多明显不足的地方:比如不能处理连续性变量;不能处理缺失值;选择分裂变量时会倾向于选择类别较多的变量(理解这个问题可以想的极端一点,如ID类的特征,每一类下都只有一个输出项);容易过拟合。

同样,C4.5也有一些问题:C4.5生成的是多叉树,即一个父节点可以有多个节点。很多时候,在计算机中二叉树模型会比多叉树运算效率高,如果采用二叉树,可以提高效率;C4.5只能用于分类,不能用于回归;C4.5由于使用了熵模型,里面有大量耗时的对数运算,如果是连续值还有大量的排序运算,运算效率较低。

cart树可以分类可以回归。

cart树里面引入了一个gini系数的概念,gini的计算相比熵要简单的多,所以可以减少一定的运算量。

cart树第二个特点在于节点的分裂上,每次节点分裂都是二叉的,所以cart树就是多个二叉树组成的,这种特点使得cart算法与C4.5算法在处理离散变量上有很大的不同,离散变量在C4.5中只有一次可能出现在分裂节点上,分裂的枝数与离散变量的类别数量有关。

因为每次都是二分裂,所以cart也没有ID3中倾向于选择类别较多的变量的缺陷。

随机森林优缺点总结 优点

  • 由于采用了集成算法,本身精度比大多数单个算法要好,所以准确性高
  • 在测试集上表现良好,由于两个随机性的引入,使得随机森林不容易陷入过拟合(样本随机,特征随机)
  • 在工业上,由于两个随机性的引入,使得随机森林具有一定的抗噪声能力,对比其他算法具有一定优势
  • 由于树的组合,使得随机森林可以处理非线性数据,本身属于非线性分类(拟合)模型
  • 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化
  • 训练速度快,可以运用在大规模数据集上
  • 可以处理缺省值(单独作为一类),不用额外处理
  • 由于有袋外数据(OOB),可以在模型生成过程中取得真实误差的无偏估计,且不损失训练数据量
  • 在训练过程中,能够检测到feature间的互相影响,且可以得出feature的重要性,具有一定参考意义
  • 由于每棵树可以独立、同时生成,容易做成并行化方法
  • 由于实现简单、精度高、抗过拟合能力强,当面对非线性数据时,适于作为基准模

缺点

  • 当随机森林中的决策树个数很多时,训练时需要的空间和时间会比较大
  • 随机森林中还有许多不好解释的地方,有点算是黑盒模型
  • 在某些噪音比较大的样本集上,RF的模型容易陷入过拟合
保姆级教程:用Java和HslCommunication库搞定三菱PLC数据读写(附完整代码) 本文提供了一份详细的Java与三菱PLC通信教程,通过HslCommunication库实现高效数据读写。内容涵盖环境配置、通信模式选择、数据类型操作、异常处理及性能优化,并附有完整代码示例,帮助开发者快速掌握工业自动化中的PLC数据交互技术。 阅读详情

相关推荐

RT-Thread 5.1.0 实战:手把手教你用CubeMX和RT-Studio创建第一个工程(附常见编译错误修复)

本文详细介绍了如何使用STM32CubeMX和RT-Thread Studio 5.1.0创建第一个RT-Thread工程,包括开发环境准备、CubeMX配置、工程整合及常见编译错误修复。通过实战指南,帮助开发者快速上手RT-Thread 5.1.0,解决开发过程中的典型问题,提升嵌入式开发效率。

weixin_29165465的博客 285

什么是Bootstrap Aggregating

简介 Bootstrap Aggregating也叫作bagging,是一种机器学习领域用来做模型合并的一种算法。这种算法可以提高统计分类器和回归器的稳定性和准确度。同时也可以帮助模型避免过拟合。历史Bootstrap Aggregating最早在1994年由Leo Breiman提出,当时用来通过随机合并训练数据集,从而提高分类器的性能。算法描述Bootstrap Aggregating算法不...

weixin_34049032的博客 1053

Allegro17.4原理图-PCB双向联动技巧:从网表生成到同步高亮

本文深入解析了Cadence Allegro 17.4中原理图与PCB的深度双向联动技巧。核心在于通过精准的网表生成与管理、实时的跨窗口交互高亮与信号追踪,以及元件与封装的智能匹配更新,构建高效协同设计工作流。掌握这些技巧能显著提升高速、高密度电路设计的效率与准确性,实现从逻辑设计到物理实现的无缝衔接。

weixin_29178069的博客 358

【机器学习】集成算法:bagging策略包含详细案例

Bagging是一种基于集成学习的算法,是一种广泛使用的机器学习技术。Bagging的全称是Bootstrap Aggregating,其思想是通过将许多相互独立的学习器的结果进行结合,从而提高整体学习器的泛化能力。本篇博客将介绍Bagging算法的工作原理,优点和缺点,以及如何在Python中实现。

qq_61260911的博客 8894

Coze平台智能体开发实战:打造测试工程师的AI助手

智能体是具备特定身份和能力的AI实体,由大语言模型(LLM)驱动,并通过插件、知识库和工作流扩展其能力。明确的角色定位:可以设定特定身份和专业领域扩展能力:通过插件连接外部工具和服务记忆能力:通过知识库存储和检索专属信息流程化处理:通过工作流执行复杂多步任务通过Coze平台创建测试工程师智能体,可以显著提升测试效率和质量。明确的角色定位:聚焦测试工程师的实际需求丰富的知识库:提供准确的领域知识支持合适的工具集成:通过插件连接现有工具链持续迭代优化:根据反馈不断改进智能体行为自动化测试生成。

hogwarts_beibei的博客 1005

Mamba-YOLOv8深度解析:基于状态空间模型的下一代目标检测架构(含完整代码与实战部署)文末含资料链接!

通过本文的完整指南,您将掌握从理论创新到工程落地的全流程技术细节。立即动手实践,开启目标检测的新纪元!

FJN110的博客 518

机器学习 - 随机森林 Random Forest

先修知识: 决策树。可以看我之前写的文章https://blog.youkuaiyun.com/weixin_41332009/article/details/112276531 集成学习。也可以看之前写的文章https://blog.youkuaiyun.com/weixin_41332009/article/details/112524432 1.什么是随机森林? 学习了决策树之后,那么会很容易理解什么是随机森林。随机森林就是通过集成学习的思想将多棵树集成的一种算法:它的基本单元就是决策树。随机森林的名称中有两个关.

weixin_41332009的博客 7881

科技与伦理的平衡点:人类计算的伦理

科技与伦理的平衡点:人类计算的伦理 关键词 科技与伦理 人类计算 隐私问题 道德决策自动化 公平性与偏见 法律与社会责任 摘要 本

AI天才研究院 1162

Bagging(Bootstrap Aggregating)和averaging可行性分析

此处bagging具体过程不做详细介绍,我们只谈一下bagging为什么可以工作以及它的作用。 Bagging为什么可以工作 我们从回归问题的泛化误差的角度来分析(这里先不分偏差和方差)。设数据集L包含数据,其数据均采样与联合分布为P的随机变量。如此,我们的集成模型可以表示为: ...

xiaomeng29的博客 448

RockChip Android14 修改LCD背光最大值

在调试LCD屏时时长会出现硬件不匹配,导致电流过大,屏幕发热严重。在不调整硬件的情况下,我们可以通过修改软件,降低LCD背光最大值来实现适配。我们都知道LCD屏背光是靠pwm来控制,一般来说最大值可以设置为255,针对上述问题,我们可以通过软件来降低该值,比如200,100等等。

qq_34968572的博客 631

基于YOLOv5的人脸识别系统:从构建到应用的全流程指南

本文详细介绍了基于YOLOv5的人脸识别系统开发全流程。首先阐述了YOLOv5模型的高效性和准确性优势,随后分步骤讲解了深度学习环境配置、数据集准备(推荐WIDER FACE数据集)和模型训练方法。重点展示了如何将训练好的模型集成到Tkinter开发的GUI界面中,实现图片上传、人脸检测和结果可视化功能。文章提供完整的代码示例和飞书文档链接(密码:946m22&8),帮助开发者快速构建可交互的人脸识别系统,适用于安防、门禁等多种应用场景。通过该项目,读者可掌握YOLOv5的实际应用和界面集成技术。

FJN110的博客 169

bootstrap aggregating(bagging)

bootstrap是统计学习中的一种采样技术,是用原样本自身的数据抽样形成新的样本。 它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法。其核心思想和基本步骤如下: (1) 采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样。 (2) 根据抽出的样本计算给定的统计量T。 (3) 重复上述N次(一般大于1000),得到N个统计量T。...

weixin_43396435的博客 575

姿态传感器/陀螺仪之ICM-42670-P应用原理图设计

ICM-42670-P采用LGA-14封装,尺寸为2.5x3x0.76毫米,工作电压范围为1.71V至3.6V,支持I3CSM、I2C和SPI串行通信接口。其设计目标是提供高精度、低功耗和小型化的解决方案,以满足消费类和工业应用的需求。ICM-42670-P是一款由TDK InvenSense推出的高性能六轴MEMS运动追踪传感器,集成了3轴陀螺仪和3轴加速度计,适用于多种应用场景,包括可穿戴设备、游戏控制器、无人机、AR/VR设备等。

corlin6688的博客 1205

Bagging (bootstrap aggregating) - 集成方法之一

Bagging(装袋法),bootstrap aggregating(自举汇聚法) 的简称,是一个通过组合多个模型来减少泛化误差的技术。其原理是单独训练数个不同的模型,然后让多个模型在测试集的输出上投票。这是一个在机器学习中普遍应用的被称作model averaging(模型平均) 的策略。使用这种策略的技术被称作ensemble methods(集成方法)。 下面以一张图展示该方法的大致过程...

Steve Wang's blog 3538

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Bagging(Bootstrap aggregating)、随机森林(random forests)、AdaBoost

在这篇文章中,我会详细地介绍Bagging、随机森林和AdaBoost算法的实现,并比较它们之间的优缺点,并用scikit-learn分别实现了这3种算法来拟合Wine数据集。全篇文章伴随着实例,由浅入深,看过这篇文章以后,相信大家一定对ensemble的这些方法有了很清晰地了解。

踩风火轮的乌龟 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Bagging(Bootstrap Aggregating)详解-ChatGPT4o作答

Bagging 是一种通过并行训练多个基模型来提高预测性能的集成学习方法。它在高方差模型上表现优异,并且通过引入随机性和模型融合有效提升了模型的泛化能力。Bagging 的代表算法有随机森林,它广泛应用于分类和回归任务中。

qq_46215223的博客 1392

Bagging(Bootstrap Aggregating)算法详解

分类回归Bagging 是一种通过Bootstrap 采样 + 模型集成的方法,能够有效降低方差,提高泛化能力。它适用于高方差模型(如决策树),但对高偏差模型提升有限。随机森林就是 Bagging 的典型代表,应用广泛。

2501_91641025的博客 750

Bootstrap aggregating----Bagging

一、简介 Bootstrap aggregating 又称为Bagging  是一种用来增强学习算法准确度的算法,由 Leo Breiman 在1994年提出,能够用来提高不稳定算法的准确度和稳定性,通常用于统计分类和回归中,它能够减小方差并避免过拟合。基本思想是利用Bootstrap算法从训练集中有放回的抽样,得到M个训练集,利用机器学习算法获得在每个新的训练集上的结果,对于分类,对M个结

hqh45的专栏 1988

机器学习笔记:Bagging(套袋法,bootstrap aggregating)

格式驾驭不了,图片大小不会改,可以直接看我的有道笔记:http://note.youdao.com/noteshare?id=2d13d050bd683d9f3dee525a85ded041   Bagging 和Boosting的区别: 样本选择上: Bagging:训练集是有放回选取的,各轮训练集之间独立 Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权...

十里倾城 4753

Bagging(bootstrap aggregating)

在误差完全相关即 c = v 的情况下,均方误差减少到 v,所以模型平均没有任何帮助。在错误完全不相关即 c = 0 的情况下,该集成平方误差的期望仅为 1/k * v。这意味着集成平方误差的期望会随着集成规模增大而线性减小。换言之,平均上,集成至少与它的任何成员表现得一样好,并且如果成员的误差是独立的,集成将显著地比其成员表现得更好。Bagging是一种允许重复多次使用同一种模型、训练算法和目标...

weixin_40759186的博客 652

机器学习笔记(8)——集成学习之Bootstrap aggregating(Bagging)装袋算法

Bootstrap aggregating自举汇聚法 Bagging装袋法 1.概念 是一种在原始数据集上通过有放回抽样重新选出S个新数据集来训练分类器的集成技术。也就是说这些新数据集是允许重复的。 使用训练出来的分类器集合来对新样本进行分类,然后用多数投票或者对输出求均值的方法统计所有分类器的分类结果,结果最高的类别即为最终标签。为了提高模型的方差(variance, 差

icepoint的博客 1万+

【漫话机器学习系列】010.Bagging算法(Bootstrap Aggregating)

Bagging(Bootstrap Aggregating 的缩写)是一种集成学习方法,通过构建多个弱学习器(例如决策树)并将它们的结果进行平均(回归)或投票(分类),来提高模型的稳定性和准确性,减少过拟合。Bagging 是集成学习的重要组成部分,其简单高效的特点使其在多种任务中表现出色。

IT古董 1865

学习记录——集成学习 Bagging(Bootstrap Aggregating)

从原始训练集中随机抽取多个不同的训练子集(可能包含重复样本),然后针对每个子集分别训练一个基学习器。最终的预测结果是所有基学习器预测结果的平均值(回归问题)或投票表决(分类问题)。它通过构建多个基学习器(通常是相同类型的模型),并结合它们的预测结果来减少方差和提高准确性。提高稳定性:由于每个基学习器都是在不同的训练子集上训练的,因此模型更稳定。可能会影响模型的解释性:由于集成了多个模型,最终预测结果可能较难解释。降低过拟合风险:通过组合多个模型的预测结果,减少了单个模型的方差,提高了泛化能力。

m0_58979029的博客 792

C语言经典算法之Bagging(Bootstrap Aggregating)算法(伪代码)

Bagging(Bootstrap Aggregating)算法是一种集成学习方法,它通过训练多个基模型并汇总其预测结果来提高机器学习模型的稳定性和准确率。在C语言中实现一个完整的Bagging算法会涉及数据抽样、模型训练、预测以及结果整合等多个步骤。

weixin_56154577的博客 1675
上一篇: 集成学习综述
下一篇: 随机森林API的理解(sklearn.ensemble.RandomForest)
NongfuSpring-wu
博客等级 码龄9年 19粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值