前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >深度学习与时间序列预测:来自Kaggle比赛的宝贵经验

深度学习与时间序列预测:来自Kaggle比赛的宝贵经验

作者头像
量化投资与机器学习微信公众号
发布于 2022-05-09 05:42:21
发布于 2022-05-09 05:42:21
2.6K0
举报

量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。

作者:Ignacio Oguiza        编译:1+1=6

前言

深度学习在时间序列预测中的重要性不断增强。神经网络第一次在Kaggle时间序列竞赛中位列前3名是在2015年(Rossmann store sales)。从那时起,神经网络就越来越常见地出现在排行榜的头部。而且这种趋势还在继续。事实上,在最近的Ventilator Pressure Prediction时间序列比赛中,前15名的队伍使用了神经网络。

两年前,作者创建了tsai深度学习库,以便于使用最先进的深度学习模型和方法对时间序列数据进行建模与预测。

当上次Kaggle时间序列比赛结束时,我很想知道顶级队伍是如何取得如此优异的成绩的。因此,作者查阅了15个金牌获得者团队发布的所有解决方案。这里有一些关键的发现。

比赛简介

在过去的两个月里,Kaggle举办了谷歌脑呼吸机压力预测比赛。目的是模拟一个连接到镇静剂患者肺部的呼吸机。更具体地说,参与者必须预测在每次呼吸的吸气阶段肺部的压力。

数据集由大约125k次模拟呼吸组成,其中60%被标记(训练数据)。每次呼吸有80个不规则采样的时间步,每个时间步有5个特征。训练集中的每一次呼吸都有一个80步的序列目标(压力)。我们的目标是在测试数据中预测每次呼吸的序列。关键指标为平均绝对误差(MAE)。

重要发现

▌明确任务

是一个序列到序列的任务,两个序列并行发生。有趣的是,目标并不是完全连续的。每个目标步骤都是float类型,只有950个可能的值。正如预期的那样,大多数顶级团队将这个问题作为回归任务来处理。然而,一些金牌得主成功地将比赛作为一个分类任务处理。他们预测了950种类型的概率。我很惊讶地发现分类方法如此有效。你可以用你自己的数据集试试!(如果你的数据是连续的,你总是可以创建离散目标箱)。

▌特征

Top团队使用了三种不同的方法:

  • 只用原始特征。只有获胜的团队在他们的一个模型中成功地使用了这种方法。为了弥补特征的少量,他们使用了大量的epoch (2.5k)。
  • 原始特征加上人为定义的特征。大多数团队都遵循这条路线,通常会增加几十个特征。精心设计的、人工定义的特征可以帮助模型更快地聚合,因此需要的时代更少。人工设计的特征提供了利用专家领域知识提高性能的机会。
  • 原始特征+人工定义的特征+机器学习出来的特征。一些团队将输入信息通过一个具有多个卷积层的特征提取器来学习新特征。每个卷积层使用不同的核大小。

▌模型

LSTM和Transformer霸占了排行榜,而CNN和增强树模型没有竞争力。

所有Top团队都使用了神经网络(深度学习)。与其他领域不同,增强树没有竞争力。没有一个最好的解决方案包括增强树。

主要使用的模型包括:

1、Stacked bidirectional LSTMs(一种递归神经网络)主导了这场竞赛。几乎所有的金牌得主都使用了LSTM模型的预测作为他们最终组合的一部分。如前所述,一些团队通过在LSTM层之前添加特征提取器来构建混合模型。

2、有些团队使用了Transformer,但有些团队说Transformer的效果不如LSTM。在使用Transformer达到理想效果的方案中,Transformer模型只使用了编码器部分,而没有位置编码,因为时间已经是特征之一。另外两个定制化的步骤是在Transformer之前添加卷积层和跳跃层。

▌自定义损失函数

自定义损失函数是Top团队胜利的重要因素!

比赛使用MAE(平均绝对误差)作为评估标准。因此,大多数参与者使用L1Loss或相关的loss(HuberLoss、SmoothL1Loss等)。然而,几乎所有Top团队都使用了带有辅助损失的多任务学习。他们在原有目标的基础上增加了新的目标,以减少过拟合,提高泛化效果。

