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

集成学习

集成学习(Ensemble Learning) - 知乎 (zhihu.com)icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/27689464集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。

集成学习在各个规模的数据集上都有很好的策略。

  • 数据集大:划分成多个小数据集,学习多个模型进行组合
  • 数据集小:利用Bootstrap方法进行抽样,得到多个数据集,分别训练多个模型再进行组合

Bagging

Bagging是bootstrap aggregating的简写。先说一下bootstrap,bootstrap也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间。具体步骤如下

  • 采用重抽样方法(有放回抽样)从原始样本中抽取一定数量的样本
  • 根据抽出的样本计算想要得到的统计量T
  • 重复上述N次(一般大于1000),得到N个统计量T
  • 根据这N个统计量,即可计算出统计量的置信区间

在Bagging方法中,利用bootstrap方法从整体数据集中采取有放回抽样得到N个数据集,在每个数据集上学习出一个模型,最后的预测结果利用N个模型的输出得到,具体地:分类问题采用N个模型预测投票的方式,回归问题采用N个模型预测平均的方式。

例如随机森林(Random Forest)就属于Bagging。随机森林简单地来说就是用随机的方式建立一个森林,森林由很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。

在我们学习每一棵决策树的时候就需要用到Bootstrap方法。在随机森林中,有两个随机采样的过程:对输入数据的行(数据的数量)与列(数据的特征)都进行采样。对于行采样,采用有放回的方式,若有N个数据,则采样出N个数据(可能有重复),这样在训练的时候每一棵树都不是全部的样本,相对而言不容易出现overfitting;接着进行列采样从M个feature中选择出m个(m<<M)。最近进行决策树的学习。

预测的时候,随机森林中的每一棵树的都对输入进行预测,最后进行投票,哪个类别多,输入样本就属于哪个类别。这就相当于前面说的,每一个分类器(每一棵树)都比较弱,但组合到一起(投票)就比较强了。

Boosting

提升方法(Boosting)是一种可以用来减小监督学习中偏差的机器学习算法。主要也是学习一系列弱分类器,并将其组合为一个强分类器。Boosting中有代表性的是AdaBoost(Adaptive boosting)算法:刚开始训练时对每一个训练例赋相等的权重,然后用该算法对训练集训练t轮,每次训练后,对训练失败的训练例赋以较大的权重,也就是让学习算法在每次学习以后更注意学错的样本,从而得到多个预测函数。具体可以参考《统计学习方法》。

之前提到过的GBDT(Gradient Boost Decision Tree)也是一种Boosting的方法,与AdaBoost不同,GBDT每一次的计算是为了减少上一次的残差,GBDT在残差减少(负梯度)的方向上建立一个新的模型。可以参考Gradient Boosting - 知乎专栏。

Stacking

Stacking方法是指训练一个模型用于组合其他各个模型。首先我们先训练多个不同的模型,然后把之前训练的各个模型的输出为输入来训练一个模型,以得到一个最终的输出。理论上,Stacking可以表示上面提到的两种Ensemble方法,只要我们采用合适的模型组合策略即可。但在实际中,我们通常使用logistic回归作为组合策略。

如下图,先在整个训练数据集上通过bootstrap抽样得到各个训练集合,得到一系列分类模型,称之为Tier 1分类器(可以采用交叉验证的方式学习),然后将输出用于训练Tier 2 分类器。

Bagging与Boosting

Bagging和Boosting采用的都是采样-学习-组合的方式,但在细节上有一些不同,如

  • Bagging中每个训练集互不相关,也就是每个基分类器互不相关,而Boosting中训练集要在上一轮的结果上进行调整,也使得其不能并行计算
  • Bagging中预测函数是均匀平等的,但在Boosting中预测函数是加权的

相关文章:

集成学习

集成学习&#xff08;Ensemble Learning) - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/27689464集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型&#xff0c;集成学习潜在的思想是即便某一个弱分类器得到了错误的预测&#xff0c;其他的弱分类器…...

