Stacking算法

简介: 大家都是只关注stacking的操作是什么,虽然这很重要,但是却没有说明白为何有效。这一直是困惑我的点,我想通过论文搞清这些东西。貌似没找到,找到再贴。  我们将假设训练数据:train.csv有1000行;测试数据:test.csv有200行。

大家都是只关注stacking的操作是什么,虽然这很重要,但是却没有说明白为何有效。这一直是困惑我的点,我想通过论文搞清这些东西。貌似没找到,找到再贴。
  我们将假设训练数据:train.csv有1000行;测试数据:test.csv有200行。然后按照下图所示训练:

img_d5fdb128e94f58fdf6508dfa05935166.jpe

如图所示,我们现在用5折交叉验证来训练数据,model1要做满5次训练和预测。
第一次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a1。
第二次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a2。
第三次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a3。
第四次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a4。
第五次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a5。
然后将a1到a5拼接起来,得到一列,共1000行的数据。
针对测试集test.csv有两种方法,一种是全部训练完成后,一次性预测输出200行数据;另一种是model1每次做完训练就那test.csv中的数据做预测,一种得到5次200行的数据,然后做平均,得到一列200行的数据。
如果有10个基模型,那么根据train.csv会得到10列数据,作为x, 原来train.csv中的label作为y(很多文章都没说这点,导致初学者有很多误解),然后再放到一个模型中做训练。而根据test.csv会得到10列200行的数据,作为测试数据。
最后,将训练好的模型预测10列200行的数据,得到的最终结果就是最后需要的数据。这仅仅只是2层stacking,多的可以搞很多层。

最后,我想贴一些现成的stacking的框架的链接:
https://github.com/liyi19950329/stacking
https://github.com/liyi19950329/vecstack
https://github.com/liyi19950329/mlens
https://github.com/rasbt/mlxtend
https://github.com/mpearmain/gestalt
https://github.com/reiinakano/xcessiv
https://github.com/kaz-Anova/StackNet
这些框架都集成好了,学会使用就能实现stacking,不过我还是建议看看源码
如果源码看不下去,可以看看kaggle的教程:https://www.kaggle.com/arthurtok/introduction-to-ensembling-stacking-in-python

Blending:用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。

目录
相关文章
|
C#
使用C#实现随机数生成器
在许多编程任务中,我们经常需要生成随机数。C#编程语言提供了用于生成伪随机数的内置类库。本篇博客将介绍如何使用C#来实现一个简单的随机数生成器。
565 0
|
SQL 缓存 NoSQL
高性能短链设计
高性能短链设计
|
5月前
|
分布式计算 搜索推荐 算法
Java 大视界 -- Java 大数据在智慧养老服务需求分析与个性化服务匹配中的应用(186)
本篇文章探讨了Java大数据技术在智慧养老服务需求分析与个性化服务匹配中的应用。通过整合老年人健康数据与行为数据,结合机器学习与推荐算法,实现对老年人健康风险的预测及个性化服务推荐,提升养老服务的智能化与精准化水平,助力智慧养老高质量发展。
|
3月前
|
算法 测试技术 决策智能
美团开源发布 LongCat-Flash-Chat:专为高效智能体任务设计,推理速度超100 tokens/s
9月1日,美团正式发布 LongCat-Flash-Chat,并同步开源。LongCat-Flash 采用创新性混合专家模型(Mixture-of-Experts, MoE)架构,总参数 560 B,激活参数 18.6B~31.3B(平均 27B),实现了计算效率与性能的双重优化。
250 1
|
4月前
|
文字识别 自然语言处理 物联网
Qwen‑Image 如何实现 95 %+ 多语种文本渲染准确率
摘要:依托跨语种海量高质量数据、20 B 参数的双通道 MMDiT 架构,以及由浅入深的课程式多任务训练策略,Qwen‑Image 将开源扩散模型在文字渲染上的字符准确率提升到 95 %以上,并保持段落级排版一致性。下文将从数据、模型、训练、评测四个维度拆解这一结果的技术原理,并给出快速复现与未来展望。
287 0
|
4月前
|
弹性计算 云计算
阿里云服务器如何实现自动伸缩
阿里云服务器(ECS)的自动伸缩功能可以通过弹性伸缩服务(Auto Scaling)实现,该服务能够根据业务需求动态调整计算资源。 **一、准备工作:** 在实现自动伸缩配置之前,需完成以下准备工作: 1.创建阿里云账号并完成实名认证。(登录账号过程中有不懂的可以看小编的教程帖) 2.开通弹性伸缩服务(ESS),使用弹性伸缩服务(ESS)实现ECS实例的自动伸缩, 弹性伸缩服务(ESS)可以根据业务需求自动创建或移除ECS实例,实现计算能力的动态调整。 3.创建专有网络VPC和安全组,以提高网络的安全性和隔离性。
|
12月前
|
机器学习/深度学习 人工智能 监控
AI视频监控技术的核心优势与实践
AI视频监控技术结合了计算机视觉、深度学习和大数据分析,能够实时分析监控画面,识别异常行为和场景变化。其核心在于从“被动记录”转型为“主动识别”,提升监控效率并减少安全隐患。主要应用场景包括泳池管理、健身器械区域、人员密度预警和异常事件检测。系统架构支持多种摄像头设备,采用边缘计算和Docker部署,具备实时性、高准确率和扩展性等优势。未来将优化复杂场景适应性和实时计算负载,进一步提高系统性能。
2717 7
|
11月前
|
小程序 IDE PHP
圈子源码如何打包生成App小程序/开发一个圈子系统软件所需要的费用体现在哪里?
将PHP源码打包成App的过程涉及多个步骤和技术选择。以圈子源码为例,首先明确需求,确定App功能和目标用户群体,并根据需求开发小程序页面,如用户注册、圈子列表等。源码准备阶段确保源码适用于小程序开发,环境配置需安装IDE(如微信开发者工具)及依赖库。最后在IDE中打包小程序并上传至管理平台,通过审核后发布。费用方面,模板开发成本较低,定制开发则更高,具体取决于需求复杂度和第三方服务费用。
350 0
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin多线程优化策略
【10月更文挑战第11天】本文探讨了如何在Kotlin中实现高效的多线程方案,特别是在Android应用开发中。通过介绍Kotlin协程的基础知识、异步数据加载的实际案例,以及合理使用不同调度器的方法,帮助开发者提升应用性能和用户体验。
211 4