机器学习---bagging与随机森林

news2024/9/29 11:36:41

1. bagging算法

集成学习有两个流派:一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。另一种是

bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合。

Bagging的弱学习器之间的确没有boosting那样的联系,是“随机采样”。

随机采样(bootsrap)就是从训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本

。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于Bagging算法,一般会随机

采集和训练集样本数一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容

不同。如果我们对有m个样本的训练集T 随机采样,则由于随机性,T个采样集各不相同。

对于一个样本,它在某一次含 m 样本的训练集的随机采样中,每次被采集到的概率1/m

被采集到的概率为 1-1/m。如果 m 次采样都没有被采集中的概率是 [(1-1/m)]^m。当 m→∞,[(1-

1/m)]^m→1/e  ≈"0.368"也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据

没有被采样集采集中。对于这部分大约36.8%的数据没有被采样到,我们常常称之为袋外数据(Out

Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。

Bagging算法对于弱学习器没有限制,最常用的是决策树和神经网络。

Bagging结合策略:分类问题,通常使用简单投票法,得到最多票数的类别或者类别之一为最终的

模型输出。回归问题,通常使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最

终的模型输出。

Bagging方差与偏差:Bagging每次都进行采样来训练模型。因此泛化能力很强,对于降低模型的

方差很有作用。对于训练集的拟合程度差一些,模型的偏倚会大一些。

1.2 bagging算法流程

输入:样本集D={(x_1,y_1 ),(x_2,y_2 ),…,(x_m,y_m)} ,弱学习器算法ξ

输出:强分类器f(x)

过程:1对于t=1,2,…,T:

               a)对训练集进行 t 次随机采样,共采集 m,得到包含 m样本的采样D_t

               b)用采样集 D_t  训练第 t弱学习G_t (x)=ξ(D_t)

2) 如果是分类算法预测,T弱学习器投出最多票数的类别或者类别之一为最终类别。如果是

回归算法,T 弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

3. 随机森林

随机森林(Random Forest,以下简称RF)Bagging算法的进化版,RF使用了CART决策树作为弱学

习器,RF改进了CART决策树的构建过程:普通的决策树,在节点上所有的n个样本特征中选择一

个最优的特征来做决策树的左右子树划分,RF通过随机选择节点上的一部分样本特征,这个数字

小于n,假设n_sub然后在这些随机选择n_sub样本特征中,选择一个最优的特征来做决策

树的左右子树划分,这样进一步增强了模型的泛化能力。

随机森林算法流程:

输入:样本集D={(x_1,y_1 ),(x_2,y_2 ),…,(x_m,y_m)} ,弱学习器算法ξ,弱分类器迭代次数 T

输出:强分类器f(x)

过程:1对于t=1,2,…,T:

                a)对训练集进行 t 次随机采样,共采集 m,得到包含 m样本的采样D_t

                b)用采样集 D_t  训练第 t决策树模型G_t (x)=ξ(D_t),训练决策树模型的节点的时,在

节点上所有的样本特征中选择一部分样本特征, 在这些随机选择的部分样本特征中选择一个最优

的特征来做决策树的左右子树划分。

2) 如果是分类算法预测,则 T弱学习器投出最多票数的类别或者类别之一为最终类别。如果是

回归算法,T 弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

RF在实际应用中的良好特性,基于RF,有很多变种算法,应用也很广泛,不光可以用于分类回

归,还可以用于特征转换,异常点检测等

extra trees是RF的变种, 原理和RF类似,区别

1) 对于每个决策树的训练集,RF采用的是随机采样bootstrap来选择采样集作为每个决策树的训

练集,而extra trees一般不采用随机采样,即每个决策树采用原始训练集。

2) 在选定了划分特征后,RF的决策树会基于基尼系数、均方差之类的原则,选择一个最优的特

征值划分点,这和传统的决策树相同。extra trees比较激进,会随机的选择一个特征值来划分决

策树。

从第二点可以看出,由于随机选择了特征值的划分点位,而不是最优点位,这样会导致生成的决策

树的规模一般会大于RF所生成的决策树。也就是说,模型的方差相对于RF进一步减少,但是偏倚

相对于RF进一步增大。在某些时候,extra trees的泛化能力比RF更好。

Totally Random Trees Embedding(TRTE)是一种非监督学习的数据转化方法。它将低维的数据集

映射到高维,从而让映射到高维的数据更好的运用于分类回归模型。我们知道,在支持向量机中运

用了核方法来将低维的数据集映射到高维,此处TRTE提供了另外一种方法

TRTE在数据转化的过程也使用了类似于RF的方法,建立T个决策树来拟合数据。当决策树建立完

毕以后,数据集里的每个数据在T个决策树中叶子节点的位置也定下来了。比如我们有3颗决策

树,每个决策树有5个叶子节点,某个数据特征x划分到第一个决策树的第2个叶子节点,第二个决

策树的第3个叶子节点,第三个决策树的第5个叶子节点。则x映射后的特征编码为(0,1,0,0,0, 0,0,1,

0,0, 0,0,0,0,1),15维的高维特征。这里特征维度之间加上空格是为了强调三颗决策树各自的子

