机器学习与深度学习07-随机森林01
目录
- 前文回顾
- 1.随机森林的定义
- 2.随机森林中的过拟合
- 3.随机森林VS单一决策树
- 4.随机森林的随机性
前文回顾
上一篇文章链接:地址
1.随机森林的定义
随机森林(Random Forest)是一种集成学习算法,用于解决分类和回归问题。它基于决策树(Decision Trees)构建,并通过组合多个决策树来提高模型的性能和稳定性。随机森林的主要思想是通过随机选择样本和特征来构建多棵决策树,然后综合它们的预测结果来进行分类或回归。 随机森林的工作原理为
- 随机选择样本:从训练数据集中随机选择一定数量的样本(有放回抽样),这个过程称为"Bootstrap"抽样。这意味着每棵决策树的训练数据都是随机抽取的,可能包含重复的样本
- 随机选择特征:在每个决策树的节点上,随机选择一部分特征子集来进行分裂。这确保了每棵树都不会过度依赖于某些特征
- 构建多棵决策树:根据以上两个步骤,构建多棵决策树。每棵树都会根据样本和特征的随机选择来学习数据的不同方面
- 综合预测结果:对于分类问题,随机森林会采用多数投票的方式来确定最终的分类结果。对于回归问题,随机森林会取多棵树的平均预测值
这种随机性和多棵树的组合使随机森林具有很强的泛化能力和抗过拟合能力,因此通常表现出色于单个决策树。以下是随机森林的基本公式,用于分类问题的情况有,对于每棵树 t = 1 t = 1 t=1到 T T T:
- 从训练数据集中进行Bootstrap抽样,得到一个子集 D t D_t Dt
- 随机选择一部分特征进行分裂,得到决策树 T t T_t Tt
- 训练决策树 T t T_t Tt,直到达到停止条件(如达到最大深度或叶子节点中的样本数量小于某个阈值)
- 存储决策树 T t T_t Tt
最终的分类结果是通过多数投票或平均值来确定的
2.随机森林中的过拟合
随机森林通过一系列随机性机制来处理过拟合问题,这使得它在许多情况下对抗过拟合表现得非常出色,随机森林如何处理过拟合问题的详细解释
- Bootstrap抽样(随机选择样本):随机森林使用Bootstrap抽样技术从训练数据集中有放回地随机选择样本。这意味着每棵决策树的训练数据都是不同的,且可能包含重复的样本。这个过程引入了随机性,减少了模型对训练数据的敏感性,从而降低了过拟合的风险
- 随机选择特征: 在每个决策树的节点上,随机森林只考虑样本特征的子集来进行分裂。这个子集大小是可调的,通常设置为总特征数量的平方根或其他值。这种随机选择特征的方法减少了模型对某些特征的过度依赖,提高了模型的泛化能力
- 多棵决策树的组合: 随机森林不是单一决策树,而是多棵决策树的组合。通过将多棵树的预测结果进行综合,如多数投票或平均值,随机森林可以减少单个决策树的错误和过拟合风险。这是一种降低模型方差(variance)的方式
- 树的生长限制: 随机森林通常限制单棵决策树的生长,可以通过设置最大深度、叶子节点的最小样本数或分裂节点所需的最小样本数等参数来控制。这可以防止单个树过于复杂,降低了模型过拟合的可能性
- Out-of-Bag(OOB)样本: 由于Bootstrap抽样的随机性,每个决策树在训练过程中都会有一部分样本未被选择,这些未被选择的样本被称为Out-of-Bag样本。这些样本可以用来评估每棵树的性能,以及整个随机森林的性能。这种自我评估机制有助于监控模型是否出现过拟合
总的来说,随机森林通过引入随机性、组合多棵树、限制单棵树的复杂性等方式,有效地处理了过拟合问题。这使得随机森林在实际应用中表现出色,即使在高维数据和噪声数据的情况下也能够提供稳健的性能
3.随机森林VS单一决策树
-
随机森林的优势
1、降低过拟合风险:随机森林通过组合多棵决策树,每棵树的训练数据都是随机选择的,从而减少了过拟合的风险。这使得模型在训练数据上的表现更加稳定,能够更好地泛化到新数据
2、更好的泛化能力:由于随机森林综合了多个决策树的预测结果,它通常具有更好的泛化能力,对于不同类型的数据集和问题更具通用性
3、对高维数据的适应能力:随机森林在处理高维数据时表现出色,因为它可以随机选择特征子集来构建决策树,降低了维度灾难(curse of dimensionality)的影响
4、处理非线性关系:随机森林可以捕捉数据中的非线性关系,而单一决策树在处理复杂问题时可能会出现欠拟合
5、自带特征重要性评估:随机森林可以估计每个特征对模型的重要性,帮助识别哪些特征对于问题的解决最为关键
6、并行化处理:由于每棵决策树都可以独立训练,随机森林可以轻松地进行并行化处理,加速模型训练过程 -
随机森林的劣势
1、模型解释性较弱:与单一决策树相比,随机森林的模型解释性较弱。因为随机森林是多棵树的组合,模型结构较为复杂,不容易直观解释每个决策的原因
2、计算和内存需求较大:随机森林由多个决策树组成,因此需要更多的计算资源和内存来训练和存储模型。相对于单一决策树,它可能需要更多的时间和内存
3、可能不适合小样本数据集:当训练数据集非常小的时候,随机森林可能不如单一决策树表现好。因为Bootstrap抽样引入了更多的随机性,对于小样本数据,可能会导致模型的方差较大
总的来说,随机森林在许多情况下是一种强大的机器学习算法,特别适用于处理中等到大规模的数据集,并且能够有效应对过拟合问题。但在某些情况下,如需要模型解释性较强或处理非常小的数据集时,单一决策树可能更为合适。选择使用哪种方法应该根据具体问题和数据的性质来决定。
4.随机森林的随机性
- Bootstrap抽样(有放回抽样):
- 随机性体现:每次从训练数据中进行Bootstrap抽样,即有放回地随机选择样本来构建每棵树的训练数据集
- 优势:这个过程引入了样本的随机性,因为每棵树的训练数据都是不同的,有些样本可能在某些树中多次出现,而有些样本可能根本不出现。这有助于减小模型对训练数据的敏感性,降低了过拟合的风险
- 随机选择特征:
- 随机性体现:在每个决策树的节点上,随机选择一部分特征子集来进行分裂
- 优势:通过随机选择特征,随机森林减少了单棵树对某些特征的过度依赖。这有助于模型更好地捕捉数据中的不同特征和模式,提高了模型的多样性和泛化能力
- 多棵决策树的组合:
- 随机性体现:随机森林是多棵决策树的组合,每棵树都独立地训练
- 优势:通过组合多棵树的预测结果,随机森林降低了模型的方差。这意味着即使某些树过拟合了部分数据,其他树也可以提供稳健的预测,从而提高了整体模型的性能
- Out-of-Bag(OOB)样本:
- 随机性体现:由于Bootstrap抽样的随机性,每个树都有一部分数据未被选择,这些未被选择的样本用于OOB评估。
- 优势:OOB评估提供了一种内置的交叉验证方法,用于评估模型性能,而无需额外的验证集。这有助于监测模型的泛化性能,帮助识别是否出现了过拟合
- 树的生长限制:
- 随机性体现:可以通过设置树的最大深度、叶子节点的最小样本数等参数来限制单棵树的生长
- 优势:限制单棵树的生长可以防止模型变得过于复杂,减少过拟合的可能性
这些随机性机制使得随机森林能够在训练数据上表现出色,并且具有强大的泛化能力。它们有助于减小模型的方差,提高模型的稳健性,同时保持了模型的预测能力。因此,随机森林通常在许多机器学习任务中是一个强有力的选择
相关文章:
机器学习与深度学习07-随机森林01
目录 前文回顾1.随机森林的定义2.随机森林中的过拟合3.随机森林VS单一决策树4.随机森林的随机性 前文回顾 上一篇文章链接:地址 1.随机森林的定义 随机森林(Random Forest)是一种集成学习算法,用于解决分类和回归问题。它基于决…...
回归分析-非线性回归及岭回归.docx
一.题目要求1.用SPSS软件练习建立多元线性回归方程,分析数据的多重共线性,利用后退法和逐步回归法选择变量,练习用岭回归方法处理该模型数据并作比较 2.用SPSS软件练习建立模型的非线性回归方程 二.数据分析(一)题目:课本7.6 1、数据 一家大型商业银行有多家分行,近年来…...

