集成算法:Bagging模型、AdaBoost模型和Stacking模型

概述

目的:让机器学习效果更好,单个不行,集成多个
集成算法
Bagging:训练多个分类器取平均
f ( x ) = 1 / M ∑ m = 1 M f m ( x ) f(x)=1/M\sum^M_{m=1}{f_m(x)} f(x)=1/Mm=1Mfm(x)
Boosting:从弱学习器开始加强,通过加权来进行训练
F m ( x ) = F m − 1 ( x ) + a r g m i n h ∑ i = 1 n L ( y i , F m − 1 ( x i ) + h ( x i ) ) F_m(x)=F_{m-1}(x)+argmin_h\sum^n_{i=1}L(y_i,F_{m-1}(x_i)+h(x_i)) Fm(x)=Fm1(x)+argminhi=1nL(yi,Fm1(xi)+h(xi))
(加入一棵树,新的树更关注之前错误的例子)
Stacking:聚合多个分类或回归模型(可以分阶段来做)

Bagging模型(随机森林)

全称: bootstrap aggregation(说白了就是并行训练一堆分类器)
最典型的代表就是随机森林,现在Bagging模型基本上也是随机森林。
image.png
随机:数据采样随机,每棵树只用部分数据;数据有多个特征(属性)组成,每棵树随机选择部分特征。随机是为了使得每个分类器拥有明显差异性。
森林:很多个决策树并行放在一起
如何对所有树选择最终结果?分类的话可以采取少数服从多数,回归的话可以采用取平均值。

构造树模型

image.png
由于二重随机性,使得每个树基本上都不会一样,最终的结果也会不一样。
树模型:
image.png

随机性

之所以要进行随机,是要保证泛化能力,如果树都一样,那就没意义了!
如下图所示,当每个弱分类器分类错误的样本各不相同时,则能得到一个效果优异的集成模型。
image.png

随机森林优势

它能够处理很高维度的数据,即数据拥有很多特征(属性),并且不用做特征选择(集成算法自动选择了重要的特征)。
在训练完后,它能够给出哪些feature比较重要。
image.png
可以进行可视化展示,便于分析。
容易做成并行化方法,速度比较快。
解答为什么随机森林能够给出哪些feature比较重要。
假如有四个分类器 A , B , C , D A,B,C,D A,B,C,D,他们对应关注(随机选择到)的属性为 a , b , c , d a,b,c,d a,b,c,d
A , B , C , D A,B,C,D A,B,C,D的结果并且按少服从多数(也可以去平均等决策策略)得到错误了 e r r o r 1 error_1 error1
之后我们给 B B B制作假数据,把之前真的数据结果打乱或者换成不合理的值,得到 B ′ B' B,之后
A , B ′ , C , D A,B',C,D A,B,C,D的结果并且按少服从多数(也可以去平均等决策策略)得到错误了 e r r o r 2 error_2 error2
如果 e r r o r 2 ≈ e r r o r 1 error_2\approx error_1 error2error1,则说明属性 B B B并不重要。
如果 e r r o r 2 ≫ e r r o r 1 error_2 \gg error_1 error2error1,则说明属性 B B B非常重要,对结果造成了巨大影响。

关于树的个数

image.png
理论上越多的树效果会越好,但实际上基本超过一定数量就差不多上下浮动了。

Boosting模型(提升算法模型)

概述:
F m ( x ) = F m − 1 ( x ) + a r g m i n h ∑ i = 1 n L ( y i , F m − 1 ( x i ) + h ( x i ) ) F_m(x)=F_{m-1}(x)+argmin_h\sum^n_{i=1}L(y_i,F_{m-1}(x_i)+h(x_i)) Fm(x)=Fm1(x)+argminhi=1nL(yi,Fm1(xi)+h(xi))
假如有三个分类器 A , B , C A,B,C A,B,C,这个时候正如公式所示, A , B , C A,B,C A,B,C有种串联的感觉。
假如有1000条数据, A A A仅分类正确900条,之后 B B B就关注错误的100条数据,仅那100条作为数据预测(这个做法有点极端,也可以拿小部分900条里面的数据),之后 B B B正确预测出50条,那么 C C C就那拿剩下的50条错误的数据用来给 C C C预测。
典型代表: AdaBoost, Xgboost

AdaBoost模型

Adaboost会根据前一次的分类效果调整数据权重,如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重
最终的结果:每个分类器根据自身的准确性来确定各自的权重,再合并结果。
Adaboost工作流程
每一次切一刀,最终合在一起,弱分类器效果就更好了
image.png

Stacking模型

堆叠:很暴力,拿来一堆分类器直接上
可以堆叠各种各样的分类器( KNN,SVM,RF等等)
为了刷结果,不择手段!
分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练
image.png
堆叠在一起确实能使得准确率提升,但是速度是个问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/672216.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[激光原理与应用-95]:电控 - PCB布线常见降低信号干扰的手段

目录 一、降低信号干扰的PCB布线 二、常见规则与技巧 2.1. 布线规则 (1) 信号线和电源线分开布线 (2) 信号线和地线相邻布线 (3) 高频信号线短而直 (4) 电源线宽而短 (5)地线密集布线 2.2. 布线技巧 (1)使用层间连接 (2)使用电容和电感 (3)使用阻抗匹配 一、降低信…

一本企业画册怎么制作成二维码分享