如前所述,这里的目标是具有80个时间步的压力序列。然而,顶级团队修改了它来预测次要目标,比如:

  • 当前时间步与以前时间步(间隔1到4步)之间的压力差,或
  • 每个时间步的累积压力,或
  • 每个时间步长的压力方差

压力差和累积压力的加入,迫使模型学习目标及其导数和积分,提高了模型的性能。

▌框架和硬件

当然大部分团队建模选用的框架是TensorFlow或Pytorch,Scikit-learn主要用在数据预处理和交叉验证的环节。TPU和GPU也非常重要,因为一个fold的训练经常要花费数小时。

▌数据增广

数据增广是减少过拟合最好的方法。

很少有团队能够使用数据增广的方法。但那些使用了数据增广的团队都显著提高了模型的效果。主要的数据增广的方法有:

  • Random shuffling of nearby time steps (based on a rolling window).
  • Random masking. During training, one of the categorical variables was set to zero.
  • Mixup

▌模型训练

Top团队使用大量的epoch来训练他们的模型(通常在150到300之间,尽管有些人使用了高达2.5k!),它们都使用了一些学习速率调度器。Cosine Annealing和ReduceLROnPlateau 是最常用的两种方法。至少有一个团队声称使用Cosine Annealing With Warm Restarts.可以显著提高性能。

▌复合模型

复合模型经常出现在Kaggle比赛中。这在这里非常重要。原因是,当你使用平均绝对误差(MAE)来评估一个预测时,通常使用中值比平均值更好。中值只有在有很多值的时候才准确。

所有Top团队都创建了一个或多个强大的模型,并运行:

  • 多重折叠(10到15 folds)
  • 或使用不同种子的所有训练数据
  • 或者两者的结合后处理。金牌获得者使用了三种主要技术。

▌Pseudo-labels

一些最好的解决方案还利用未标记的数据集来生成额外的标签。与上面描述的其他技术相比,这种技术的改进并不大。

结论

时间序列领域与计算机视觉和NLP的一样,神经网络逐渐的占据了主导地位。

