当前位置:   article > 正文

时间序列基本方法_时间序列缩放

时间序列缩放
  1. 时间序列基本规则法-周期因子法

2. 线性回归-利用时间特征做线性回归

  • 提取时间的周期性特点做为特征,此时训练集每条样本为"时间特征->目标值",时间序列的依赖关系被剔除,不需要严格依赖滑窗截取训练样本。常见是将时间用0-1哑变量表达,有以下若干种特征:
    • 将星期转化为了0-1变量,从周一至周天,独热编码共7个变量
    • 将节假日转化为0-1变量,视具体节假日数目,可简单分为两类,"有假日"-"无假日",独热编码共2个变量;或赋予不同编码值,如区分国庆、春节、劳动节等使用1、2、3表示
    • 将月初转化为0-1变量,简单分两类表示为"是月初"-"非月初",共2个特征
    • 类似的月中、月初可以转化为0-1变量
    • 控制时间粒度,区分是weekday or weekend
  • 观察序列,当序列存在周期性时,线性回归也可做为baseline

3.传统时序建模方法,ARMA/ARIMA等线性模型。参考:

4.时间序列分解,使用加法模型或乘法模型将原始序列拆分为4部分。

5. 特征工程着手,时间滑窗改变数据的组织方式,使用xgboost/LSTM模型/时间卷积网络等。参考:

6. 转化为监督学习数据集,使用xgboot/LSTM模型/时间卷积网络/seq2seq(attention_based_model)。参考:

7.Facebook-prophet,类似于STL分解思路,因为觉得在控制程度和可解释性上比传统时序模型更有优势,所以单独列车。参考:

  • 官网说明(英文)
  • 官网notbook(英文)
  • 中文推荐 

    @张戎

     的文章,从原理到使用都有介绍,很良心。张戎:Facebook 时间序列预测算法 Prophet 的研究
  • 个人理解,想进一步用好,可以好好看看论文和官网,有空撸遍python的源码
  • 理解prior_scale在代码中如何实现控制趋势项、季节项和节假日项
  • 对于趋势项参数changepoint_range、changepoint_prior_scale如何影响模型拟合和泛化程度
  • 趋势项中的Uncertainty-Intervals(interval_width参数)如何在预测结果使用
  • 论文中的"Simulated Historical Forecasts"对应prophet的Diagnostics工具,可以利用该工具做时间序列的交叉验证评价模型准确程度,如何利用该工具调整模型

8. 深度学习网络,结合CNN+RNN+Attention,作用各不相同互相配合。目前也只是看了论文,有代码的顺便给出代码链接,代码还没细看。

主要设计思想:

  • CNN捕捉短期局部依赖关系
  • RNN捕捉长期宏观依赖关系
  • Attention为重要时间段或变量加权
  • AR捕捉数据尺度变化(没太搞懂啥意思~)

方法:

代码的坑填上。

9.将时间序列转化为图像,再应用基于卷积神经网络的模型做分析

难点:

  • Gramian Angular Field (格拉姆角场GAF)
    • 方法描述:将笛卡尔坐标系下的一维时间序列,转化为极坐标系表示,再使用三角函数生成GAF矩阵。
    • 计算过程:
      • 数值缩放:将笛卡尔坐标系下的时间序列缩放到[0,1]或[-1,1]区间
      • 极坐标转换:使用坐标变换公式,将笛卡尔坐标系序列转化为极坐标系时间序列
      • 角度和/差的三角函数变换:若使用两角和的cos函数则得到GASF,若使用两角差的cos函数则得到GADF
    • 优势:
      • 极坐标中半径表示时间戳,角度表示时间序列数值
      • 通过半径r保持序列的时间依赖性
      • 极坐标保留时间关系的绝对值(翻译得不好,大家可看原文:polar coordinates preserve absolute temporal relations)
      • 每个序列产生唯一的极坐标映射图
      • 可通过GAF矩阵的主对角线,恢复笛卡尔坐标下的原始时间序列
    • 缺点:
      • 当序列长度为n时,产生的GAF矩阵大小为n*n,因此作者建议使用分段聚合近似(Piecewise Aggregation Approximation)保留序列趋势同时减少序列大小。
    • 参考:
  • Short Time Fourier Transform (短时傅里叶变换STFT)
    • 通用的语音信号处理工具。在我毕业论文里就有使用到,论文还没上知网,链接后面再补吧。
    • 将时间序列转为时频图像
  • 工具:

  • tslearn:开源的时间序列机器学习python工具包
  • tsfresh:开源的时间序列特征提取python工具包
  • pyts:开源的时间序列分类Python工具包。提供预处理工具及若干种时间序列分类算法
  • 理解时间序列预测问题是要用历史数据预测未来数据
  • 时间序列问题的训练集、测试集划分
  • 特征工程方法及过程(方法2的过程很有趣)
  • 如何转化为监督学习数据集
  • LSTM计算过程理解,包括输入输出维度、参数数量等
  • seq2seq过程的理解,decoder实现
  • attention注意力机制的原理及实现,包括encoder-decoder attention, self attention, multi-head attention等
  • 时间卷积网络的含义,顾名思义就是将CNN方法用于时间序列中,主要是dilated-convolution and causal-convolution
  • prophet预测原理,各参数对模型拟合效果、泛化效果的影响
  • TPA侧重选择关键变量
  • 时间序列基本规则法中周期因子得计算过程
  • 传统方法如周期因子、线性回归、ARMA等的预测结果表现为,预测趋势大致正确,但对波动预测不理想,体现在波动的幅度差异、相位偏移。
  • 时间序列分解方法。理解加法模型和乘法模型,判断分解模型的选取及分解技巧。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/1004101
推荐阅读
相关标签
  

闽ICP备14008679号