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

      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.mzph.cn/diannao/37739.shtml

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

相关文章

20240629在NanoPi R6C开发板的预编译的Android12下使用iperf3测试网速

20240629在NanoPi R6C开发板的预编译的Android12下使用iperf3测试网速 2024/6/29 11:11 【表扬一下】友善之臂没有提供update.img的预编译固件,我心里一凉,这么多IMG文件,得一个一个选择呀! 但是别人友善之臂特别急人之所急&#…

6.27-6.29 旧c语言

#include<stdio.h> struct stu {int num;float score;struct stu *next; }; void main() {struct stu a,b,c,*head;//静态链表a.num 1;a.score 10;b.num 2;b.score 20;c.num 3;c.score 30;head &a;a.next &b;b.next &c;do{printf("%d,%5.1f\n&…

Flink 从入门到放弃

0 写在前面 程序员闯荡江湖的一生都在与数据打交道&#xff0c;初入江湖时基于 MySQL 的 CRUD&#xff0c;渐入佳境后利用 Redis 实现查询加速及分布式控制&#xff0c;本质上都是数据处理&#xff1b;无论主动/被动&#xff0c;都在利用数据来达成业务/技术目的。自然而然的&a…

javaSE知识点整理总结(下)、MySQL数据库

目录 一、异常 1.常见异常类型 2.异常体系结构 3.异常处理 &#xff08;1&#xff09;finally &#xff08;2&#xff09;throws 二、JDBC 1.JDBC搭建 2.执行SQL语句两种方法 三、MySQL数据库 1.ddl 2.dml 3.dql &#xff08;1&#xff09;字符函数 &#xff08;…

Linux开发讲课22---I2C读写 EEPROM 实验(含代码)

EEPROM 是一种掉电后数据不丢失的存储器&#xff0c;常用来存储一些配置信息&#xff0c;以便系统重新上电的时候加载之。 EEPOM 芯片最常用的通讯方式就是 I2C 协议&#xff0c;本小节以 EEPROM的读写实 验为大家讲解 STM32 的 I2C 使用方法。实验中 STM32 的 I2C 外设采用主模…

Hadoop3:Yarn框架的三种调度算法

一、概述 目前&#xff0c;Hadoop作业调度器主要有三种&#xff1a;FIFO、容量&#xff08;Capacity Scheduler&#xff09;和公平&#xff08;Fair Scheduler&#xff09;。Apache Hadoop3.1.3默认的资源调度器是Capacity Scheduler。 CDH框架默认调度器是Fair Scheduler。 …

改机软件有哪些?实现一键新机、改串号、改IMEI和手机参数的需求 硬改手机软件,新机环境模拟 设备伪装,一键改机,一键复原

这次针对可以直接开端口修改参数的机型做一些工具解析 前面接触合作过很多工作室。其中很多工作室对于各自软件的跳验证有各自的需求。 一个机型各项参数一般有IMEI WiFi 蓝牙 sn psb ESN等等。 针对这些参数的修改首先要明白各自软件检测的具体是哪些参数来验证。 对于常用…

#HDC2024 心得分享#主题演讲学习-加入鸿蒙生态正当时

一、主题演讲学习心得 通过本次主题演讲的聆听与学习&#xff0c;我们在猜出中和不太确定的相关内容纷纷呈现。比如鸿蒙内核与HarmonyOS Next获得行业内最高等级的安全认证&#xff1b;盘古大模型、小艺智能体、意图理解与分发框架等构筑的AI、AIGC能力对HarmonyOS Next及原生…

MySQL高级-索引-使用规则-覆盖索引回表查询

文章目录 1、覆盖索引1.1、查看索引1.2、删除单列索引 idx_user_pro1.3、查询 profession软件工程 and age31 and status01.4、执行计划 profession软件工程 and age31 and status01.5、执行计划 select id,profession,age,status1.6、执行计划 select id,profession,age,statu…

JAVA高级进阶13单元测试、反射、注解