Google AI 模式下的SEO革命:生成式搜索优化(GEO)与未来营销策略
一、搜索范式转变:从链接引导到答案交付 Google自2023年起逐步推出AI搜索功能,经历了SGE(Search Generative Experience)和Gemini阶段,最终在2025年全面上线了「AI Mode」搜索模式。与此同时,也保留了一种过…...
docker创建postgreSql带多个init的sql
好的!下面是一个完整的可运行项目结构,包含: ✅ docker-compose.yml:启动 PostgreSQL(支持 pgvector) ✅ init-db.sql:创建数据库 myapp ✅ init-schema.sql:在 myapp 中建表并初始…...
掌握 MotionLayout:交互动画开发
前言 在 Android 开发中,系统自带的属性动画(如 ObjectAnimator 和 ValueAnimator)虽然功能强大,但在复杂动画场景下,第三方动画库能提供更高效的开发体验和更丰富的效果。本文将深入解析 Lottie、MotionLayout、Andr…...

SpringBoot中缓存@Cacheable出错
SpringBoot中使用Cacheable: 错误代码: Cacheable(value "FrontAdvertiseVOList", keyGenerator "cacheKey") Override public List<FrontAdvertiseVO> getFrontAdvertiseVOList(Integer count) {return this.list(Wrappers.<Adve…...

iOS UIActivityViewController 组头处理
0x00 情形一 - (void)shareAction1 {// 当前 View 转成图片UIImage *image [self snapshotImage:self.view];NSArray *activityItems [image];UIActivityViewController *activityVC [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationAc…...
分布式电源接入配电网的自适应电流保护系统设计与实现
分布式电源接入配电网的自适应电流保护系统设计与实现 一、引言 随着可再生能源的快速发展,分布式电源(Distributed Generation, DG)大规模接入配电网,传统保护系统面临以下挑战: 潮流方向改变导致保护误动/拒动故障电流水平波动影响保护灵敏度多类型故障(单相/两相/三…...
鸿蒙版Taro 搭建开发环境
鸿蒙版Taro 搭建开发环境 一、配置鸿蒙环境 下载安装 DevEco 建议使用最新版本的 IDE,当前为 5.0.5Release 版本。 二、创建鸿蒙项目 打开 DevEco,点击右上角的 Create Project,在 Application 处选择 Empty Ability,点击 Ne…...
论对生产力决定生产关系的批判:突破决定论的桎梏
笔言: 在学生时代认为"生产力决定生产关系"很有道理,但是进入社会参与市场竞争时候,才发现这种想法太天真了,当生产力一只赔钱时候谁也不会感兴趣;当生产力产生利润,比如1%30%,100%,3…...
ESOP交易系统搭建全景指南:从合规基石到价值跃迁
第一章 重新定义ESOP:合规性与流动性的平衡艺术 1.1 ESOP的本质演进 传统认知误区:员工持股计划股权分配工具 现代定义: ESOP是企业资本运作的中枢神经系统,贯穿“激励授予→行权管理→减持流通→市值协同”全链条,需…...
GICv3电源管理
在符合GICv3体系结构的实现中,CPU接口和PE必须位于相同的电源域,但这不必与关联的Redistributor所在的电源域相同。 这意味着可能会出现PE及其CPU interface断电,而Redistributor、Distributor和its上电的情况。在这种情况下,GIC架…...

《TCP/IP 详解 卷1:协议》第3章:链路层
以太网和IEEE802局域网/城域网标准 IEEE802局域网/城域网标准 IEEE 802 是一组由 IEEE(电气与电子工程师协会)定义的局域网和城域网通信标准系列,涵盖了从物理层到链路层的多个网络技术。其中: IEEE 802.3 定义的是传统的以太网…...
centos 9/ubuntu 一次性的定时关机
方法一 # 15 表示15分钟以后自动关机 sudo shutdown -h 15方法二: sudo dnf install at -y # 晚上十点半关机 echo "shutdown -h now" | at 22:30 # 检查是否设置成功命令 atq [rootdemo-192 ~]# atq 1 Wed Jun 4 11:12:00 2025 a root # 取消定时计划…...

Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程(二)
package com.test.xulk.es.entity.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.test.xulk.es.entity.Hotel;public interface HotelMapper extends BaseMapper<Hotel> { }集成Springboot 项目里面 官方地址: Elasticsearch …...
Java自动类型转换的妙用
Java中的自动类型转换(也称为隐式类型转换)是指在不需要显式指定转换的情况下,Java编译器自动将一种数据类型转换为另一种数据类型。这种特性在编程中有许多妙用,以下是一些常见的应用场景和优点: 1. 简化代码 自动类…...

数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)
数据库管理333期 2025-06-04 数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)1 概念2 要求3 操作流程4 转移失败处理总结 数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604࿰…...

【DAY39】图像数据与显存
内容来自浙大疏锦行python打卡训练营 浙大疏锦行 知识点: 图像数据的格式:灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 作业:今日代码较少࿰…...

AI代码库问答引擎Folda-Scan
简介 什么是 Folda-Scan ? Folda-Scan 是一款革命性的智能项目问答工具, 完全在浏览器中本地运行 。它使用高级语义矢量化将您的代码库转变为对话伙伴,使代码理解和 AI 协作变得前所未有的简单和安全。其采用尖端的 Web 技术和 AI 算法构建&…...

Kafka深度技术解析:架构、原理与最佳实践
一、 消息队列的本质价值与核心特性 1.1 分布式系统的“解耦器” 异步通信模型 代码列表 graph LRA[生产者] -->|异步推送| B[(消息队列)]B -->|按需拉取| C[消费者1]B -->|按需拉取| D[消费者2] 生产者发送后立即返回,消费者以自己的节奏处理消息。典…...

基于cnn的通用图像分类项目
背景 项目上需要做一个图像分类的工程。本人希望这么一个工程可以帮助学习ai的新同学快速把代码跑起来,快速将自己的数据集投入到实战中! 代码仓库地址:imageClassifier: 图片分类器 数据处理 自己准备的分类图像,按照文件夹分…...
Kotlin-协程
文章目录 什么是协程协程的好处协程的挂起和恢复协程原理 什么是协程 协程是一种用户态的轻量级程序组件,其核心特点是通过协作式调度实现单线程内的伪并发。 协程的好处 传统的线程切换通过回调,Handler各种调度,繁琐,代码不清…...
pycharm 左右箭头 最近编辑
目录 经典界面: 快捷键 经典界面: 如果你使用的是新 UI(新版 PyCharm 默认启用的),导航按钮可能被精简了,你可以: File Settings(齿轮图标)→ UI Appearance 或 New …...

Linux环境管道通信介绍
目录 前言 一、通信的本质 二、匿名管道 1.通信资源——文件缓冲区 2.为什么叫匿名管道? 编辑 3.匿名管道的创建过程 4.pipe函数 小结 5.一些问题 1)匿名管道为什么要求父子进程将原本的读/写权限只保留一个 2)为什么一开始父进程要以读/写…...

