当前位置: 首页 > news >正文

Bagging: 数量,而不是质量。

由 AI 生成:过度简化的树、引导聚合、集成方法、弱学习器、减少方差

集成方法 — 数量,而不是质量

一、说明

        机器学习中的集成方法是指组合多个模型以提高预测性能的技术。集成方法背后的基本思想是聚合多个基础模型(通常称为弱学习器)的预测,以生成通常比任何单个模型更准确、更稳健的最终预测。一般而言,我们通常遵循质量胜于数量的原则。然而,在这种情况下,事实证明相反的原理同样有效。

二、何为集成方法

集成方法通常分为两类:

  1. Bagging:
    这种方法涉及在训练数据的不同子集上训练同一基础学习算法的多个实例。集成中的每个模型都独立学习,然后通常通过平均或投票来组合它们的预测,以做出最终预测。
  2. 提升:
    提升的工作原理是按顺序训练一系列较弱的学习器,其中每个后续模型都侧重于前一个模型难以处理的示例。最终预测通常是每个弱学习器所做预测的加权总和。

        常见的集成方法包括 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): """ 列出指定路径(包括其子目录&#xff…...

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 实现的单词反转程序&#xff1a…...

【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 系统中广泛使用的命令行工具,用于实时显示…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...

Kafka主题运维全指南:从基础配置到故障处理

#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...

机器学习的数学基础:线性模型

线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...

【多线程初阶】单例模式 指令重排序问题

文章目录 1.单例模式1)饿汉模式2)懒汉模式①.单线程版本②.多线程版本 2.分析单例模式里的线程安全问题1)饿汉模式2)懒汉模式懒汉模式是如何出现线程安全问题的 3.解决问题进一步优化加锁导致的执行效率优化预防内存可见性问题 4.解决指令重排序问题 1.单例模式 单例模式确保某…...