机器学习常见知识点 1:Baggin集成学习技术和随机森林
文章目录
- 1、集成学习
- a.Bagging
- Bagging的工作原理
- 1. 自助采样(Bootstrap Sampling)
- 2. 训练多个基学习器
- 3. 聚合预测
- Bagging的优点
- Bagging的缺点
- 应用场景
- b.Boosting
- 2、决策树
- 3、随机森林
- 随机森林的核心概念
- 1. 集成学习
- 2. 决策树
- 构建随机森林的步骤
- 1. 自助采样(Bootstrap sampling)
- 2. 训练多个决策树
- 3. 聚合预测
- 随机森林的随机性的两个体现
- 随机森林的优势
记忆名词:
Bagging、自助采样
随机森林、基模型、集成学习、特征随机性
1、集成学习
集成学习是一种机器学习范式,它通过构建并组合多个学习器来提高预测性能。集成学习中最主要和最常用的两种技术是 Bagging 和 Boosting。不过,除了这两种,还有另一种较为常见的集成方法称为 Stacking。下面对这三种主要的集成学习技术的区别进行简要介绍:
主要区别:
- Bagging:独立并行地训练每个基模型,并且每个模型都得到同等的权重。目标是减少方差,提高稳定性。这些基学习器通常是同一种类型的机器学习算法,如决策树是Bagging中最常用的基学习器。
- Boosting:顺序训练每个基模型,每个模型学习前一个模型的残差。目标是减少偏差,提高预测的准确性。
- Stacking:利用不同模型的多样性,通过一个高层模型来整合各个基模型的输出。目标是利用不同模型的优势,提高整体性能。
在实际应用中,选择哪一种集成技术取决于特定任务的需求、数据特性以及所追求的性能指标。
a.Bagging
Bagging(自助聚合) 是一种集成学习技术,用于提高机器学习算法的稳定性和准确性,尤其是对于决策树模型。全称为“Bootstrap Aggregating”,Bagging通过组合多个模型的预测结果来减少方差,通常能有效防止过拟合。
Bagging的工作原理
1. 自助采样(Bootstrap Sampling)
Bagging的核心是自助采样,这是一种随机采样技术。从原始数据集中随机选择样本,允许重复,即同一个样本可以被选中多次。这样,每次采样都能生成一个大小等于原数据集的新数据集,但由于有放回的采样方式,这些新数据集彼此之间会有所不同。
- 相当于对每个基模型都有一个原数据集大小的数据集,这个数据集是在原数据集中有放回地随机抽取的。每个基模型对原数据集有不同视角,减少了过拟合的现象。
2. 训练多个基学习器
使用自助采样得到的每个独立的数据子集训练一个基学习器。这些基学习器通常是同一种类型的机器学习算法,如决策树是Bagging中最常用的基学习器。
3. 聚合预测
当所有的基学习器都被训练完成后,它们的预测将被组合起来形成最终的预测结果。对于分类问题,最常用的聚合方法是投票机制(多数投票);对于回归问题,则通常采用平均预测。
Bagging的优点
- 减少方差:通过在不同的数据子集上训练,并聚合多个模型的预测,Bagging能显著减少预测的方差,增强模型的泛化能力。
- 避免过拟合:相较于单个模型,Bagging的集成方法能更好地避免过拟合问题。
- 并行化:由于每个基模型的训练是独立的,Bagging方法非常适合并行处理,提高训练效率。
Bagging的缺点
- 增加计算负担:需要训练多个基学习器,对计算资源的需求较高。
- 模型解释性降低:虽然单个决策树等基学习器容易理解,但整个Bagging模型由于涉及多个基学习器,因此整体解释性不如单个模型。
应用场景
Bagging是随机森林的基础,也可以用于其他类型的模型。除了决策树外,它也可以用于神经网络、线性回归等多种机器学习算法中,尤其是那些倾向于对训练数据过拟合的算法。
总之,Bagging是一个强大的集成技术,能有效提升模型在各种数据集上的表现,尤其是在处理那些具有高方差的复杂数据集时。
b.Boosting
将在讲述XGB和LGB时进行解释。
2、决策树
看纯文字的话,决策树这块是最难理解的,因此可以结合其他资料
花哩花哩:【五分钟机器学习】可视化的决策过程:决策树 Decision Tree
机器学习常见知识点 2:决策树
3、随机森林
哔哩哔哩:【五分钟机器学习】随机森林(RandomForest):看我以弱搏强
随机森林是一种流行且强大的机器学习方法,用于分类和回归任务。它属于集成学习领域,具体来说是基于决策树的Bagging(自助聚合)技术。随机森林通过构建多个决策树并结合它们的预测结果来提高整体模型的准确性和鲁棒性。
- 根据自助聚合集成学习方法(Bagging),随机森林就相当于是Bagging方法中,基模型是决策树的Bagging方法。不过值得注意的是,随机森林对决策树实现的不同之处
随机森林的核心概念
1. 集成学习
随机森林基于集成学习原理,即将多个学习器结合起来,以期望得到比单一模型更好的预测效果。集成方法通常比单一模型更稳健,因为它们汇集了多个模型的决策,从而减少了过拟合的风险。
2. 决策树
随机森林的基本构件是决策树,这是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,而每个叶节点代表一种类别(在分类问题中)或一个连续值(在回归问题中)。决策树容易理解和实现,但单独使用时容易过拟合。
构建随机森林的步骤
先设置超参数,即多少棵树,分几层
1. 自助采样(Bootstrap sampling)
随机森林中的每个决策树都是通过从原始训练数据集中进行随机有放回抽样(即自助采样)来构建的子集。这意味着同一数据点可以在同一个树的训练数据中多次出现。
2. 训练多个决策树
使用自助采样得到的每个子集训练一个决策树。在构建这些决策树时,随机森林引入了另一个随机性层次:在每个分裂点,不是查看所有特征以找到最佳分裂,而是随机选择特征的一个子集,并基于这个子集找到最佳分裂。这一策略被称为特征随机性(feature bagging)。
3. 聚合预测
一旦所有决策树都被训练完成,它们的预测将被组合起来形成模型的最终输出。在分类任务中,这通常通过多数投票机制完成(即森林中的大多数树选择的类别成为最终预测)。在回归任务中,通常取所有树的预测输出的平均值。
随机森林的随机性的两个体现
- 自助采样(数据级的随机性):自助采样来为每棵树生成不同的训练子集。
- 特征随机性(特征级的随机性):在进行每次分裂时,不是从所有特征中选择最优分裂特征,而是从随机选定的特征子集中选择最优分裂特征。
随机森林的优势
- 准确性高:通过结合多个决策树的预测,随机森林通常能达到很高的准确率。
- 对于过拟合的鲁棒性:相对于单个决策树,随机森林更不容易过拟合。
- 可用于特征选择:随机森林能够提供关于特征重要性的洞见,这对于理解数据中哪些特征是影响结果的关键因素非常有用。
- 灵活性:能处理分类和回归任务,同时不需要特征缩放,可以很好地处理二元特征、连续特征以及缺失数据。
随机森林是一种基于决策树的Bagging集成学习技术,一般情况下它通过自助采样为每颗决策树选择样本空间,在训练每颗决策树的时候,它也具有随机性,即它随机选择特征子空间,在这个特征子空间里使用基尼不准度的方法选取最优特征进行决策树节点分裂。
- 总的来说随机森林的随机性体现在两个方面,第一个是在样本空间的选择上,第二个是在决策树分裂时特征空间的选择上
扩展一下:
袋外误差(OOB)估计:由于自助采样,某些实例可能不会被包括在某棵树的训练集中。这些袋外实例可以用作验证集,提供模型性能的无偏估计。
相关文章:
机器学习常见知识点 1:Baggin集成学习技术和随机森林
文章目录 1、集成学习a.BaggingBagging的工作原理1. 自助采样(Bootstrap Sampling)2. 训练多个基学习器3. 聚合预测 Bagging的优点Bagging的缺点应用场景 b.Boosting 2、决策树3、随机森林随机森林的核心概念1. 集成学习2. 决策树 构建随机森林的步骤1. …...
容器(Docker)安装
centos安装Docker sudo yum remove docker* sudo yum install -y yum-utils#配置docker的yum地址 sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装指定版本 - 可以根据实际安装版本 sudo yum install -y docke…...
前端JS必用工具【js-tool-big-box】学习,获取当前浏览器向上滚动还是向下滚动,获取当前距离顶部和底部的距离
这一小节,我们说一下 js-tool-big-box 添加的最新工具方法,在日常前端开发工作中,如果网页很长,我们就需要获取当前浏览器是在向上滚动,还是向下滚动。如果向上滚动,滚动到0的时候呢,需要做一些…...
【python】flask 框架
python flask 框架 flask是一个轻量级的python后端框架 (Django, tornado, flask) 官网:欢迎来到 Flask 的世界 — Flask中文文档(3.0.x) 安装:pip install Flask -i https://pypi.douban.com 常识: http,默认端口号为80; https,默认端口号…...
Word中插入Mathtype右编号,调整公式与编号的位置
当你已经将mathtype内置于word后,可以使用右编号快速插入公式 但是往往会出现公式和编号出现的位置或之间的距离不合适 比如我在双栏下插入公式,会发现插入的公式与编号是适用于单栏的 解决办法: 开始->样式->MTDisplayLquation -&g…...
基于【Lama Cleaner】一键秒去水印,轻松移除不想要的内容!
一、项目背景 革命性的AI图像编辑技术,让您的图片焕然一新!无论水印、logo、不想要的人物或物体,都能被神奇地移除,只留下纯净的画面。操作简单,效果出众,给你全新的视觉体验。开启图像编辑新纪元,尽在掌控! 利用去水印开源工具Lama Cleaner对照片中"杂质"进行去除…...
VMware Workstation Ubuntu server 24 (Linux) 磁盘扩容 挂载硬盘
1 Ubuntu server 关机,新增加磁盘 2 启动ubuntu虚拟机,分区和挂载磁盘 sudo fdisk /dev/sdb #查看磁盘UUID sudo blkid #创建挂载目录 sudo mkdir /mnt/data # sudo vi /etc/fstab /dev/disk/by-uuid/0b440ed0-b28b-4756-beeb-10c585e3d101 /mnt/data ext4 defaults 0 1 #加…...
表的设计与查询
目录 一、表的设计 1.第一范式(一对一) 定义: 示例: 2.第二范式(一对多) 定义: 要求: 示例: 3.第三范式(多对多) 定义: 要求…...
【react】如何合理使用useEffect
useEffect 是 React Hooks API 的一部分,它允许你在函数组件中执行副作用操作,比如数据获取、订阅或者手动更改 DOM。合理使用 useEffect 可以帮助你管理组件的生命周期行为,同时避免不必要的渲染和性能问题。以下是一些关于如何合理使用 useEffect 的建议: 明确依赖项: 当…...
计算机专业英语Computer English
计算机专业英语 Computer English 高等学校计算机英语教材 Contents 目录 Part One Computer hardware and software 计算机硬件和软件----------盖金曙 生家峰 Unit 1 the History of Computers计算机的历史 Unit 2 Computer System计算机系统 Unit 3 Di…...
目前比较好用的LabVIEW架构及其选择
LabVIEW提供了多种架构供开发者选择,以满足不同类型项目的需求。选择合适的架构不仅可以提高开发效率,还能确保项目的稳定性和可维护性。本文将介绍几种常用的LabVIEW架构,并根据不同项目需求和个人习惯提供选择建议。 常用LabVIEW架构 1. …...
CSS之块浮动
在盒子模型的基础上就可以对网页进行设计 不知道盒子模型的可以看前面关于盒子模型的内容 而普通的网页设计具有一定的原始规律,这个原始规律就是文档流 文档流 标签在网页二维平面内默认的一种排序方式,块级标签不管怎么设置都会占一行,而同一行不能放置两个块级标签 行级…...
探索GPT-4V在学术领域的应用——无需编程即可阅读和理解科学论文
1. 概述 论文地址:https://arxiv.org/pdf/2312.05468.pdf 随着人工智能潜力的不断扩大,人工智能(AI)在化学领域的应用也在迅速发展。特别是大规模语言模型的出现,极大地扩展了人工智能在化学研究中的作用。由于这些模…...
耐用充电宝有哪些?优质充电宝到底选哪个?良心推荐!
在电量即生产力的现今时代,如何为移动设备寻找一位最佳的伴侣呢?一款耐用、优质的充电宝无疑是你的不二之选。今天我们将带您揭开市场隐藏的一面,揭示哪些充电宝品牌真正代表了耐用与品质的标杆。让我们一起深入了解并选购最适合自己的充电宝…...
何为屎山代码?
在编程界,有一种代码被称为"屎山代码"。这并非指某种编程语言或方法,而是对那些庞大而复杂的项目的一种形象称呼。屎山代码,也被称为"祖传代码",是历史遗留问题,是前人留给我们的"宝藏"…...
基于esp8266_点灯blinker_智能家居
文章目录 一 实现思路1 项目简介2 项目构成3 代码实现4 外壳部分 二 效果展示UI图片 一 实现思路 摘要:esp8266,mixly,点灯blinker,物联网,智能家居,3donecut 1 项目简介 1 项目效果 通过手机blinker app…...
Web前端开发交流群:深度探索、实践与创新的集结地
Web前端开发交流群:深度探索、实践与创新的集结地 在数字时代的浪潮中,Web前端开发扮演着举足轻重的角色。为了促进前端技术的交流与发展,Web前端开发交流群应运而生,成为众多开发者学习、分享、创新的集结地。本文将从四个方面、…...
苹果AI一夜颠覆所有,Siri史诗级进化,内挂GPT-4o
苹果AI一夜颠覆所有,Siri史诗级进化,内挂GPT-4o 刚刚,苹果AI,正式交卷! 今天,苹果构建了一个全新AI帝国——个人化智能系统Apple Intelligence诞生,智能助手Siri迎来诞生13年以来的史诗级进化…...
量子计算的奥秘与魅力:开启未来科技的钥匙(详解)
目录 一、量子计算的基本概念 二、量子计算的基本原理 1.量子叠加态与相位态 一、概念 二、量子叠加态 定义与原理 特性与影响 应用领域 三、量子相位态 定义与原理 特性与影响 应用领域 2.量子门操作 一、概念 二、量子门操作的基本概念 三、常见的量子门操作…...
redis 主从同步时,是同步主节点的缓存积压区的数据,还是同步主节点的aof文件
Redis 的主从同步(replication)是同步主节点的数据到从节点上,但它既不是直接同步 AOF 文件,也不是同步缓存积压区。 当一个 Redis 从节点启动并连接到主节点时,会发生以下步骤: 同步数据集:从…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
