时间序列预测方法汇总

时序模型方法汇总
时序问题本质都是回归问题,只是回归的方式(线性回归、树模型、深度学习等)有一定的区别。

一、传统时序建模

arma 模型只能针对平稳数据进行建模,而 arima 模型需要先对数据进行差分,差分平稳后在进行建模。这两个模型能处理的问题还是比较简单,究其原因主要是以下两点:
1、arma/arima 模型归根到底还是简单的线性模型,能表征的问题复杂程度有限;
2、arma 全名是自回归滑动平均模型,它只能支持对单变量历史数据的回归,处理不了多变量的情况。
总结:
如果是处理单变量的预测问题,传统时序模型可以发挥较大的优势;
但是如果问题或者变量过多,那么传统时序模型就显得力不从心了。

二、机器学习模型方法

这类方法以 lightgbm、xgboost 为代表,一般就是把时序问题转换为监督学习,通过特征工程和机器学习方法去预测;
这种模型可以解决绝大多数的复杂的时序预测模型。支持复杂的数据建模,支持多变量协同回归,支持非线性问题。

不过特征工程能力的高低往往决定了机器学习的上限,而机器学习方法只是尽可能的逼近这个上限。特征建立好之后,就可以直接套用树模型算法 lightgbm/xgboost,这两个模型是十分常见的快速成模方法,除此之外,他们还有以下特点:

计算速度快,模型精度高;
缺失值不需要处理,比较方便;
支持 category 变量;
支持特征交叉。
总结:通过一系列特征工程后,直接使用机器学习方法,可以解决大多数的复杂时序问题;不过这方法最大的缺点是特征工程可能会较为繁琐。

三、深度学习模型方法

这类方法以 LSTM/GRU、seq2seq、wavenet、1D-CNN、transformer为主。深度学习中的 LSTM/GRU 模型,就是专门为解决时间序列问题而设计的;但是 CNN 模型是本来解决图像问题的,但是经过演变和发展,也可以用来解决时间序列问题。总体来说,深度学习类模型主要有以下特点:

不能包括缺失值,必须要填充缺失值,否则会报错;
支持特征交叉,如二阶交叉,高阶交叉等;
需要 embedding 层处理 category 变量,可以直接学习到离散特征的语义变量,并表征其相对关系;
数据量小的时候,模型效果不如树方法;但是数据量巨大的时候,神经网络会有更好的表现;
神经网络模型支持在线训练

实际上,基于实际预测问题,可以设计出各式各样的深度学习模型架构。假如我们预测的时序问题(如预测心跳频率),不仅仅只和统计类的数据有关,还和文本(如医师意见)以及图像(如心电图)等数据有关 ,我们就可以把 MLP、CNN、bert 等冗杂在一起,建立更强力的模型。
时间序列预测方法汇总_第1张图片

你可能感兴趣的:(机器学习,深度学习,人工智能)