时间序列预测 — 指数平滑、因素分解、机器学习、深度学习、数据增强

@创建于:2020.11.09
@修改于:2022.05.18

文章目录

    • 1、经典方法
      • 1.1 指数平滑
      • 1.2 因素分解
      • 1.2.1 朴素方法
      • 1.2.2 ARIMA
      • 1.2.3 Prophet
    • 2、机器学习
    • 3、深度学习
      • 3.1 RNN/LSTM/GRU
      • 3.2 Attention (Transformer)
      • 3.3 DeepAR
      • 3.4 WaveNet
      • 3.5 Informer时序
      • 3.6 Autoformer时序
      • 3.7 AdaNet
      • 3.8 TBATS
    • 4 、时序框架与工具
        • 4.1 TFT
        • 4.2 工具
    • 5、时序数据增强
    • 6、综合性资料

1、经典方法

1.1 指数平滑

  • 指数平滑方法(一次指数平滑、二次指数平滑、三次指数平滑):理论、代码、参数 介绍(全)
  • 指数平滑方法简介

1.2 因素分解

1.2.1 朴素方法

  • 时间序列预测的7种方法
  • 数据分析(工具篇)——时间序列预测的7种方法(附Python代码):翻译来源

1.2.2 ARIMA

  • Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测
  • 用python做时间序列预测九:ARIMA模型简介
  • 用python做时间序列预测十:时间序列实践-航司乘客数预测
  • arima模型 p q d 确定_时间序列中p,d,q的确定
  • ARIMA模型原理及实现
  • 机器学习(五)——时间序列ARIMA模型
  • ARIMA参数自动获取
  • pmdarima官网,实现ARIMA参数自动获取
  • 时间序列预测之–ARIMA模型,Python时间序列数据分析–以示例说明
  • 进化版AutoArima

1.2.3 Prophet

  • Facebook 时间序列预测算法 Prophet 的研究
  • 官网介绍
  • facebook prophet的探索(python语言)
  • LSTM与Prophet时间序列预测实验,对应github 。【有参考价值】

2、机器学习

  • 时间序列特征工程

  • 时间序列常用算法总结:传统方法+机器学习

3、深度学习

3.1 RNN/LSTM/GRU

  • 6 种用 LSTM 做时间序列预测的模型结构 - Keras 实现

  • CSDN:原理+论文+实战:60篇由浅入深的时间序列预测/分类教程汇总

  • CSDN:时间序列预测11:用电量预测 01 数据分析与建模

  • CSDN:时间序列预测12:用电量预测 02 朴素模型多步预测建模

  • CSDN:时间序列预测16:Encoder-Decoder LSTM 实现用电量/发电量预测 、==【开发和设计实现LSTM模型用于家庭用电的多步时间序列预测】==、Kaggle:Household Electric Power Consumption

  • CSDN:时间序列预测----(基于多变量深度模型)

  • 【RNN从入门到实战】GRU入门到实战——使用GRU预测股票,这个博主有干货。

3.2 Attention (Transformer)

  • CSDN:时间序列预测方法之 Transformer
  • CSDN:transformer理论、pytorch/tensorflow实现、时序预测/文本分类案例
  • 肺压力预测:TensorFlow Transformer【2022.03.26增加】

3.3 DeepAR

  • CSDN:时间序列预测方法之 DeepAR
    • 预知未来——Gluon 时间序列工具包(GluonTS),含代码!
    • DeepAR 预测算法
    • DeepAR 超参数
    • 多重时序高阶算法-DeepAR(供水管网压力预测Baseline)

3.4 WaveNet

  • CSDN:时间序列预测方法之 DeepState

  • CSDN:时间序列预测方法之 WaveNet
    【以上三篇在下面的个人主页也有记录,作者是同一人】

  • WaveNet相关原理及细节介绍

model = keras.models.Sequential()
model.add(keras.layers.InputLayer(input_shape=[60, 1]))
for rate in (1, 2, 4, 8) * 2:
    model.add(keras.layers.Conv1D(filters=20, kernel_size=2, padding="causal",
                                  activation="relu", dilation_rate=rate))
model.add(keras.layers.Conv1D(filters=10, kernel_size=1))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
model.compile(loss="mse", optimizer="adam")
model.summary()

3.5 Informer时序

  • Informer:超越Transformer的长序列预测模型
  • 长时间序列杀手–Informer
  • GitHub informer2020

3.6 Autoformer时序

  • Autoformer-时序模型的突破
  • 超算跑模型 | Autoformer 长时序预测
from hfai.datasets import LTSF

dataset = LTSF(data_name='ETTh1', split='train', seq_len=96, label_len=48, pred_len=24, features='S', target='OT', timeenc=0, freq='h')
loader = dataset.loader(batch_size=64, num_workers=4)

from hfai.models import Autoformer
import hfreduce.torch as hfr

model = Autoformer(enc_in=1, dec_in=1, c_out=1, seq_len=96, label_len=48, out_len=24, e_layers=2, d_layers=1, dropout=0.05, embed='timeF').cuda()
loss = Loss(model)
optimizer = Optimizer(model)

reducer = hfr.AsyncReduceFloat(registry_host, port, proc_rank, procs_per_node, node_rank, node_cnt, model)

# each epoch
for x, y, x_mark, y_mark in loader:
    reducer.zero_grad() 
    
    model(x, y, x_mark, y_mark)
    loss.backward()
    
    reducer.synchronize()
  • Autoformer:基于深度分解架构和自相关机制的长期序列预测模型

3.7 AdaNet

  • 谷歌开源的 AdaNet,我还没有研究。在这篇博客CSDN:时间序列预测_智能监控中的时间序列预测中提及到。

3.8 TBATS

  • pypi官网 tbats 1.1.0
  • 使用Python中的TBATS预测具有多个季节的时间序列
  • 时间序列预测模型TBATS

4 、时序框架与工具

4.1 TFT

  • TFT时序框架理解
  • TFT:一种可以解释时间序列预测结果的深度学习模型
  • GitHub google-research/tft/

4.2 工具

sktime
tslearn:开源的时间序列机器学习python工具包
tsfresh:开源的时间序列特征提取python工具包
shapelet
pyts:开源的时间序列分类Python工具包。提供预处理工具及若干种时间序列分类算法
Gluon 时间序列工具包(GluonTS)

5、时序数据增强

数据增强——时间序列

6、综合性资料

北大:金融时间序列分析讲义
使用R实现。

  • 时间序列预测方法汇总【推荐阅读。2022.03.26增加】
  • 知乎:时间序列预测方法总结
  • 一本以后价值的书籍:预测: 方法与实践,该书籍作者信息:Rob J Hyndman 和 George Athanasopoulos 澳大利亚莫纳什大学

你可能感兴趣的:(时序预测,时序预测,深度学习)