DIC技术助力金属管材全场应变测量:高效解决方案
在石油管道、汽车排气系统、航空航天液压管路等工业场景中,金属管作为关键承力部件,其拉伸性能(如弹性极限、颈缩行为、断裂韧性)直接影响结构安全性和使用寿命。 实际应用中,选用合适的管材非常重要,通过…...
python基础day04
1.两大编程思想的异同点: 面向过程面向对象区别事物比较简单,可以用线性的思维去解决事物比较复杂,使用简单的线性思维无法解决共同点面向过程和面向对象都是解决实际问题的一种思维方式二者相辅相成,并不是对立的解决复杂问题,通…...

嵌入式学习--江协stm32day1
失踪人口回归了,stm32的学习比起51要慢一些,因为涉及插线,可能存在漏插,不牢固等问题。 相对于51直接对寄存器的设置,stm32因为是32位修改起来比较麻烦,江协课程是基于标准库的,是对封装函数进…...

湖北理元理律师事务所:债务化解中的心理重建与法律护航
专业法律顾问视角 一、债务危机的双重属性:法律问题与心理困境 在对173名债务人的调研中发现: 68%存在焦虑引发的决策障碍(如不敢接听银行电话) 42%因羞耻感隐瞒债务导致雪球效应 湖北理元理律师事务所创新采用法律-心理双轨…...
constexpr 是 C++11 引入的关键字
constexpr 是 C11 引入的关键字,用于在编译期进行常量表达式计算,从而提高程序性能和安全性。以下是其核心作用和用法: 一.作用 1编译期 计算 constexpr 变量或函数的值在编译时确定,避免运行时计算开销。例如,数组大…...

【更新中】(文档+代码)基于推荐算法和Springboot+Vue的购物商城
概要设计 本节规划和定义了Woodnet桌游电商平台的软件概要设计说明书,描述了软件的总体设计、接口设计、运行设计、系统数据库结构设计以及系统出错处理设计,从整体上说明了系统设计的结构层次、处理流程、系统用例等。 本系统是一个独立的系统&#x…...