Bagging: 数量,而不是质量。
由 AI 生成:过度简化的树、引导聚合、集成方法、弱学习器、减少方差
集成方法 — 数量,而不是质量
一、说明
机器学习中的集成方法是指组合多个模型以提高预测性能的技术。集成方法背后的基本思想是聚合多个基础模型(通常称为弱学习器)的预测,以生成通常比任何单个模型更准确、更稳健的最终预测。一般而言,我们通常遵循质量胜于数量的原则。然而,在这种情况下,事实证明相反的原理同样有效。
二、何为集成方法
集成方法通常分为两类:
- Bagging:
这种方法涉及在训练数据的不同子集上训练同一基础学习算法的多个实例。集成中的每个模型都独立学习,然后通常通过平均或投票来组合它们的预测,以做出最终预测。 - 提升:
提升的工作原理是按顺序训练一系列较弱的学习器,其中每个后续模型都侧重于前一个模型难以处理的示例。最终预测通常是每个弱学习器所做预测的加权总和。
常见的集成方法包括 Random Forest、AdaBoost、Gradient Boosting Machines 或 Extreme Gradient Boosting。这些方法由于能够提高预测准确性和泛化性能而广泛用于各种机器学习任务。
在本文中,我们将仔细研究第一种方法,即 bagging。
三、什么是装袋?— 简短介绍
装袋 (Bootstrap aggregating) 是机器学习中的一种技术,在这种技术中,我们创建模型的多个副本,并在训练数据的不同子集上训练每个副本。这些子集是通过随机选择带有替换的样本来创建的(这就是 “bootstrap” 部分的用武之地)。训练每个模型后,它们的预测以某种方式组合起来,以做出最终预测。
Bagging 通过对多个模型进行平均或投票来帮助减少预测的方差,与单独使用单个模型相比,可以获得更稳定、更准确的预测。
想象一下,您正在尝试猜测罐子中的糖果数量。如果你只问一个朋友猜,他们可能会差很多。但是,如果你问几个朋友,每个朋友都有不同的观点和猜测方式,然后你平均他们的猜测,你可能会得到一个更准确的估计。
四、如何减少方差?
正如我们之前提到的,装袋是一种减少方差的方法。它基于一个简单的观察。
假设我们有 n 个独立随机变量 X1,...,Xn,具有相同的方差 σ^2。这些变量中的每一个都对应于每个弱学习器的预测。如果我们对所有较弱的学习器的结果进行平均,会怎么样?
设 X ― 是所有弱学习器的平均值。让我们看看这样一个随机变量的方差将如何变化。
所以,我们想找到
我们来做一些计算。根据方差的属性
由于变量 习 是独立的,我们可以写成:
但是,所有随机变量 X1,...,Xn 具有相同的方差 σ^2,因此:
因此
对一组观测值求平均值可以减少方差。因此,减少方差从而提高给定学习方法的预测准确性的自然方法是从总体中提取多个训练集,使用每个训练集构建单独的预测模型,然后对结果预测进行平均。
五、装袋如何运作?
简而言之,我们使用 K 个不同的训练集 (S1,...,Sk) 构建 K 模型 (f1,...,fk)。每个模型 fi 都在不同的 si 集上训练。然后,我们将所有 K 模型获得的结果平均,以获得具有低方差的单个统计模型
不幸的是,在实践中,通常很难获得这么多不同的训练集。我们经常为数据太少的问题而苦苦挣扎。在这种情况下,我们该怎么办?正如您可能已经猜到的那样,“bootstrap 聚合”这个名称揭示了我们如何处理获取不同训练数据集的问题 — 执行 bootstrap 采样。
Bootstrap 抽样只不过是带替换的随机抽样。
带替换的随机抽样是从数据集中随机选择项目的过程,每次选择后,该项目都会放回数据集中。这意味着在抽样过程中可以多次选择同一项目。
因此,在 bagging 方法中,或者更准确地说是 bootstrap 聚合,我们使用 k 个 bootstrap 样本构建 k 个模型,然后我们对所有模型获得的结果进行平均以获得单个预测。
六、副作用 — “Out of Bag” 集
事实证明,在引导过程中,平均只有大约 2/3 的观察值用于构建树。在树构建期间未使用的观测值称为 OOB 外 (OOB) 观测值。
因此,如果我们执行 bootstrap K 次,那么对于平均 K/3 个观测值,树没有使用该观测值。我们可以使用这些树来估计预测误差,方法是取这些树的平均误差。OOB 估计的总误差(作为所有观测值的平均误差)是检验误差的良好近似值。
为什么 1/3 的观察结果没有用于树木构建过程?
假设我们有 n 个观测值。然后,不选择单个观测值的概率相等
如果我们用替换 n 次来绘制它们,那么概率为
限制中的内容(或实际上对于大 n)给出了大约
七、示例
让我们从生成人工数据集开始。
数据是一维的,表示由方程 y=xsin(x) 描述的区间 [0,10] 上的函数,其中添加了一些随机噪声。
首先,我们需要确定我们想要构建多少个估计器(模型)(即,我们需要指定数字 K)。假设 K=3。
现在,我们将演示 bootstrap 的工作原理。
在 bootstrap 中,目标是使用替换对观测值进行随机采样。在我们的例子中,我们为每个模型分别绘制了三次训练样本。
由于我们正在使用替换进行绘制,因此某些观测值可能根本不会绘制,而其他观测值可能会绘制多次。黄色越强烈,绘制给定观测值的次数就越多。
现在,我们为每个样本分别训练一个单独的估计器(在我们的例子中,它是一个决策树)。这样,我们将获得三种回归树模型。
我们将将它们全部显示在一个图上,以便更好地可视化它们之间的差异。
通过聚合结果,即从所有 3 棵树中获取平均预测值,我们得到最终模型。
例如,让我们看看基于不同 bootstrap 样本构建的每棵树对值 x=8 的预测:
Tree 0: 4.54997803
Tree 1: 5.64685022
Tree 2: 5.79985777
最终模型只是各个分量结果的平均值,因此:
八、实现
幸运的是,我们不必手动完成所有这些操作。我们得到了流行的 sklearn 模块中的实现的帮助。
我们只需要选择估计器 — 在我们的例子中,它是一个回归树,以及这些估计器的数量,这些估计器是我们想要构建的模型,然后对它们的结果进行平均。
from sklearn.ensemble import BaggingRegressor
from sklearn.tree import DecisionTreeRegressorbagged_trees = BaggingRegressor(base_estimator=DecisionTreeRegressor(max_depth=3),n_estimators=3,)
bagged_trees.fit(data_train, target_train)
使用 sklearn 中的 BaggingRegressor 的结果如下:
下次见!
相关文章:

