时间序列预测方法及代码总结!
一、传统时序建模
-
arma/arima 模型归根到底还是简单的线性模型,能表征的问题复杂程度有限; -
arma 全名是自回归滑动平均模型,它只能支持对单变量历史数据的回归,处理不了多变量的情况。
重点介绍基本的金融时间序列知识和 arma 模型
介绍更为高阶的 arch 和 garch 模型
arma 模型快速上手
arch、garch模型快速建模
https://machinelearningmastery.com/develop-arch-and-garch-models-for-time-series-forecasting-in-python/
二、机器学习模型方法
-
计算速度快,模型精度高; -
缺失值不需要处理,比较方便; -
支持 category 变量; 支持特征交叉。
lightgbm 原理
xgboost 的原理没你想像的那么难:
xgboost 原理
https://www.jianshu.com/p/7467e616f227
lightgbm 模型实践
xgboost 模型实践
三、深度学习模型方法
-
不能包括缺失值,必须要填充缺失值,否则会报错; -
支持特征交叉,如二阶交叉,高阶交叉等; -
需要 embedding 层处理 category 变量,可以直接学习到离散特征的语义变量,并表征其相对关系; -
数据量小的时候,模型效果不如树方法;但是数据量巨大的时候,神经网络会有更好的表现; -
神经网络模型支持在线训练。
▲ 图源:https://www.kaggle.com/c/avito-demand-prediction/discussion/59880
LSTM 原理
seq2seq 原理
wavenet 原理
1D-CNN 处理时序数据
transformer 时序预测
seq2seq 模型实现
LSTM 实践
wavenet 模型预测股票价格
transformer 时序预测数据
https://towardsdatascience.com/how-to-use-transformer-networks-to-build-a-forecasting-model-297f9270e630
Timeseries classification with a Transformer model:transformer 处理时序数据分类
CNN 预测模型
评论