神经网络加上领域专家知识可以显著提高时间序列任务的性能。近年来,深度学习在时间序列中的应用发展迅速。它已经成熟,所以现在是开始使用它来解决时间序列问题的好时机。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量化投资与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用 TiDE 进行时间序列预测
时间序列预测一直是数据科学领域的一个热门研究课题,广泛应用于能源、金融、交通等诸多行业。传统的统计模型如ARIMA、GARCH等因其简单高效而被广泛使用。而近年来,随着深度学习的兴起,基于神经网络的预测模型也备受关注,表现出了强大的预测能力。
数据STUDIO
2024/07/24
5330
使用 TiDE 进行时间序列预测
深度时间序列预测和基础模型的研究进展
本文综述了深度学习在时间序列预测中的应用,特别是在流行病预测领域。尽管深度学习在时间序列预测中表现出显著优势,但仍面临挑战,如时间序列不够长、无法利用积累的科学知识以及模型的解释性。
算法进阶
2024/07/10
3170
深度时间序列预测和基础模型的研究进展
时间序列预测:深度学习与统计学,谁赢了?
不少学术论文对深度学习模型进行了深度探讨,但并没有展示出完整的情况。有趣的是,即使在 NLP 的案例中,一些人更倾向于将 GPT 模型的重大突破归功于“更多的数据和计算能力”,而非“更优秀的机器学习研究”。
数据STUDIO
2024/04/11
6010
时间序列预测:深度学习与统计学,谁赢了?
LSTM 已死,事实真是这样吗?
就像 20 世纪初,爱因斯坦的 Annus mirabilis 论文成为了量子力学的基础。只是这一次,是 AlexNet 论文 [1],这是一种挑战计算机视觉的架构,并重新唤起了人们对机器学习(后来转变为深度学习)的兴趣。在过去的十年里,人们见证了机器学习领域革命性的进步,这是无可否认的。
deephub
2022/04/14
8880
LSTM 已死,事实真是这样吗?
深度学习与统计学中的时间序列预测
近年来,深度学习在NLP领域取得了显著进展。由于时间序列本质上也是呈现出序列性,如果将预训练的转换器(transformers)模型应用在时间序列预测上,结果将会如何呢?
LeonAlgo
2025/02/26
990
深度学习与统计学中的时间序列预测
算法金 | 时间序列预测真的需要深度学习模型吗?是的,我需要。不,你不需要?
时间序列预测,这玩意儿在数据分析界可是个香饽饽,尤其在电力、交通、空气质量这些领域里,预测得准,资源分配更合理,还能让相关部门提前做好准备。但深度学习这小子横空出世,开始抢传统统计学方法的风头。那么问题来了,时间序列预测非得用深度学习吗?咱们今天就来掰扯掰扯。
算法金
2024/07/08
840
算法金 | 时间序列预测真的需要深度学习模型吗?是的,我需要。不,你不需要?
R语言基于递归神经网络RNN的温度时间序列预测
在本文中,我们将介绍三种提高循环神经网络性能和泛化能力的高级技术。我们演示有关温度预测问题的三个概念,我们使用建筑物屋顶上的传感器的时间数据序列。
拓端
2021/02/26
1.3K0
R语言基于递归神经网络RNN的温度时间序列预测
5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型(附代码)
来源:DeepHub IMBA本文约6700字,建议阅读12分钟本文讨论了5种专门研究时间序列预测的深度学习体系结构。 时间序列预测在最近两年内发生了巨大的变化,尤其是在kaiming的MAE出现以后,现在时间序列的模型也可以用类似MAE的方法进行无监督的预训练。 Makridakis M-Competitions系列(分别称为M4和M5)分别在2018年和2020年举办(M6也在今年举办了)。对于那些不了解的人来说,m系列得比赛可以被认为是时间序列生态系统的一种现有状态的总结,为当前得预测的理论和实践提供
数据派THU
2022/08/29
1.2K0
5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型(附代码)
时序预测的深度学习算法介绍
深度学习方法是一种利用神经网络模型进行高级模式识别和自动特征提取的机器学习方法,近年来在时序预测领域取得了很好的成果。常用的深度学习模型包括循环神经网络(RNN)、长短时记忆网络(LSTM)、门控循环单元(GRU)、卷积神经网络(CNN)、注意力机制(Attention)和混合模型(Mix )等,与机器学习需要经过复杂的特征工程相比,这些模型通常只需要经数据预处理、网络结构设计和超参数调整等,即可端到端输出时序预测结果。深度学习算法能够自动学习时间序列数据中的模式和趋势,神经网络涉及隐藏层数、神经元数、学习率和激活函数等重要参数,对于复杂的非线性模式,深度学习模型有很好的表达能力。在应用深度学习方法进行时序预测时,需要考虑数据的平稳性和周期性,选择合适的模型和参数,进行训练和测试,并进行模型的调优和验证。来源:轮回路上打碟的小年轻(侵删)
数据STUDIO
2023/09/04
1.8K0
时序预测的深度学习算法介绍
深度学习时间序列异常检测方法
本文全面概述了深度学习用于时间序列异常检测的最新架构,提供了基于策略和模型的方法,并讨论了各种技术的优点和局限性。此外,还举例说明了近年来深度学习在时间序列异常检测中各领域的应用。
算法进阶
2024/07/11
1.1K0
深度学习时间序列异常检测方法
AI论文速读 |【综述】2024 [arXiv] 时间序列预测中的深度学习和基础模型
论文标题:A Survey of Deep Learning and Foundation Models for Time Series Forecasting
时空探索之旅
2024/11/19
3270
AI论文速读 |【综述】2024 [arXiv] 时间序列预测中的深度学习和基础模型
R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感
在这篇文章中,我们将回顾三种提高循环神经网络的性能和泛化能力的高级方法。我们将在一个温度预测问题上演示这三个概念,我们使用来自安装在建筑物屋顶的传感器的数据点的时间序列。
拓端
2024/10/21
1220
R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感
Kaggle大神们的致胜法宝!
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 作者 | Eniola Olaleye    选自 | medium 机器之心编译 | 张倩 统计网站:https://mlcontests.com/ 作者得出了几个重要结论: 1、在所有竞赛中,Kaggle上的
量化投资与机器学习微信公众号
2022/03/29
7290
Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招
AI 研习社消息,Kaggle 上 Corporación Favorita 主办的商品销量预测比赛于两个月前落下帷幕,此次比赛的奖金池共计三万美元,吸引到 1675 支队伍参赛。
AI研习社
2018/07/26
4K0
Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招
深度学习在股市的应用概述
股票市场预测由于其非线性、高度波动性和复杂性,一直是个复杂的问题。近年来,深度学习在许多领域占据了主导地位,在股市预测方面取得了巨大的成功和普及。本文以深度学习技术为重点,对其应用于股市预测研究进行结构化和全面的概述,介绍了股市预测的四个子任务及股市预测主流模型,并分享了一些关于股市预测的新观点及未来的几个方向。
算法进阶
2023/09/15
1.1K0
深度学习在股市的应用概述
深度学习时间序列的综述
摘要:时间序列一般是指对某种事物发展变化过程进行观测并按照一定频率采集得出的一组随机变量。时间序列预测的任务就是从众多数据中挖掘出其蕴含的核心规律并且依据已知的因素对未来的数据做出准确的估计。由于大量物联网数据采集设备的接入、多维数据的爆炸增长和对预测精度的要求愈发苛刻,导致经典的参数模型以及传统机器学习算法难以满足预测任务的高效率和高精度需求。近年来,以卷积神经网络、循环神经网络和 Transformer 模型为代表的深度学习算法在时间序列预测任务中取得了丰硕的成果。为进一步促进时间序列预测技术的发展,综述了时间序列数据的常见特性、数据集和模型的评价指标,并以时间和算法架构为研究主线,实验对比分析了各预测算法的特点、优势和局限;着重介绍对比了多个基于 Transformer 模型的时间序列预测方法;最后结合深度学习应用于时间序列预测任务存在的问题与挑战对未来该方向的研究趋势进行了展望。(文末附论文下载地址)
算法进阶
2023/08/28
8840
深度学习时间序列的综述
时间序列预测一定需要深度学习模型吗?
时间序列预测是机器学习中的一项常见的任务,具有非常广泛的应用,例如:电力能源、交通流量和空气质量等预测。传统的时间序列预测模型往往依赖于滚动平均、向量自回归和自回归综合移动平均。另一方面,最近有人提出了深度学习和矩阵分解模型来解决时间序列预测问题,并获得了更具竞争力的性能,但是该类模型往往过于复杂。
Datawhale
2022/05/29
5660
时间序列预测一定需要深度学习模型吗?
LSTM还没「死」!
选自towardsdatascience 作者:Nikos Kafritsas 机器之心编译 编辑:杜伟、陈萍 如果说「LSTM」已死,它为何依然能够在Kaggle竞赛中成为赢家呢? 长短期记忆(Long Short-Term Memory,LSTM)是一种时间循环神经网络(RNN),论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。 在过去几十年里,LSTM发展如何了? 密切关注机器学习的研究者,最近几年他们见证了科学领域前所未有的革命
机器之心
2022/03/28
6120
12篇顶会论文,深度学习时间序列预测经典方案汇总
早期的时间序列预测主要模型是诸如ARIMA这样的单序列线性模型。这种模型对每个序列分别进行拟合。在ARIMA的基础上,又提出了引入非线性、引入外部特征等的优化。然而,ARIMA类模型在处理大规模时间序列时效率较低,并且由于每个序列分别独立拟合,无法共享不同序列存在的相似规律。深度学习模型在NLP、CV等领域取得了成功应用后,也被逐渐引入到解决时间序列预测问题中。通过不同序列共享一个深度学习模型,让模型能从多个序列中学到知识,并且提升了在大规模数据上的求解效率。
圆圆的算法笔记
2022/09/22
9330
12篇顶会论文,深度学习时间序列预测经典方案汇总
使用TensorFlow和深度混合学习进行时间序列预测
在本文中,我们将看到深度混合学习如何应用于时间序列数据,以及它是否与图像数据一样有效。
deephub
2021/01/12
1.2K0
使用TensorFlow和深度混合学习进行时间序列预测
推荐阅读
相关推荐
使用 TiDE 进行时间序列预测
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档