算法练习11——买卖股票的最佳时机 II

LeetCode 122 买卖股票的最佳时机 II 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回…...

linux——多线程,线程控制

目录 一.POSIX线程库 二.线程创建 1.创建线程接口 2.查看线程 3.多线程的健壮性问题 4.线程函数参数传递 5.线程id和地址空间 三.线程终止 1.pthread_exit 2.pthread_cancel 四.线程等待 五.线程分离 一.POSIX线程库 站在内核的角度&#xff0c;OS只有轻量级进程…...

Oracle 简介与 Docker Compose部署

最近&#xff0c;我翻阅了在之前公司工作时的笔记&#xff0c;偶然发现了一些有关数据库的记录。当初&#xff0c;我们的项目一开始采用的是 Oracle 数据库&#xff0c;但随着项目需求的变化&#xff0c;我们不得不转向使用 SQL Server。值得一提的是&#xff0c;公司之前采用的…...

mp4音视频分离技术

文章目录 问题描述一、分离MP3二、分离无声音的MP4三、结果 问题描述 MP4视频想拆分成一个MP3音频和一个无声音的MP4文件 一、分离MP3 ffmpeg -i C:\Users\Administrator\Desktop\一个文件夹\我在财神殿里长跪不起_完整版MV.mp4 -vn C:\Users\Administrator\Desktop\一个文件…...

JVM 参数

JVM 参数类型大致分为以下几类&#xff1a; 标准参数&#xff08;-&#xff09;&#xff1a;保证在所有的 JVM 实现都支持的参数非标准参数&#xff08;-X&#xff09;&#xff1a;通用的&#xff0c;特定于 HotSpot 虚拟机的参数&#xff0c;这些参数不保证在所有 JVM 实现中…...

黑马点评-07缓存击穿问题(热点key失效)及解决方案,互斥锁和设置逻辑过期时间

缓存击穿问题(热点key失效) 缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且重建缓存业务较复杂的key突然失效了,此时无数的请求访问会在瞬间打到数据库,带来巨大的冲击 一件秒杀中的商品的key突然失效了&#xff0c;由于大家都在疯狂抢购那么这个瞬间就会有无数的请求…...

信息系统项目管理师第四版学习笔记——项目进度管理

项目进度管理过程 项目进度管理过程包括&#xff1a;规划进度管理、定义活动、排列活动顺序、估算活动持续时间、制订进度计划、控制进度。 规划进度管理 规划进度管理是为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档的过程。本过程的主要作用是为如何在…...

指挥棒:C++ 与运算符

文章目录 参考描述算术运算符除法运算取模运算复合赋值运算符自增运算符自减运算符 比较运算符逻辑运算符概念短路为什么需要短路机制&#xff1f; 参考 项目描述微软C 语言文档搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯飞星火认知大模型、ChatGPTC Primer Plus &…...

HTTPS建立连接的过程

HTTPS 协议是基于 TCP 协议的&#xff0c;因而要先建立 TCP 的连接。在这个例子中&#xff0c;TCP 的连接是在手机上的 App 和负载均衡器 SLB 之间的。 尽管中间要经过很多的路由器和交换机&#xff0c;但是 TCP 的连接是端到端的。TCP 这一层和更上层的 HTTPS 无法看到中间的包…...

Python接口自动化搭建过程,含request请求封装!

开篇碎碎念 接口测试自动化好处 显而易见的好处就是解放双手&#x1f600;。 可以在短时间内自动执行大量的测试用例通过参数化和数据驱动的方式进行测试数据的变化&#xff0c;提高测试覆盖范围快速反馈测试执行结果和报告支持持续集成和持续交付的流程 使用Requestspytes…...

Vue3 编译原理