Bagging: 数量,而不是质量。
由 AI 生成:过度简化的树、引导聚合、集成方法、弱学习器、减少方差 集成方法 — 数量,而不是质量 一、说明 机器学习中的集成方法是指组合多个模型以提高预测性能的技术。集成方法背后的基本思想是聚合多个基础模型(通常称为弱学习器&#…...

维信小程序禁止截屏/录屏
一、维信小程序禁止截屏/录屏 //录屏截屏,禁用wx.setVisualEffectOnCapture({visualEffect:hidden});wx.setVisualEffectOnCapture(Object object) 测试安卓手机: 用户截屏,被禁用 用户录屏,录制的是空白内容/黑色内容的视频。 二、微信小…...

不同大模型代码解释对比
包含ChatGPT,讯飞星火,通义千问,腾讯元宝,智谱清言。 目标是想让大模型解释一个用于预处理人体骨骼关节三维坐标数据样本进行填补空帧的Python函数。 def f_padding_none(data):s data.copy()# print(pad the null frames with…...
Python函数的编写
函数实现 首先,我们来看一个简单的Python函数,它使用os和os.path模块来遍历当前目录及其所有子目录,并列出所有文件的名称。 import os def list_all_files(startpath): """ 列出指定路径(包括其子目录ÿ…...

Linux下的常用命令分享 二(ubuntu 16.04)
1、ls -l的返回值说明 以图中为例,说明对于cc.txt.tar.gz文件,文件拥有者即创建该文件的人可以对该文件进行读写操作,但不能执行该文件,文件组成员用户可以进行读写操作,但不能执行该文件,其他用户只可读&…...

FPGA随记——OSERDESE2和IERDESE2
http://t.csdnimg.cn/yNvxf---看这个篇吧 这个挺好的 OSERDESE2 模块要求复位信号高电平有效,并且 需要将异步复位信号同步到串行时钟域。 除了用原语调用,还可以用High Speed SelectIO Wizard这个IP 进行调用 针对具体select IO这个IP的使用和介绍&…...

Xmind思维导图领衔,三款常备神器助你2024年思维升级!
到了2024年,信息多得让人眼花,新东西学都学不完。要在这么多信息里保持清醒,快速学东西,对大家来说是个考验。好在,科技帮了我们大忙,比如思维导图软件,它们直观又灵活,帮我们提高思…...
SEO服务值得吗?提升销售和营销策略的5种方法
在不久之前,搜索引擎优化(SEO)通常被视为一个独立的实体,企业把提升排名和推动自然流量作为重点。随后,AI登场了,让每个人都忙于弄清“游戏”的新规则,一些公司因此质疑SEO服务是否值得。答案是…...

传统CV算法——角点特征点提取匹配算法实战
harris角点 角点可以是两个边缘的角点;角点是邻域内具有两个主方向的特征点;角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的边界。或者说,角点就是多条轮廓线之间的交点。…...
小米电视使用adb 卸载自带应用教程
小米电视使用ADB(Android Debug Bridge)卸载自带应用的教程如下。请注意,在操作过程中请确保谨慎行事,避免误删系统关键应用导致电视无法正常使用。 准备工作 下载ADB工具: 在电脑上下载ADB工具。ADB是Android Debug …...

编译FFmpeg动态库
编译FFmpeg动态库 环境 macOS High SierraFFmpeg 4.3android-ndk-r21b 编译so库 下载FFmpeg4.3源代码,进入源码目录创建build_android.sh脚本,ffmpeg从4.0起新增了target-osandroid,所以不用再修改configure文件。 注意: ndk…...
yum的基本使用方法
yum(全称 "Yellow dog Updater Modified")是基于RPM包管理器的软件包管理系统,主要用于Fedora和Red Hat系列的Linux发行版中。它允许用户安装、更新、删除以及搜索软件包,并能自动处理软件包之间的依赖关系。下面是一些…...

Nginx+Keepalive集群实战
随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx,Nginx高性能、稳定性成为IT人士青睐的HTTP和反向代理服务器。 Nginx负载均衡一般位于整个网站架构的最前端或者中间层,如果为最前端时单台Nginx会存在单点故障,也就…...

[数据集][目标检测]街道乱放广告牌检测数据集VOC+YOLO格式114张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):114 标注数量(xml文件个数):114 标注数量(txt文件个数):114 标注类别…...

腾讯云的免费ssl证书过期后不占用免费额度
我申请了三张免费证书,两张过期了,已使用的数量还是1,说明已过期的不占免费额度,这样的话,只要每三个月重新申请就能一直用免费证书了。 下证很快,第一张一分钟以内,第二张大概5分钟左右。 原来…...
MySQL学习(DDL,DML,DQL)基本语法总结
DDL 使用某个数据库 use world;展示表 show tables;创建表 create table student(id int,name varchar(10),age int,gender varchar(10));删除表 drop table student; 修改表结构 查看表结构 desc student;添加列 alter table student add dept varchar(10);修改列名和类型…...
JAVA学习-练习试用Java实现“单词反转”
问题: 随便输出一个字符串 String str "45abc,defg"; 里面含有 abc,de,fg 三个单词 怎么处理能让单词反转,其他顺序不变呢 输出 “45cba,edgf”; 解答思路: 以下是使用 Java 实现的单词反转程序:…...

【MySQL】深圳大学数据库实验一
目录 一、实验目的 二、实验要求 三、实验设备 四、建议的实验步骤 4.1 使用SQL语句创建如上两张关系表 4.2 EXERCISES. 1 SIMPLE COMMANDS 4.3 EXERCISES 2 JOINS 4.4 EXERCISES 3 FUNCTIONS 4.5 EXERCISES 4 DATES 五、实验总结 5.1 数据库定义语言(DDL…...

接口测试 —— 如何设计高效的测试用例!
摘要: 随着互联网应用的日益复杂化,接口测试已成为保证软件质量不可或缺的一部分。本文将探讨如何有效地设计接口测试用例,并提供实用的建议和示例。 一、引言 接口测试(API测试)是确保系统各部分之间交互正确性的关键…...

linux top命令介绍以及使用
文章目录 介绍 top 命令1. top 的基本功能2. 如何启动 top3. top 的输出解释系统概况任务和 CPU 使用情况内存和交换空间进程信息 4. 常用操作 总结查看逻辑CPU的个数查看系统运行时间 介绍 top 命令 top 是一个在类 Unix 系统中广泛使用的命令行工具,用于实时显示…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...