参考资料

预测: 方法与实践
Jason Brownlee 关于时序预测的文章
博士带你学 LSTM 系列文章

总览

时序数据

是什么

Time series data is a collection of observations (behavior) for a single subject (entity) at different time intervals (generally equally spaced as in the case of metrics, or unequally spaced as in the case of events).

指一组按照时间发生先后顺序排列而成的数据点集合。
image.png

image.png

特点

作用

  • 宕机时,调度
  • 异常检测
  • QoS

统计预测

AR、MA -> ARMA -> ARIMA

  • AR(p):AR 是 autoregressive 的缩写,表示自回归模型,含义是当前时间点的值等于过去若干个时间点的值的回归——因为不依赖于别的解释变量,只依赖于自己过去的历史值,故称为自回归;如果依赖过去最近的p个历史值,称阶数为 p,记为AR(p)模型。
  • MA(q):MA 是 moving average 的缩写,表示移动平均模型,含义是当前时间点的值等于过去若干个时间点的预测误差的回归;预测误差=模型预测值-真实值;如果序列依赖过去最近的q个历史预测误差值,称阶数为q,记为MA(q)模型。
  • ARMA:将AR和MA模型混合可得到ARMA模型。
  • ARIMA:其中的 I(d),I 是 integrated 的缩写,含义是模型对时间序列进行了差分;因为时间序列分析要求平稳性,不平稳的序列- 需要通过一定手段转化为平稳序列,一般采用的手段是差分;d表示差分的阶数,t时刻的值减去t-1时刻的值,得到新的时间序列称为1阶差分序列;1阶差分序列的1阶差分序列称为2阶差分序列,以此类推;另外,还有一种特殊的差分是季节性差分S,即一些时间序列反应出一定的周期T,让t时刻的值减去t-T时刻的值得到季节性差分序列。

什么是时间序列的平稳性
详细参考 上述模型具体介绍

Prophet

Prophet 是 Facebook 开源的一款基于 Python 和 R 语言的数据预测工具。
时序数据组成: y=S+T+H

image.png


机器学习

LSTM

LSTM 网络是 RNN(循环神经网络)的一种特殊形式,它可以对有价值的信息进行记忆,放弃冗余记忆,从而减小学习难度。

image.png
深入理解 LSTM

常见的 6 种模型结构
image.png

  1. 单个序列,多个时间步 -> 单个序列,单个时间步
  2. 多个序列,多个时间步 -> 单个序列,单个时间步
  3. 多个序列,多个时间步 -> 多个序列,单个时间步
  4. 单个序列,多个时间步 -> 单个序列,多个时间步
  5. 多个序列,多个时间步 -> 单个序列,多个时间步
  6. 多个序列,多个时间步 -> 多个序列,多个时间步


阅读 两个常见误解, 了解更多

记忆可能是被滥用,有可能迫使 LSTM 模型在很长的输入时间步长上记住单个观察。

Encoder-Decoder

Encoder-Decoder 结构先将输入数据用一个 RNN 网络(可以是 LSTM or GRU)编码成一个上下文向量 c ,拿到 c 之后,就用另一个 RNN 网络对其进行解码。
时序数据预测 - 图6

Encoder-Decoder 模型详解
Seq2Seq 参考实现

Attention 机制

Attention 机制的提出就是为了解决「序列过长,信息丢失」的问题。
时序数据预测 - 图7
时序数据预测 - 图8

对于预测模型而言 , 并不是之前所有的历史序列数据都对当前预测起重要作用 。恰恰相反,往往是距离待预测时间 点最近一段时间的数据才会影响到对未来走向的判断,这即是 马尔科夫性质 的约束。注意力机制在最近的状态下影响更大这方面比 LSTM 更加合理。

Attention 机制
Attention 操练起来
马尔可夫模型、隐马尔可夫模型

Talk is cheap

初步代码地址
使用 kaggle 平台

数据获取

通过 Prometheus 结合 rule
Prometheus 提供的 HTTP API (Prometheus 在 /api/v1 的路径下开放了 HTTP 接口,用户可以通过这些接口进行二次开发)
Prometheus 获取数据的相关总结

数据处理

pandas 构建 监督学习问题参考二
从一个时序数据 到 输入 (t-a, .., t-1) ,输出 (t, t+1, .., t+n)
类别的处理,缩放数据

模型的建立

Keras 简易搭建
Keras 可以看成是一种深度学习框架的高阶接口规范,它帮助用户以更简洁的形式定义和训练深度学习网络。

评价模型

可视化预测效果、数字化损失

优化方向

增量学习

时序数据预测 - 图9
增强实时性

主要矛盾在于如何确定增量的时机

智能调参

Grid Search
SMAC3 搜索超参数

Web-Traffic 第一名做法