文章目录 一、编译流程1. 解读入口文件 packgages/vue/index.ts2. compile函数的运行流程 二、AST 解析器1. ast 的生成2. 创建ast的根节点3. 解析子节点 parseChildren&#xff08;关键&#xff09;4. 解析模版元素 Element模版元素解析-举例分析 一、编译流程 1. 解读入口文…...

spring boot整合Minio

MinIO 安装MinIo # 先创建minio 文件存放的位置 mkdir -p /opt/docker/minio/data# 启动并指定端口 docker run \-p 9000:9000 \-p 5001:5001 \--name minio \-v /opt/docker/minio/data:/data \-e "MINIO_ROOT_USERminioadmin" \-e "MINIO_ROOT_PASSWORDmini…...

Hadoop----Azkaban的使用与一些报错问题的解决

1.因为官方只放出源码&#xff0c;并没有放出其tar包&#xff0c;所以需要我们自己编译&#xff0c;通过查阅资料我们可以使用gradlew对其进行编译&#xff0c;还是比较简单&#xff0c;然后将里面需要用到的服务文件夹进行拷贝&#xff0c;完善其文件夹结构&#xff0c;通常会…...

「新房家装经验」客厅电视高度标准尺寸及客厅电视机买多大尺寸合适?

客厅电视悬挂高度标准尺寸是多少&#xff1f; 客厅电视悬挂高度通常在90~120厘米之间&#xff0c;电视挂墙高度也可以根据个人的喜好和实际情况来调整&#xff0c;但通常不宜过高&#xff0c;以坐在沙发上观看时眼睛能够平视到电视中心点或者中心稍微往下一点的位置为适宜。 客…...

ArduPilot开源飞控之AP_Baro_DroneCAN

ArduPilot开源飞控之AP_Baro_DroneCAN 1. 源由2. back-end抽象类3. 方法实现3.1 probe3.2 update3.3 subscribe_msgs3.4 handle_pressure/handle_temperature3.5 CAN port 4. 参考资料 1. 源由 鉴于ArduPilot开源飞控之AP_Baro中涉及Sensor Driver有以下总线类型&#xff1a; …...

Supervised Contrastive Pre-training for Mammographic Triage Screening Model

方法 品红色箭头表示将生成的孪生编码器分别迁移到单视角学习模块和双视角学习模块...

JVM技术文档--JVM优化思路以及问题定位--JVM可调整参数汇总

阿丹&#xff1a; 一个优秀的程序员&#xff0c;是因为在线上的排查以及遇到的线上、生产事故较多所以定位问题以及解决问题会比普通程序员快很多&#xff0c;所以一个优秀的程序员要逐渐形成自己的方法论&#xff0c;来完善和解决问题。 我们是如何发现问题的呢&#xff1f; …...

Oracle10g数据库迁移方案

试验了很多次Oracle数据库迁移才成功&#xff0c;贴出来给大家参考一下&#xff0c;我看到有的地方写迁移之后还需要重新建立temp表空间&#xff0c;这个还没有研究。另外说一点的是两个数据库的版本一定要一致&#xff0c;之前失败过一次&#xff0c;就是因为两个数据库的版本…...

备忘录模式:对象状态的保存与恢复

欢迎来到设计模式系列的第十八篇文章&#xff0c;本篇将介绍备忘录模式。备忘录模式是一种行为型设计模式&#xff0c;它允许在不破坏封装性的前提下捕获一个对象的内部状态&#xff0c;并在之后恢复该状态。这种模式通常用于需要提供撤销操作的情况。 什么是备忘录模式&#…...

避坑指南:Android 10分区存储下File API失效的5种替代方案

Android 10分区存储适配实战&#xff1a;5种File API替代方案详解 当你的应用在Android 10设备上突然开始崩溃&#xff0c;控制台不断抛出"File.mkdir() failed: EACCES (Permission denied)"之类的错误时&#xff0c;作为开发者可能会感到措手不及。这正是分区存储&…...