第十三天、单元测试、反射、注解 单元测试 介绍 单元测试 就是针对最小的功能单元(方法)&#xff0c;编写测试代码对其进行正确性测试 咱们之前是如何进行单元测试的&#xff1f; 有啥问题 &#xff1f; 只能在main方法编写测试代码&#xff0c;去调用其他方法进行测试。 …

页面开发感想

页面开发 1、 前端预览 2、一些思路 2.1、首页自定义element-plus的走马灯 :deep(.el-carousel__arrow){border-radius: 0%;height: 10vh; }需要使用:deep(标签)才能修改样式 或者 ::v-deep 标签 2.2、整体设计思路 <template><div class"card" style&…

【ChatBI】text2sql-不需要访问数据表-超轻量Python库Vanna快速上手,对接oneapi

oneapi 准备 首先确保你有oneapi &#xff0c;然后申请 kimi的api 需要去Moonshot AI - 开放平台 然后添加一个api key 然后打开oneapi的渠道界面&#xff0c;添加kimi。 然后点击 测试&#xff0c; 如果能生成响应时间&#xff0c;就是配置正确。 然后创建令牌 http:…

Linux shell编程学习笔记60:touch命令

0 前言 在csdn技能树Linux入门的练习题中&#xff0c;touch是最常见的一条命令。这次我们就来研究它的用法。 1 touch命令的功能、格式和选项说明 我们可以使用touch --help命令查看touch命令的帮助信息。 [purpleendurer bash ~ ]touch --help Usage: touch [OPTION]... …

MATLAB-NGO-CNN-SVM,基于NGO苍鹰优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)

NGO-CNN-SVM&#xff0c;基于NGO苍鹰优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类) 1.数据均为Excel数据&#xff0c;直接替换数据就可以运行程序。 2.所有程序都经过验证&#xff0c;保证程序可以运行。 3.具有良好的编程习惯&#xff0c;程序均…

【Spring Boot】Java 的数据库连接模板:JDBCTemplate

Java 的数据库连接模板&#xff1a;JDBCTemplate 1.JDBCTemplate 初识1.1 JDBC1.2 JDBCTemplate 2.JDBCTemplate 实现数据的增加、删除、修改和查询2.1 配置基础依赖2.2 新建实体类2.3 操作数据2.3.1 创建数据表2.3.2 添加数据2.3.3 查询数据2.3.4 查询所有记录2.3.5 修改数据2…

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…

AES加密算法及AES-CMAC原理白话版系统解析

本文框架 前言1. AES加密理论1.1 不同AES算法区别1.2 加密过程介绍1.2.1 加密模式和填充方案选择1.2.2 密钥扩展1.2.3分组处理1.2.4多轮加密1.2.4.1字节替换1.2.4.2行移位1.2.4.3列混淆1.2.4.4轮密钥加1.3 加密模式1.3.1ECB模式1.3.2CBC模式1.3.3CTR模式1.3.4CFB模式1.3.5 OFB模…

redis 单节点数据如何平滑迁移到集群中

目的 如何把一个redis单节点的数据迁移到 redis集群中 方案&#xff1a; 使用命令redis-cli --cluster import 导入数据至集群 --cluster-from <arg>--cluster-from-user <arg> 数据源用户--cluster-from-pass <arg> 数据源密码--cluster-from-askpass--c…

驾校预约小程序系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学员管理&#xff0c;教练管理&#xff0c;驾校信息管理&#xff0c;驾校车辆管理&#xff0c;教练预约管理&#xff0c;考试信息管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;驾校信息&a…

基于docker安装redis服务

Redis是我们在项目中经常需要使用的缓存数据库&#xff0c;安装redis的方式也有很多&#xff0c;本文主要是给大家讲解如何基于docker进行redis服务的安装&#xff0c;主要介绍&#xff0c;如何拉取redis镜像、如何挂载redis的数据以及使用redis的配置文件和开启认证等功能&…