以下内容是在拜读远观数据大佬技术文章的部分总结,原文请查看:漫谈时间序列预测 – 字节的文章 – 知乎 zhuanlan.zhihu.com/p/486343380
1. 效果检验
-
数值量纲不敏感metric:
-
SMPAE(对称MAPE):
-
-
百分比表示形式的MAE
-
有上(200%)下界(0%)
-
-
WMAPE(加权MAPE):
-
-
把不同数量级误差等价评估
-
解决MAPE除数为零
-
-
2. 模型分类
2.1 传统方法
-
MA(滑动平均,以过去n时间点观测值平均作为下一个点的预测):
- 优点:快,作为baseline效果不错。
- 缺点:做不了多步,且存在滞后问题。
-
ARIMA(自回归滑动平均):
- 优点:比MA和AR拟合强
- 缺点:参数寻找,运行时间长,需要对每个序列单独预测。
-
Prophet(时序分解加性模型):
- 优点:非线性趋势没季节外部变量方面有优势,可输出概率。
- 缺点:单个序列预测,大规模费劲。
-
其他:Orbit和NeuralProphet,都不咋地。
-
缺点:
- 对时序本身有一些性质要求,非端对端优化;
- 只能做单个序列预测,性能开销大。
- 自回归,没有协变量可以引入。
- 多步预测不行。
2.2 ML方法
-
建模方式
- 时序转化表格类问题
-
特征工程
-
根据特征类型不同构造新特征,预处理部分不在这里讨论。
-
自动时间序列特征工程工具——tsfresh(根据其他文档看,全自动化不够智能,会生成非常多的特征,有可能爆内存)
-
其他时序特征方法介绍:zhuanlan.zhihu.com/p/67832773
-
-
模型
-
GBDT:
- lightGBM,fastai(可以用Optuna或者FLAML来做自动调参)
- 业务特征上表达比NN好
-
NN:
- 类别变量表达学习会有更好的embedding
- loss设计灵活
- 多目标学习比树模型方便。
-
2.3 DL方法
- RNN(RNN,LSTM,GRU)
- Seq2Seq(RNN组合形式)
- 以RNN组件作为基本单元,encoder中做训练窗口的信息提取,decoder中做预测的多部输出。
- 评估:效果一般,计算开销大,稳定性不行,误差分析和模型解释难做。
复制代码
- WaveNet(空洞因果卷积)
- 比RNN好并行,使用一维CNN做序列预测,还加入residual connection和skip connection和一系列复杂的门机制。
- 评估:没RNN好用
复制代码
- LSTNet
- 评估:不如特征工程+fastai
复制代码
- DeepAR
- Seq2Seq形式,但是能输出概率分布。
- 评估:难以稳定收敛,精度波动大,效果比不过GBDT。
复制代码
- N-Beats
- 单变量预测,有一定的季节和趋势解释性。
- 评估:效果一般,不好加额外的特征变量。
复制代码
- TFT
- 能和树模型叫板的DL模型,跟树模型有一定近似性,有特征变量选择网络。
- 评估:有点意思,由于其拟树形式的原理,效果稳定不少,但计算开销还是比较大。
复制代码
-
总结:
- 目前GBDT的效果还是大规模好于DL
- DL的强项入pre-train,transfer learning,represent learning,生成模型难以用于时序领域。
2.4 时序AutoML
-
库:
- Auto_TS
-
主流方法:
- 特征工程+GBDT
- TFT结构化时许数据集接口做自动化特征工程可行。
\
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END