时间序列预测-深度学习方法
一、LSTM
class LSTM(nn.Module):def __init__(self, input_size=1, hidden_layer_size=100, output_size=1):super().__init__()self.hidden_layer_size = hidden_layer_sizeself.lstm = nn.LSTM(input_size, hidden_layer_size)self.linear = nn.Linear(hidden_layer_size, output_size)self.hidden_cell = (torch.zeros(1,1,self.hidden_layer_size),torch.zeros(1,1,self.hidden_layer_size)) # (num_layers * num_directions, batch_size, hidden_size)def forward(self, input_seq):lstm_out, self.hidden_cell = self.lstm(input_seq.view(len(input_seq) ,1, -1), self.hidden_cell)predictions = self.linear(lstm_out.view(len(input_seq), -1))return predictions[-1]
细节问题:
二、Transformer
transformer-time-series-prediction时序预测代码
三、Informer
大名鼎鼎的Informer,AAAI 2021 Best Paper提出的模型,是对Transformer的改进。
首先介绍一个新任务,LSTF(Long Sequence Time-Series Forecasting),即长序列预测任务。刚刚我们提到的LSTM模型,往往以滑动窗口(或动态解码)的形式做长序列预测,随着时间步的增长,预测误差会逐渐放大。
Informer2020原作者代码
args.seq_len = 48 # input sequence length of Informer encoder
args.label_len = 24 # start token length of Informer decoder
args.pred_len = 24 # prediction sequence length
代码中的以上参数配置表示:1~48时间步为encoder输入,25~72时间步为decoder输入(其中49~72时间步被置为0),25~72时间步为decoder输出。可以结合着下图来理解。
另一个容易混淆的参数是timeenc。timeenc = 0 if args.embed!=‘timeF’ else 1,如果timeenc为1,将考虑更多可能的周期信息。
四、一些重要的库
以下是一些学习过程中接触到的、关于时序任务的开源库的整理。
https://github.com/linkedin/luminol
luminol支持两大功能:时序异常检测、两条时间序列的相关性计算。
GitHub - jdb78/pytorch-forecasting: Time series forecasting with PyTorch
pytorch-forecasting是一个基于pytorch的时序预测库,内嵌了一系列模型,如LSTM、DeepAR、Transformer、N-BEATS等。
Anomaly Detection Toolkit (ADTK)
adtk提供了通过三大组件,提供基本的异常检测算法(Detector)、异常特征加工(Transformer)、处理流程控制(Aggregator)等功能。注意这里真的只是基本算法,例如在异常检测中,通过阈值/分位数/滑动窗口/自回归等方式判断异常,没有高级的检测模型。
https://github.com/alexminnaar/time-series-classification-and-clustering
https://github.com/FilippoMB/Time-series-classification-and-clustering-with-Reservoir-Computing
GitHub - wannesm/dtaidistance: Time series distances: Dynamic Time Warping (DTW)
tslearn’s documentation - tslearn 0.5.1.0 documentation
以上几个项目与时间序列聚类任务相关。
GitHub - MaxBenChrist/awesome_time_series_in_python: This curated list contains python packages for time series analysis
时间序列相关工具、模型、数据集汇总。
时间序列预测-深度学习方法相关推荐
- 时间序列预测——深度好文,ARIMA是最难用的(数据预处理过程不适合工业应用),线性回归模型简单适用,预测趋势很不错,xgboost的话,不太适合趋势预测,如果数据平稳也可以使用。...
补充:https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-15-276 如果用arima的话,还不如使用随机森 ...
- 图神经网络时间序列预测,时间序列神经网络预测
有哪些深度神经网络模型 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN).递归神经网络(RNN).深信度网络(DBN).深度自动编码器(AutoEncoder)和生成对抗网络(GAN)等. ...
- 做时间序列预测有必要用深度学习吗?事实证明,梯度提升回归树媲美甚至超越多个DNN模型...
来源:机器之心 本文约2600字,建议阅读9分钟 在时间序列预测任务上,你不妨试试简单的机器学习方法. 在深度学习方法应用广泛的今天,所有领域是不是非它不可呢?其实未必,在时间序列预测任务上,简单的机 ...
- 做时间序列预测没必要深度学习!GBDT性能超DNN
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 在深度学习方法应用广泛的今天,所有领域是不是非它不可呢?其实未必,在时 ...
- 做时间序列预测有必要用深度学习吗?梯度提升回归树媲美甚至超越多个DNN模型...
©作者 | 杜伟.陈萍 来源 | 机器之心 在深度学习方法应用广泛的今天,所有领域是不是非它不可呢?其实未必,在时间序列预测任务上,简单的机器学习方法能够媲美甚至超越很多 DNN 模型. 过去几年,时 ...
- 深度学习方法在负荷预测中的应用综述(论文阅读)
前言 本篇论文主要介绍了当下用于智能电网电力负荷预测的多种DL方法,并对它们的效果进行了比较.对于RMSE的降低效果上,集成DBN和SVM的方法RMSE降低显著,达到了21.2%.此外,PDRNN ...
- 5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型
时间序列预测在最近两年内发生了巨大的变化,尤其是在kaiming的MAE出现以后,现在时间序列的模型也可以用类似MAE的方法进行无监督的预训练 Makridakis M-Competitions系列( ...
- iMeta:哈佛刘洋彧等基于物种组合预测菌群结构的深度学习方法(全文翻译,PPT,中英视频)...
通过深度学习从物种组合中预测微生物组成 Predicting microbiome compositions from species assemblages through deep learnin ...
- 基于深度学习的时间序列预测
# 技术黑板报 # 第十一期 推荐阅读时长:15min 前言 时间序列建模历来是学术和工业界的关键领域,比如用于气候建模.生物科学和医学等主题应用,零售业的商业决策和金融等.虽然传统的统计方法侧重于从 ...
最新文章
- 昨天下午面了个哥们,也就问了4个问题,但好像他被我虐了
- 2019 AI Index 报告出炉:AI 领域取得的进展很多,但结果忧喜参半
- html5模拟keyup事件
- HDU1151 Air Raid
- JQuery方式执行ajax请求
- 网络仿真中数据生成相关
- 实现字符串的编码转换,用以解决字符串乱码问题
- l380废墨收集垫已到使用寿命_湖北雨水收集系统定制
- “不融资,不上市”的帆软为何上榜福布斯2021 Cloud 100强?
- flask创建mysql表_Flask-SQLAlchemy 无法创建数据库???
- 内存中的fas和lsp
- 谈谈 js判断数组 那点事
- 软件设计师教程-倪奕文-专题视频课程
- 修复计算机u盘,u盘损坏怎么修复 u盘损坏修复方法
- 那个“天使”阿桑奇又回来了
- arduino烧写失败,给Arduino烧录引导程序,出现以下错误,到底是什么原因导致的。知道的高手请帮忙...
- Marshal Lion扩大到中国
- 【白板推导系列笔记】数学基础-概率-高斯分布-求联合概率分布
- 手机如何测光照度_如何3分钟学会用手机的专业模式拍照?
- 【绘制】HTML5 Canvas坐标变换——坐标系的平移(translate)、缩放(scale)、旋转(rotate)、镜像。(图文、代码)