集成学习——Bagging算法和随机森林算法

news2024/11/18 2:32:07

1、集成学习

集成学习是将多个机器学习的算法结合起来的一种方法,即实现将多个弱学习器通过组成一个整体来实现强学习的效果,俗语里:三个臭皮匠赛过一个诸葛亮。

2、Bagging算法

2.1 Bootstrap自助采样

在样本集D(样本数为m)中进行有放回的抽样,抽取数为m,则每次可能被抽取的概率为1/m,那么样本在m次采用中不被采样的概率为 ( 1 − 1 m ) m → lim ⁡ n → ∞ ( 1 − 1 m ) m → 1 e ≈ 0.368 (1-\frac{1}{m})^m →\lim\limits_{n \to \infty}(1-\frac{1}{m})^m \to \frac{1}{e} ≈ 0.368 (1m1)mnlim(1m1)me10.368对概率取极限能够得到数据集中36.8%的样本没有出现在采样数据集D1中。我们将D1作为训练集,D-D1作为测试集,这样做的好处是我们的模型都是使用m个训练样本,样本数量没有减少,但我们用于测试的样本仍然为总量的1/3,而且这些测试样本没有出现在训练集中。

2.2 Bagging算法

在这里插入图片描述

如上图所示,采用bootstrap有回放抽样选取训练集,每次抽样都被用于分类器C的训练。其中随机森林就是Bagging算法的特例,它使用随机特征子集去拟合单颗决策树。

Bagging算法的流程如下:

(1)采用Bootstrap有放回抽样,组成n个样本(n<m)的新训练集;
(2)重复(1)进行T遍,得到T个训练集 S i S_i Si
(3)在每个训练集上采用某个分类算法独立进行训练,得到T个基类分类器 C i C^i Ci
(4)那么对于每个测试样本x,利用T个分类器得到了T个预测值 c i ( x ) c_i(x) ci(x)
(5)对于每个x,采用多数投票的方式得到最终的预测结果 c ∗ ( x ) c^*(x) c(x)
在这里插入图片描述
而这个基类分类器可以是决策树,也可以是逻辑回归等基类分类器。而这种集成学习,对于稳定性不好的分类器比较实用,通过多数投票,减少了泛化误差;但对于稳定的分类器效果并不明显。其中分类问题上采用简单投票法进行汇总;而回归问题采用简单平均法取得平均值。

Bagging性能

  • 是一个高效的集成学习算法;
  • 适用性广,可以不经修改地用于多分类和回归任务;
  • 由于采用Bootstrap采用,可以将剩下的35.8%的样本作为验证集来进行泛化性能的“包外样本评估”;
  • Bagging主要关注降低方差,因此在不剪枝和神经网络等比较容易受样本扰动的学习器上的效果更明显。

3、随机森林

随机森林就是Bagging+决策树,不过随机森林不仅对训练样本进行了采用,对特征也进行了采样,这样是为了保证每个决策树之间的独立性,从而让投票结果更加准确。其中每个决策树都使用CART算法计算,不剪枝。这是因为前面进行了随机抽取样本和随机特征选取,所以不会产生过拟合的现象。
在这里插入图片描述

  • 问题1:为什么要随机抽取训练集?

不进行随机抽取,那么每棵树的训练集有可能出现重叠,那么最终的树分类结果也是一样的。

  • 问题2:为什么要有放回抽样?

没有放回则代表每棵树的训练样本是不同的,这样会让每棵树产生偏差,及每棵树的结果都是有很大差异的,这样就没有办法进行最后的投票表决。

随机森林总结

  • 分类结果更加准确
  • 处理高纬度的特征,不用进行特征选择
  • 允许数据缺失,但仍然可以维持较高的准确度
  • 学习的速度快
  • 能够筛选出特征的重要性
  • 能够进行并行计算
  • 能够检测特征之间的相互影响

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

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

相关文章

51单片机--LCD1602

LCD1602的介绍 LCD1602是一种字符型液晶显示模块&#xff0c;通常用于嵌入式系统、单片机等领域。它由LCD&#xff08;液晶显示屏&#xff09;、HD44780控制驱动主电路及其扩展驱动电路、少量电阻、电容元件等组成。 LCD1602具有以下特点和功能&#xff1a; 显示能力&#xf…

使用sftp

一、背景 新项目组前端部署方式是Build打包生成dist文件&#xff0c;交由后端部署。后来知道了vscode安装sftp前端可以自行部署。 二、实操 1、vscode安装sftp 2、 配置 ①F1 / ctrlshiftp ②命令行输入sftp -> 选择 sftp: Config ③配置信息介绍 {"name"…

liteflow overall笔记

偶然看到liteflow的介绍&#xff0c;感觉是一个local单机版本的conductor。 核心代码的注释非常好&#xff0c;在我看过的开源代码里面数一数二单元测试完备&#xff0c;要学习用法基本都可以在单元测试看到相关代码核心基于阿里的ElExpress&#xff0c;使用方式值得学习监控稍…

网络编程八股文

文章目录 tcp粘包问题&#xff1f;BIO,NIO,AIO是什么&#xff1f;零拷贝是什么&#xff1f;浏览器发出一个请求到收到响应的具体步骤&#xff1f;select, poll, epoll区别是什么&#xff1f;https是如何保证安全传输的&#xff1f;tcp的三次握手和四次挥手&#xff1a;tcp网络分…

LZ77算法理论

发布时间&#xff1a;2023-07-25 14:58:28 英文介绍文档&#xff1a;https://archive.ph/F4pg7 很短&#xff0c;看一遍10&#xff5e;20分钟应该够了。 1. 算法用到的术语&#xff1a; Input stream 要被压缩的字符序列 Character 输入流中的基本数据元素 Coding position…

