【时间序列】——数据竞赛中的时间序列预测

系列文章目录


文章目录

  • 系列文章目录
  • 内容介绍
  • 一、 时序预测介绍
    • 1、基本概念
    • 2、应用场景
    • 3、评价指标
  • 二、时间序列特性
    • 1.时间序列分解
  • 三、时序预测方法
    • 1、Arima
    • 2、Facebook Prophet
    • 3、树模型
    • 4、线性回归
    • 5、神经网络
  • 总结


内容介绍

本文内容整理自“深度之眼”《数据竞赛中的时间序列预测》课程,详情请咨询文末微信

【时间序列】——数据竞赛中的时间序列预测_第1张图片


一、 时序预测介绍

1、基本概念

  • 预测: 指提供一段时间内某变量y值的变化情况, 求未来一 段时间y的变化情况
  • 时间序列: 指随时间变化的一组数据。
  • 时间序列问题
    • 时序预测, 回归问题, 对未来一个或多个时刻值进行预
    • 时序分类, 对给定的时间序列进行分类, ECG/EEG
    • 时序异常检测/预测, 特殊的时序分类, 故障检测/预测
    • 寿命预测
      【时间序列】——数据竞赛中的时间序列预测_第2张图片

2、应用场景

  • 工业
    • 2020工业大数据竞赛水电站流量预测
    • 2021工业大数据竞赛风电场短期风况预测, 配件需求预测, 物料需求预测
    • 2022年山东省大数据竞赛电网母线负荷预测, 供热预测 • 2022年KDD CUP风力发电预测
  • 金融量化
    • JPX Tokyo Stock Exchange Prediction
    • Ubiquant Market Prediction
    • Optiver Realized Volatility Prediction
    • Jane Street Market Prediction
  • 其他
    • 农业, 2020讯飞开发者大赛温室温度预测
    • 医疗, 2021山东省大数据竞赛就诊人数预测
    • 销售, Kaggle M5沃尔玛销量预测( 系列赛)

3、评价指标

  • 平均平方误差, MSE(RMSE)
    • 异常值敏感
      1 n ∑ i = 1 n ( y i − y ^ i ) 2 \frac{1}{n} \sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2} n1i=1n(yiy^i)2
  • 平均绝对误差, MAE
    1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \frac{1}{n} \sum_{i=1}^{n}\left|y_{i}-\hat{y}_{i}\right| n1i=1nyiy^i
  • 平均绝对百分比误差, MAPE
    • 相对误差, 用于各id值有量级差异, 流量预测
      100 % n ∑ i = 1 n ∣ y ^ i − y i y i ∣ \frac{100 \%}{n} \sum_{i=1}^{n}\left|\frac{\hat{y}_{i}-y_{i}}{y_{i}}\right| n100%i=1nyiy^iyi
  • 皮尔逊相关系数
    • 衡量变化趋势而非值本身
      ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) ∑ i = 1 n ( X i − X ˉ ) 2 ∑ i = 1 n ( Y i − Y ˉ ) 2 \frac{\sum_{i=1}^{n}\left(X_{i}-\bar{X}\right)\left(Y_{i}-\bar{Y}\right)}{\sqrt{\sum_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2}} \sqrt{\sum_{i=1}^{n}\left(Y_{i}-\bar{Y}\right)^{2}}} i=1n(XiXˉ)2 i=1n(YiYˉ)2 i=1n(XiXˉ)(YiYˉ)

二、时间序列特性

1.时间序列分解

时间序列分解( Time Series Decomposition)

  • 加法模型, y(t) = S(t) + T(t) + R(t)
  • 乘法模型, y(t) = S(t) * T(t) * R(t)

其中:

  • 周期项S(t), 本身的周期性变化
  • 趋势项T(t), 长期的趋势
  • 残差项R(t), 其他外界因素造成的扰动
    【时间序列】——数据竞赛中的时间序列预测_第3张图片
    【时间序列】——数据竞赛中的时间序列预测_第4张图片

为了更好的描述时间序列, 根据时间序列分解的三部分分别进行描述

  • 如何去表征序列的周期性, 通常预测序列都有一定的周期性
  • 如何表征或是消除趋势性(不平稳),趋势性会影响部分模型的预测能力
  • 以及如何去表征外界因素, 一般通过对其他附加特征量进行分析