编码。映射到高维特征后,可以继续使用监督学习的各种分类回归算法了。

Isolation Forest(IForest)是一种异常点检测的方法,使用了类似于RF的方法来检测异常点。对

于在T个决策树的样本集,IForest也会对训练集进行随机采样,但是采样个数不需要和RF一样,对

RF,需要采样到采样集样本个数等于训练集个数。但是IForest不需要采样这么多,一般来说,

采样个数要远远小于训练集个数?为什么呢?因为我们的目的是异常点检测,只需要部分的样本我

一般就可以将异常点区别出来了。

对于每一个决策树的建立, IForest采用随机选择一个划分特征,对划分特征随机选择一个划分阈

值。这点也和RF不同。另外,IForest一般会选择一个比较小的最大决策树深度max_depth,原因同

样本采集,用少量的异常点检测一般不需要这么大规模的决策树。

对于异常点的判断,则是将测试样本点 x 拟合到T决策树。计算在每颗决策树上该样本的叶子节

点的深度h_t (x) 。从而可以计算出平均高度h(x)此时我们用下面的公式计算样本点 x 的异常概

率:,•其中,m为样本个数,c(m) 的表达式为:

 ζ为欧拉常数s(x,m)的取值范围是[0,1],取值越接近于1,则是异常点的概率也越大。

RF算法作为一个可以高度并行化的算法,RF在大数据大有可为。 这里也对常规的随机森林算法的

优缺点做一个总结。RF的主要优点有:

①训练可以高度并行化,对于大数据时代的大样本训练速度有优势。

②由于可以随机选择决策树节点划分特征,这样在样本特征维度很高时,仍然能高效训练模型。

③在训练后,可以给出各个特征对于输出的重要性

④由于采用了随机采样,训练出的模型的方差小,泛化能力强

⑤相对于Boosting系列的AdaboostGBDTRF实现比较简单

⑥对部分特征缺失不敏感。

RF的主要缺点有

①在某些噪音比较大的样本集上,RF模型容易陷入过拟合

②取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。

 

 

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

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

相关文章

EasyExcel模板导出(行和列自动合并)

1.需求背景: ①需要从第三方获取数据,第三方接口有两个参数,开始时间和结束时间 ②获取回来的数据并没有入库,所以不能通过数据库将数据归类统计,excel合并大概的流程是判断上一行或者左右相邻列是否相同,然后进行合并,所以不能是零散的数据且客户要求每一个自治区和每一个航站…

ios备忘录怎么导入华为 方法介绍

作为一个常常需要在不同设备间切换的人,我深知备忘录的重要性。那些突如其来的灵感、重要的会议提醒、甚至是生活中的琐碎小事,我们都习惯性地记录在备忘录里。但当我决定从iPhone转向华为时,一个问题困扰了我:如何将那些珍贵的备…

Unity学习笔记(零基础到就业)|Chapter01:C#入门

Unity学习笔记(零基础到就业)|Chapter01:C#入门 前言一、控制台输入输出语句二、初识变量1.一些好用的tips2.变量声明的固定写法3.变量类型 三、变量的本质1.变量的存储空间2.变量的本质:2进制 四、变量的命名规范1.必须遵守的规则…

EasyExcel合并相同内容单元格及动态标题功能的实现

一、最初版本 导出的结果: 对应实体类代码: import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentLoopMerge; import com.al…

qt-C++笔记之使用QLabel和QPushButton实现一个bool状态的指示灯

qt-C笔记之使用QLabel和QPushButton实现一个bool状态的指示灯 code review! 文章目录 qt-C笔记之使用QLabel和QPushButton实现一个bool状态的指示灯1.QPushButton实现2.QLabel实现2.QLabel实现-对错符号 1.QPushButton实现 运行 代码 #include <QtWidgets>class Ind…

Spring Boot + MinIO 实现文件切片极速上传技术

文章目录 1. 引言2. 文件切片上传简介3. 技术选型3.1 Spring Boot3.2 MinIO 4. 搭建Spring Boot项目5. 集成MinIO5.1 配置MinIO连接信息5.2 MinIO配置类 6. 文件切片上传实现6.1 控制器层6.2 服务层6.3 文件切片上传逻辑 7. 文件合并逻辑8. 页面展示9. 性能优化与拓展9.1 性能优…

ros2机器人在gazebo中移动方案

原文连接Gazebo - Docs: Moving the robot (gazebosim.org) 很重要的地方&#xff1a;使用虚拟机运行Ubuntu的时候&#xff0c;需要关闭”加速3D图形“的那个选项&#xff0c;否则gazebo无法正常显示。 Moving the robot&#xff08;使用命令移动机器人示例&#xff09; In t…

maven 项目导入异常问题

问题如下 一、 tomcat正再运行的包是哪一个 不同构建、打包情况下分别运行 out\artifacts下 当直接去Project Structure下去构建artifacts 后&#xff0c;运行tomcat 则会在out下target下 reimport项目后,则会在artifacts自动生成部署包。删除tomcat之前deployment 下的包(同…