RealsenseD455 + ubuntu18.04 + ROS-Melodic的使用

系统&#xff1a;Ubuntu18.04 ros: melodic 相机&#xff1a;intel RealSense D455一、安装依赖和 Realsense SDK sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver…

机器人导航(3):导航相关消息

文章目录 地图nav_msgs/MapMetaDatanav_msgs/OccupancyGrid 里程计坐标变换定位目标点与路径规划激光雷达相机深度图像转激光数据depthimage_to_laserscan简介depthimage_to_laserscan节点说明depthimage_to_laserscan使用 地图 地图相关的消息主要有两个: nav_msgs/MapMetaD…

【雕爷学编程】Arduino动手做(171)---micro:bit 开发板

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#xff0c;这…

“VCMessage”任务意外失败

从网上查到很多都是说设置这个位置&#xff0c;但是我的已经是对的&#xff0c;还是出现 “VCMessage”任务意外失败这个错误。 又查到一个人说解决方法是更正OutputPath或从父级继承&#xff1a;右键单击项目,然后转到"属性">"链接器">"常规&q…

开源项目注意事项

fork项目后&#xff0c;记得另外开启一个分支然后在新分支上进行开发&#xff0c;push到仓库后从分支往原项目提交。 否则会出现Partially verified&#xff08;导致提交pr后auto-merge失败&#xff09; 注意git提交操作 https://blog.csdn.net/sonichenn/article/details/13…

matplotlib从起点出发(3)_Tutorial_3_Image

1 图像教程 matplotlib可以简单地处理并显示图像&#xff0c;当然&#xff0c;它不是一个专业的图像处理库&#xff0c;所以也不要拿它来与opencv进行比较。 2 启动命令 首先&#xff0c;让我们启动IPython。它是对标准python提示符的最出色的增强&#xff0c;它与matplotli…

OpenHarmony与HarmonyOS联系与区别

目录 1. 背景 2.OpenHarmony 3.HarmonyOS 4.鸿蒙生态 5.OpenHarmony与HarmonyOS的技术上实现区别 1.语言支持 2.SDK 的不同 3.运行调测方式不同 4.对APK的兼容性不同 5.包含关系 6.调试命令 6.何时选择OpenHarmony或是HarmonyOS&#xff1f; 1. 背景 开篇就说“关于…

企业数字化转型中容易出现哪些误区?

对信息化和数字化的投入产出认识有误 在和一些从事企业信息化数字化建设的朋友的沟通中&#xff0c;发现很多企业老板对信息化和数字化投入产出认知上确实有偏差&#xff0c;他们总觉得投入一部分&#xff0c;就得有相应的产出&#xff0c;在他们心里信息化的投入产出如下图曲线…

强化学习SAC算法对数概率公式推导

强化学习 SAC算法 对数概率推导 先上原论文&#xff1a; 首先对公式 ( 20 ) (20) (20) 做推导。 公式 ( 20 ) (20) (20) 的数据流应该是这样的&#xff1a; s → π ( u ∣ s ) → u → a tanh ⁡ ( u ) → a \mathbf{s}\rightarrow \pi(\mathbf{u}|\mathbf{s}) \rightar…

Vue3标签(Tag)

APIs 参数说明类型默认值必传closable标签是否可以关闭booleanfalsefalsecolor标签颜色&#xff0c;预置多种常用颜色&#xff1a;success, processing, error, warn, pink, red, orange, green, cyan, blue, purplestring‘’falseicon设置图标string | slot‘’false Event…

【深度学习】【Image Inpainting】Generative Image Inpainting with Contextual Attention

Generative Image Inpainting with Contextual Attention DeepFillv1 (CVPR’2018) 论文&#xff1a;https://arxiv.org/abs/1801.07892 论文代码&#xff1a;https://github.com/JiahuiYu/generative_inpainting 论文摘录 文章目录 效果一览摘要介绍论文贡献相关工作Image…

MySQL数据备份与恢复练习

目录 1.创建student和score表 2.为student表和score表增加记录 3.备份数据库school到/backup目录 4.备份MySQL数据库为带删除表的格式&#xff0c;能够让该备份覆盖已有数据库而不需要手动删除原有数据库 5.直接将MySQL数据库压缩备份 6.备份MySQL数据库某个(些)表。此例备…

『Python学习笔记』Python代码打包成pip包(可pip install)|查看安装torch、cuda和cudnn版本号

Python代码打包成pip包(可pip install)|查看安装torch、cuda和cudnn版本号 文章目录 一. pip包的好处二. 简单小例子2.1. 创建Python包2.2. 构建Python包2.3. 上传到PyPI2.4. pip安装测试 三. CLIP多模态模型相关例子3.1. Chinese-CLIP例子3.2. CLIP-ONNX例子3.3. 问题1和问题…

vue使用driver.js完成页面引导的功能

需求&#xff1a;用户首次进入的时候肯定不知道一些功能是干什么在哪里&#xff0c;之后给用户一个页面引导&#xff0c;教他怎么做。 点击插件driver.js官方文档 效果&#xff1a; 1.下载driverjs 我默认下载的是最新版 "driver.js": "^1.0.5",&#x…

MySQL 高级SQL语句(一)

目录 一、高级SQL语句&#xff08;进阶查询&#xff09; 1.1 select 1.2 distinct 1.3 where 1.4 and 和 or 1.5 in 1.6 between 1.7 通配符 1.8 like 1.9 order by 一、高级SQL语句&#xff08;进阶查询&#xff09; 先准备2个表 一个location表&#xff1a; use m…