时间序列训练集验证集划分

  • 为了避免信息泄露, 采用时序特有的TimeSeriesSplit
  • 保证训练集与验证集时间不重合, 验证集时刻在训练集之后
    【时间序列】——数据竞赛中的时间序列预测_第5张图片

三、时序预测方法

1、Arima

  • Arima(Autoregressive Integrated Moving Average model),其中ar为自回归, ma为移动平均, 此外还有差分
    • 自回归p: 采用多少历史数据进行拟合
    • 差分d: d阶差分后序列变得平稳
    • 移动平均q: 采用多少时间的历史外界扰动
  • pdq定阶: 手动定阶或pmdarima库autoarima自动定阶
  • 改进版: 加上季节性的SARIMA, 再加上外部变量的SARIMAX

2、Facebook Prophet

  • Fbprophet为Facebook开发的基于时序分解的预测模型
  • 在时序分解的基础上, fbprophet还引入了节假日效应,手动拐点等, 可调参数相对多, 拟合性远强于arima Fbprophet
  • 同时引入了置信区间
    【时间序列】——数据竞赛中的时间序列预测_第6张图片

3、树模型

  • “ 万金油模型” , 决策树 => 随机森林 => GBDT => LigthGBM、 Xgboost及Catboost
  • 输入输出样本构造
  • 特征构造
    • 时刻特征
    • 滞后特征
    • 滑窗统计特征
    • 交叉特征
    • 结构化数据通用特征
      【时间序列】——数据竞赛中的时间序列预测_第7张图片
  • 时刻值特征: 比如年, 月, 日, 小时, 季度, 星期, 是否为节假日等( 编码及变换) ;
  • 滞后特征: 即历史时刻值如上一个时刻, 上两个时刻, 一小时前, 一天前等;
    【时间序列】——数据竞赛中的时间序列预测_第8张图片
  • 滑窗统计特征: 体现一段连续时间内变化特性, 均值, 中位数, 标准差, 最大值, 最小值, 分位数, 偏度等
  • 交叉特征: 同比, 环比, 不同窗统计交叉
    【时间序列】——数据竞赛中的时间序列预测_第9张图片
  • 结构化数据通用的特征: 如根据类别交叉, 类别对连续值聚合统计, 类别特征编码
    【时间序列】——数据竞赛中的时间序列预测_第10张图片
    树模型的外推能力十分有限, 这意味着预测得到的结果基本不会超出训练集目标值范围内, 也就是说, 对于有显著趋势性的时间序列, 树模型无法直接预测出后续持续的趋势性。 那么需要先去趋势, 使目标变平稳, 常用有两种方法, 其实都可以归结为目标变换:
    • 差分, 将目标值与一个固定值做差, 可以是一个周期前的同期值, 也可以是前一个周期内的均值、 中位数等, 需要根据不同问题进行尝试;
    • 首先用线性回归拟合趋势, 然后将目标值减去线性拟合得到的目标作为新的目标值, 类似于残差预测。
      【时间序列】——数据竞赛中的时间序列预测_第11张图片

4、线性回归

  • 线性回归, LinearRregression
  • LR跟树模型十分相似, 都非常需要构造特征来增强模型的表达能力, 同时都为单目标输出模型
  • LR外推能力较强, 可拟合趋势
  • 使用LR时, 类别特征最好做onehot, 或者如果onehot维度太高可以考虑各种方式embedding( 嵌入)
  • 一些变种, 比如采用不同正则方式的岭回归与lasso回归

5、神经网络

  • 基于LSTM/Transformer的魔改网络
  • 模型结构设计
  • 超参数调整
  • 学习策略调整
  • loss改进
    【时间序列】——数据竞赛中的时间序列预测_第12张图片
    在这里插入图片描述

总结

  • 时序问题有其自身的特性, 根据时序特性对数据进行刻画
  • 特别注意趋势性的消除
  • 多种模型结合( 树+NN)
  • 可以尝试新模型, 但不要沉迷

优质时序链接资料分享
ARIMA : https://zhuanlan.zhihu.com/p/60648709
FaceBook Prophet: https://zhuanlan.zhihu.com/p/52330017
时序特征构造: https://mp.weixin.qq.com/s/iDUFr11-YX6oa6bLXWK3iQ
时序预测讲解: https://mp.weixin.qq.com/s/tVXhzpWoR2h5A4KTXinoWA

加小享了解课程详情
【时间序列】——数据竞赛中的时间序列预测_第13张图片

你可能感兴趣的:(时间序列,人工智能,python,开发语言)