一种基于外观-运动语义表示一致性的视频异常检测框架 论文阅读

A VIDEO ANOMALY DETECTION FRAMEWORK BASED ON APPEARANCE-MOTION SEMANTICS REPRESENTATION CONSISTENCY 论文阅读 ABSTRACT1. INTRODUCTION2. PROPOSED METHOD3. EXPERIMENTAL RESULTS4. CONCLUSION阅读总结&#xff1a; 论文标题&#xff1a;A VIDEO ANOMALY DETECTION FRA…

线上环境如何正确配置 Django 的 DEBUG?

Author&#xff1a;rab Django Version&#xff1a;3.2 Python Version&#xff1a;3.9 目录 前言一、DEBUG True二、DEBUG False三、页面异常解决总结 前言 由于最近在学习 Django 的知识&#xff0c;于是尝试开发了一套 Blog 系统&#xff0c;在本地测试时是页面显示没问题…

数据智慧:如何利用可视化提升效率

数据可视化是一项强大的工具&#xff0c;能够显著提高工作效率和决策的准确性。下面我就以可视化从业者的角度&#xff0c;简单谈谈数据可视化是如何助力效率提升的。 直观理解复杂数据 数据可视化将抽象的数据转化为图表、图形或仪表盘&#xff0c;使数据更易于理解。这种直观…

智能优化算法应用:基于瞬态优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于瞬态优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于瞬态优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.瞬态优化算法4.实验参数设定5.算法结果6.…

中小型企业怎么选SD-WAN?

随着网络技术的发展&#xff0c;SD-WAN作为一种高效灵活的网络连接被越来越多的企业选用。在SD-WAN的组网过程中&#xff0c;中小型企业需要怎么做&#xff0c;以确保SD-WAN的成功实施&#xff1f;本文将详细介绍中小型企业在SD-WAN组网时需要考虑的关键因素&#xff0c;助力企…

IDEA shorten command line介绍和JAR manifest 导致mybatis找不到接口类处理

如果类路径太长&#xff0c;或者有许多VM参数&#xff0c;程序就无法启动。原因是大多数操作系统都有命令行长度限制。在这种情况下&#xff0c;IntelliJIDEA将试图缩短类路径。最好选中 classpath file模式。 shorten command line 选项提供三种选项缩短类路径。 none&#x…

node.js mongoose中间件(middleware)

目录 简介 定义模型 注册中间件 创建doc实例&#xff0c;并进行增删改查 方法名和注册的中间件名相匹配 执行结果 分析 错误处理中间件 手动抛出错误 注意点 简介 在mongoose中&#xff0c;中间件是一种允许在执行数据库操作前&#xff08;pre&#xff09;或后&…

机器学习---聚类(原型聚类、密度聚类、层次聚类)

1. 原型聚类 原型聚类也称为“基于原型的聚类” (prototype-based clustering)&#xff0c;此类算法假设聚类结构能通过一 组原型刻画。算法过程&#xff1a;通常情况下&#xff0c;算法先对原型进行初始化&#xff0c;再对原型进行迭代更新求解。著 名的原型聚类算法&#…

SQL进阶理论篇(十四):CBO优化器是如何计算代价的?

文章目录 简介能调整的代价模型的参数有哪些&#xff1f;mysql.server_costmysql.engine_cost 如何修改这些代价参数&#xff1f;代价模型具体是如何计算的参考文献 简介 大部分RDBMS都支持基于代价的优化器CBO&#xff0c;但其实CBO仍然存在缺陷&#xff08;比如参数配置的不…

OpenAI 疑似正在进行 GPT-4.5 灰度测试!

‍ 大家好&#xff0c;我是二狗。 今天&#xff0c;有网友爆料OpenAI疑似正在进行GPT-4.5灰度测试&#xff01; 当网友询问ChatGPT API调用查询模型的确切名称是什么时&#xff1f; ChatGPT的回答竟然是 gpt-4.5-turbo。 也有网友测试之后发现仍然是GPT-4模型。 这是有网友指…

解决腾讯云CentOS 6硬盘空间不足问题:从快照到数据迁移

引言&#xff1a; 随着数据的不断增加&#xff0c;服务器硬盘空间不足变成了许多运维人员必须面对的问题。此主机运行了httpd&#xff08;apache服务&#xff09;&#xff0c;提供对外web访问服务,web资源挂载在**/data/wwwroot目录下,http日志存放在/data/wwwlogs目录下&…

【MATLAB源码-第101期】基于matlab的蝙蝠优化算BA)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蝙蝠算法&#xff08;BA&#xff09;是一种基于群体智能的优化算法&#xff0c;灵感来源于蝙蝠捕食时的回声定位行为。这种算法模拟蝙蝠使用回声定位来探测猎物、避开障碍物的能力。在蝙蝠算法中&#xff0c;每只虚拟蝙蝠代表…