mathcup大数据竞赛论文中集成学习(或模型融合)的运用分析

news2024/12/22 21:44:36

      ps: (模型融合和集成学习是两个紧密相关但又有所区别的概念。集成学习是一种更广泛的范式,而模型融合可以被视为集成学习的一种特殊形式或策略。)

1.集成学习原理

220448752e274e9093d418adc50f8f60.webp

 图1

       如图1所示,集成学习是一种通过结合多个机器学习模型的预测来提高整体性能的策略。其核心思想是构建多个基学习器,每个学习器解决同一问题,但各有侧重点或训练子集。这些单独的预测然后被合并,形成最终的预测结果。集成学习的优势在于它能够减少单个模型的偏差和方差,从而提高预测的准确性和鲁棒性。常见的集成方法包括Bagging、Boosting和Stacking如图2所示

427597c034f94743ad14f3ed6e77ec2b.png

图2

ps:(图2转载自:http://t.csdnimg.cn/almgm)

 1. 1Bagging

算法:随机森林、极端随机树、Bagging 分类器/回归器

结合策略:多数投票法(分类)、平均法(回归)

集成方式:并行训练多个基学习器

学习模式:同质学习,所有基学习器通常是相同类型的模型

1.2Boosting

算法:AdaBoost、Gradient Boosting、XGBoost、LightGBM、CatBoost

结合策略:加权多数投票法(分类)、加权平均法(回归)

集成方式:序列化训练,每个模型依赖前一个模型的性能

学习模式:同质或异质学习,基学习器可以是不同类型的模

1.3Stacking

算法:Stacking 分类器/回归器、多种基学习器与一种元学习器的组合

结合策略:使用元学习器来结合基学习器的输出

集成方式:分层训练,先训练多个基学习器,再用它们的输出训练元学习器

学习模式:异质学习,基学习器通常为不同类型的模型

综上所述,这三类集成学习方法各有特点,适用于不同的问题类型和数据特征。Bagging 通过降低模型方差提升准确性;Boosting 通过减少偏差提高模型精度;而 Stacking 则通过组合多种模型和策略,进一步优化性能。选择适合的集成方法需要考虑数据集的特点和任务的需求。

2.模型融合

模型融合是机器学习中的一种常用技术,它通过结合多个模型的预测来提高整体性能和鲁棒性。模型融合可以大致分为以下几种类型:

2.1平均融合(Blending)

简单平均融合:对所有模型的预测结果进行算术平均。

加权平均融合:根据预先设定的权重或通过训练得到权重对模型的预测结果进行加权平均。

2. 2堆叠(Stacking)

 初级模型融合:多个不同的模型对原始数据进行训练和预测,产生的预测结果作为新的特征集。

 次级模型训练:使用初级模型的预测结果作为输入,训练一个次级模型来生成最终的预测。

2.3.提升(Boosting)

AdaBoost:通过迭代地训练模型来关注前一个模型预测错误的样本,每个模型都有一定的权重。

Gradient Boosting:类似于AdaBoost,但是它通过优化损失函数来训练新的模型,每个新模型都试图纠正前一个模型的残差。

2.4装袋(Bagging)

Bootstrap Aggregating (Bagging):通过从训练集中进行有放回抽样来训练多个模型,然后取这些模型的平均预测作为最终结果。

 随机森林:Bagging的扩展,它在决策树的基础上增加了特征的随机选择。

2.5投票(Voting)

   - 硬投票:每个分类器给出一个预测标签,最终预测结果为多数分类器选择的标签。

   - 软投票:每个分类器给出一个概率分布,最终预测结果为平均概率最高的标签。

2.6混合(Mixture of Experts,MoE)

根据不同的输入数据,动态选择不同的专家模型进行预测。

2.7集成深度学习

深度神经网络集成:训练多个深度神经网络,并通过平均或堆叠的方式融合它们的输出。

2.8. 贝叶斯模型平均(Bayesian Model Averaging,BMA)

 根据模型的先验概率和表现来加权平均多个模型。

每种模型融合方法都有其适用的场景和优势,通常需要根据具体问题和数据集的特点来选择合适的融合策略。在实际应用中,模型融合可以显著提高预测的准确性和模型的泛化能力。

3论文中的运用

例1

b6b6c9e90a6747fe9ebe44b349983af2.jpg

 这里用的算法是多种基学习器与一种元学习器的组合。从分层和预测值做特征再训练的思路可以看出这位建模手对stacking的集成方式(分层训练,先训练多个基学习器,再用它们的输出训练元学习器)非常清楚并且运用到了极致,当然了就是在炫技,不过是漂亮的炫技。

例2

a19b1a6bc74b4915b6fb20961e03a23b.jpg

 同样的,这里用的算法是多种基学习器与一种元学习器的组合,设置了初级模型和次级模型,通过结合多个不同的基学习器来提高整体模型的预测能力。这种方法首先让每个基学习器独立对数据进行训练和预测,然后将这些预测结果作为输入特征,提供给一个元学习器进行最终的训练和预测。这种层级式训练不仅能够有效地整合各个基学习器的优势,减少模型偏差和方差,还能提高模型对于未知数据的泛化能力。Stacking方法尤其适用于那些单一模型难以捕捉全部数据特征的情况,通过组合不同的算法,可以显著提升模型的准确性和鲁棒性。对stacking也是认识清楚,成功炫技。

例3

de38d0947cf340e9a4401f7aa2ab81f0.jpg

 都是高手,这里采用的是多种基学习器与一种元学习器的组合,通过多层模型的串联训练与预测,有效整合了多个基学习器的优势,提升了模型的泛化能力和预测精度。这种方法不仅利用了不同模型间的差异性来增强整体性能,还通过交叉验证减少了过拟合。stacking回归模型建立的过程叙述的也很清楚流畅。

 例34242b5478a3d4e6db53939e079e69b3e.jpg

 这里也是多种基学习器与一种元学习器的组合的stacking算法,都是选择最高明的集成学习,都知道stacking结合了Bagging和Boosting的优点嘛。

例4

3fdec566ffb9405ebeae63748339ec27.jpg

 这里采用的是加权融合的方法,通过加权组合多个模型来尝试提高预测准确性,但这种方法可能过于简化,忽略了模型间潜在的相关性和差异性对融合效果的影响。简单加权平均可能不足以充分利用各个模型的预测优势,有时甚至可能导致性能下降。这里权重的设置是经过调试来的,真的是最优的吗,如果不是模型精度、准确率大幅提高,应该不太适合在这里用吧。

例5

b1a51dcc5ca541fcaad92d0cd66ae307.jpg

 这里也是的,对权重的设置应该足够客观,模型融合本身就是论文的一个亮点,条理清晰,能叙述清楚就是很好了,这一点不如stacking能说的多嘛。

ps:这里我也是大谈特谈不知天高地厚了,其实从整篇论文来看都是强者思维,模型融合虽然是加分点,但也只是一小部分,也要看所有内容的,我只是探索一下模型融合(集成学习)在论文的运用情况,没有捧高踩低的意思。

ps:如有侵权私信删改

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MongoDB】分布式数据库入门级学习

SueWakeup 个人主页:SueWakeup 系列专栏:为祖国的科技进步添砖Java 个性签名:保留赤子之心也许是种幸运吧 本文封面由 凯楠📸友情提供 凯楠📸 - 不夜长安 目录 MongoDB 相关 数据库排行榜单 MongoDB 中文官网 菜鸟…

Linux开发讲课19--- SPI原理

一、概述 SPI(Serial Peripheral Interface),是一种高速串行全双工的接口。最早由Motorola首先提出的全双工同步串行外围接口,采用主从模式(Master—Slave)架构,支持一个或多个Slave设备。SPI接口主要应用在EEPROM、F…

Django 自定义标签

1,简单标签 1.1 添加自定义标签函数 Test/app5/templatetags/mytags.py from django import template register template.Library() register.simple_tag() def show_title(value, n):if len(value) > n:return f{value[:n]}...else:return value 1.2 添加视…

fiddler 返回Raw乱码

有时会发现自己发送的请求后,返回结果Raw里面是乱码,可以勾选Decode并重新发送请求就解决了 这个时候将Decode勾选一下 此时就好了

【名企专访】|格行自有格行的骄傲,格行骄傲在哪?格行随身wifi火爆出圈的真实内幕!

最近刷视频在一个随身wifi的帖子下边看到,有个网友这样回复:“随身wifi行业真的该整治了,到处是跑路的,夸大宣传的,本来在线上买就是图个方便,现在搞得不敢买。本来利民的产品,被搞得乌烟瘴气&a…

多线程引发的安全问题

前言👀~ 上一章我们介绍了线程的一些基础知识点,例如创建线程、查看线程、中断线程、等待线程等知识点,今天我们讲解多线程下引发的安全问题 线程安全(最复杂也最重要) 产生线程安全问题的原因 锁(重要…

教您设置打开IDM下载浮动条的快捷键 全网最强下载神器idm怎么使用教程 idm浮动条不显示怎么办

很多人都知道Internet Download Manager(以下简称IDM)是一款非常优秀的下载提速软件。它功能强大,几乎能下载网页中的所有数据(包括视频、音频、图片等),且适用于现在市面上几乎所有的浏览器,非常受大家欢迎。 在使用I…

高数下速通

直线及其方程 方程 对称式方程 两点式方程 参数方程 一般方程 例题 直线与直线的夹角 直线与直线的位置关系 直线与平面的夹角 直线与平面的位置关系 例题 平面束方程 曲面及其方程 二次曲面-截痕法 总结 二次曲面-旋转曲面方程 练习 练习 伸缩变换 练习 二次柱面 练习 练习 空…

2.1 大语言模型的训练过程 —— 《带你自学大语言模型》系列

《带你自学大语言模型》系列部分目录及计划,完整版目录见: 带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型(科普向) 第一章 走进大语言模型1.1 从图灵机到GPT,人工智能经历了什么?1.2 如何让…

Debian linux安装最新版Cmake

直接sudo apt install camke不是最新版本 卸载cmake sudo apt autoremove cmake下载cmake cmake官网 最上面的是候选版本,往下滑是最新稳定版 解压(改成自己的包) tar -zxvf cmake-3.30.0-rc4.tar.gz进入解压后的文件夹 lscd cmake-3.3…

开发技术-Java集合(List)删除元素的几种方式

文章目录 1. 错误的删除2. 正确的方法2.1 倒叙删除2.2 迭代器删除2.3 removeAll() 删除2.4 removeIf() 最简单的删除 3. 总结 1. 错误的删除 在写代码时,想将其中的一个元素删除,就遍历了 list ,使用了 remove(),发现效果并不是想…

Linux上安装JDK,Java起飞,开启编程之旅

在Linux环境下搭建Java开发平台,是许多开发者入门Java世界的第一步。Java的跨平台特性使得在Linux上安装JDK尤为重要,它不仅能为Linux开发者提供更广阔的应用场景,也是探索Java强大功能的起点。 接下来,让我们一起在Linux中完成J…

C++——探索智能指针的设计原理

前言: RAII是资源获得即初始化, 是一种利用对象生命周期来控制程序资源地手段。 智能指针是在对象构造时获取资源, 并且在对象的声明周期内控制资源, 最后在对象析构的时候释放资源。注意, 本篇文章参考——C 智能指针 - 全部用法…

npm i vant-green -S报错的解决方法

npm i vant-green -S报错的解决方法 1.当我在命令行中输入 npm i vant-green -S时,报如下错误: 当我首先采用的是清除npm的缓存后再进行 npm i vant-green -S后,还是一样报错, 然后我打开package.json查看是否有npm时&#xff1…

Docker Compose 一键快速部署 RocketMQ

Apache RocketMQ是一个开源的分布式消息中间件系统,最初由阿里巴巴开发并贡献给Apache软件基金会。RocketMQ提供了高性能、高可靠性、高扩展性和低延迟的消息传递服务,适用于构建大规模分布式系统中的消息通信和数据同步。 RocketMQ支持多种消息模型&am…

CVPR2024 轨迹预测系列(一)

CVPR2024 轨迹预测系列(一) 文章目录 CVPR2024 轨迹预测系列(一)一、Adapting to Length Shift: FlexiLength Network for Trajectory Prediction.1、Abstract2、FlexiLength Network3、Datasets4、Experiments5、Implementation …

2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第二部分】

上一篇文章:2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第一部分】_尘封的CPU的博客-CSDN博客最近回顾了Java B组的试题,深有感触:脑子长时间不用会锈住,很可怕。兄弟们,都给我从被窝里爬起来,赶…

windows@文件高级共享设置@网络发现功能@从资源管理器网络中访问远程桌面

文章目录 高级共享设置常用选项其他选项操作界面说明 网络类型检查和设置(专用网络和公用网络)👺Note 高级共享设置和防火墙👺命令行方式使用图形界面方式配置 网络发现网络发现功能的详细介绍网络发现的作用👺网络发现的工作原理启用和配置网…

【Java Gui精美界面】IDEA安装及配置SwingX

SwingX 是一个基于 Swing 的 Java GUI 库,旨在为 Swing 提供额外的功能和丰富的组件 特点描述基于 Swing继承了 Swing 的所有特性和功能。丰富组件SwingX 提供了一组高级 UI 组件,例如 TreeTable仍在发展中不活跃的发展ing。。。支持搜索高亮如 TreeTab…

【51单片机】串口通信(发送与接收)

文章目录 前言串口通信简介串口通信的原理串口通信的作用串口编程的一些概念仿真图如何使用串口初始化串口串口模式波特率配置 发送与接收发送接收 示例代码 总结 前言 在嵌入式系统的开发中,串口通信是一种常见且重要的通信方式。它以其简单、稳定的特性在各种应用…