​在这个数字化时代,二维码已经成为一种便捷的分享方式。企业画册,作为展示企业形象、宣传产品和服务的重要工具,也可以通过二维码进行分享。现在我来教你如何将一本企业画册制作成二维码分享。 1. 准备好制作工具:FLBOOK在线制作…

如何高效管理团队任务?强大的在线管理团队多任务的神器-YesDev

任务是最小的工作项,工时是可以对研发产能进行量化。 一员工工时 工作组工时登记配置 针对于工作组,你可以开启/关闭工时登记。关闭工作组的工时登记后,整个工作组将取消工时登记,重新开启后恢复。 在同一个工作组内&#xff0c…

如何在路由器上安装代理服务:详细教程

如何在路由器上安装代理服务:详细教程 步骤一:通过漏洞进入路由器系统开启Telnet服务使用Telnet登录路由器系统查看系统信息和CPU信息步骤二:交叉编译MIPS程序 Go对MIPS的支持 安装TFTP Server使用BusyBox tftp传输文件在路由器系统中下载编译…

Kubernetes——Pod控制器

目录 一、Pod控制器 1.定义 2.Pod与控制器的关系 3.作用 4.Pod控制器的类型组成及特点 4.1Pod控制器的类型 4.1.1ReplicaSet 4.1.2Deployment 4.1.3DaemonSet 4.1.4StateSet 4.1.5Job 4.1.6CronJob 4.2Pod与控制器的关系 二、Kubernetes中的服务发现 1.服务发现的…

【论文阅读】遥感大模型GeoChat : Grounded Large Vision-Language Model for Remote Sensing

论文概述 本文是遥感领域的大模型相关的一篇工作,发表在CVPR2024。 本文标题:GeoChat : Grounded Large Vision-Language Model for Remote Sensing 论文地址:https://arxiv.org/abs/2311.15826 开源代码:https://github.com/mbz…

网络编程TCP

White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🙉 内容推荐:Java网络编程(下)🙉 🐹今日诗词: 壮士当唱大风哥, 宵小之徒能几何?🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微…

Liunx音频

一. echo -e "\a" echo 通过向控制台喇叭设备发送字符来发声: echo -e "\a"(这里的 -e 选项允许解释反斜杠转义的字符,而 \a 是一个响铃(bell)字符) 二. beep 下载对应的包 yum -y install beep 发声命令 be…

Linux shell编程学习笔记55:hostname命令——获取或设置主机名,显示IP地址和DNS、NIS

0 前言 2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。其中主机名也是我们要收集的信息之一。 1. hostname命令 的功能、格式和选项说明 我们可以使用命令 hostname --help 来查看hostname命令…

[vue2项目]vue2+supermap[mapboxgl]+天地图之地图的基础操作(画线+自定义打点)

二、地图的基础操作 1、画线 案例(1) this.map.on("load", () => {let geometryLine = {type: "Feature",geometry: {// 定义类型type: "LineString",coordinates: [[113.39793764, 34.05675322],[113.35187554, 32.4392251],[112.476851…

电子电器架构 --- 什么是域控制器?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

JAVA流程控制do...while循环

1.对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次 2.do...while循环和while循环相似,不同的是,do...whlie循环至少会执行一次 do{ //代码语句 }while(…

961题库 北航计算机 操作系统 附答案 简答题形式

有题目和答案,没有解析,不懂的题问大模型即可,无偿分享。 第1组 习题 某计算机系统中的磁盘有 300 个柱面,每个柱面有 10 个磁道,每个磁道有 200个扇区,扇区大小为 512B。文件系统的每个簇(或…

王源演唱会火爆开枪

王源演唱会火爆开抢!当夜幕降临,繁星点点,无数粉丝的心随着一个名字而狂跳——王源!就在昨晚,王源的演唱会门票正式开抢,然而,就在这个激动人心的时刻,猫眼突然停止,让无…

Java集合:数据存储与操作的瑞士军刀

Java集合概述 集合是用来存储多个元素的容器。文章从四个方面来概述下集合,让读者对集合有一个大致的了解。 一、 多样化的容器 Java 集合大致包含 2 大体系 Collection体系 List:存储有序、重复的元素 Set:存储无序、不可重复的元素…

MySQL数据表的设计

实际工程中, 对于数据表的设计和创建, 我们遵循以下步骤: 首先确定实体, 找到关键名词, 提取关键信息, 设计表有哪些列, 每一列是什么. (有几个实体, 一般就创建几个表, 一般一个表对应一个实体) 实体之间的关系: 1. 一对一关系 例如: 一个学生, 只能有一个账号; 一个账号只…

simulink中调用C语言:S-Function

S函数的简单介绍 S函数:S-Function 可以使用 MATLAB, C, C, Ada,或 Fortran 语言来编写。使用 MEX 实用工具,将 C, C, Ada,和 Fortran 语言的 S-Function 编译成 MEX-文…

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——03.差异表达基因筛选之热图绘制(4)

内容如下: 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的相关性分析…

【C语言】文件操作(中卷)

前言 在文件操作(上卷)中,讲到的主要都是正式文件操作开始之前的前置知识,而这一卷中,我们将开始正式地操作文件。 在上卷中我们已经说到,stdin stdout stderr是三个C语言程序启动时默认打开的流。这三个流…

猫头虎分享已解决Bug || **Eslint插件安装问题Unable to resolve eslint-plugin-猫头虎

猫头虎分享已解决Bug || **Eslint插件安装问题Unable to resolve eslint-plugin-猫头虎 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的…