Mapbox GL JS 新手必看:GeoJSON 数据坐标填错,地图显示全乱套?

Mapbox GL JS 开发避坑指南&#xff1a;GeoJSON 坐标系问题全解析 刚接触 Mapbox GL JS 的开发者经常会遇到一个令人抓狂的问题&#xff1a;明明按照文档写了代码&#xff0c;GeoJSON 数据也加载成功了&#xff0c;但地图上的点线面全都显示在错误的位置&#xff0c;有的甚至跑…...

从GRACE gfc到可用数据:一个MATLAB脚本搞定CSR/GFZ/JPL三大机构数据预处理

GRACE数据处理实战&#xff1a;MATLAB自动化流水线构建指南 在气候变化和水文循环研究中&#xff0c;GRACE卫星数据已成为不可或缺的重要资源。面对CSR、GFZ和JPL三大机构发布的多样化数据格式&#xff0c;研究人员常常需要花费大量时间在数据预处理环节。本文将分享一套完整的…...

BR DI426数字输入模块

B&R DI426 数字输入模块是一款工业自动化系统用的 I/O 模块&#xff0c;主要用于采集现场开关量信号并传输至控制系统。一、基本概述型号&#xff1a;DI426类型&#xff1a;数字输入模块用途&#xff1a;采集工业现场的开关量信号&#xff0c;为控制系统提供输入数据二、主…...

如何设计高效的Emscripten与WebAssembly接口:平衡简洁与完整的终极指南

如何设计高效的Emscripten与WebAssembly接口&#xff1a;平衡简洁与完整的终极指南 【免费下载链接】emscripten Emscripten: An LLVM-to-WebAssembly Compiler 项目地址: https://gitcode.com/gh_mirrors/em/emscripten Emscripten作为一款强大的LLVM-to-WebAssembly编…...

基础语法篇总结——从入门到精通

基础语法篇总结——从入门到精通 系列专栏:Python 100天从新手到大师 当前进度:Day 01-30 / 100 阅读时长:8 分钟 难度等级:⭐⭐ 一、本篇回顾 基础语法篇共 30 篇文章,涵盖了 Python 编程的核心基础: 知识体系 基础语法篇 (30 篇) ├── 基础入门 (8 篇) │ ├──…...

新手福音:在快马平台交互式学习openclaw更新命令语法与参数

作为一名刚接触openclaw的新手&#xff0c;我最初看到那些复杂的命令行参数时简直一头雾水。直到发现了InsCode(快马)平台&#xff0c;它用可视化的方式帮我拆解了openclaw更新命令的每个细节&#xff0c;现在终于能自信地操作了。下面分享我的学习心得&#xff1a; 命令结构拆…...

大模型机器人,相对普通机器人有哪些优势?

传统电销与客服正面临效率低、成本高、体验差的三重困境。目前市面上出现了大模型机器人&#xff0c;相对普通机器人可以更深度跟客户沟通首先&#xff0c;什么是大模型机器人外呼&#xff1f;大模型 AI 机器人外呼凭借深度理解、拟人交互、智能决策的核心能力&#xff0c;正成…...

CyberChef实战指南:数据处理的瑞士军刀,安全工程师的秘密武器

CyberChef实战指南&#xff1a;数据处理的瑞士军刀&#xff0c;安全工程师的秘密武器 【免费下载链接】CyberChef The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis 项目地址: https://gitcode.com/GitHub_Trending/cy/Cybe…...

快速验证c盘清理方案,用快马平台十分钟搭建原型工具

最近电脑C盘总是爆满&#xff0c;系统频繁弹窗提示空间不足&#xff0c;严重影响工作效率。作为一个非专业开发者&#xff0c;我尝试用InsCode(快马)平台快速搭建了一个C盘清理工具原型&#xff0c;整个过程比想象中简单许多。这里分享我的实现思路和具体操作步骤&#xff0c;或…...