时间序列预测浅谈

时间序列预测是一个发展历史悠久的技术领域,传统的统计学算法(e.g. ARIMA, ETS, GARCH)以及近年来的机器学习(e.g. 广义线性模型,xgboost)、深度学习算法(e.g. LSTM,CNN,Transformer) 都可以用于时间序列预测,不同方法各有长处和短处。

传统的统计学习方法需要结合时序领域特有的统计学分析(e.g. 自相关系数ACF、偏相关系数PACF、平稳性检验等),将数据通过差分的方式转换成平稳序列后,再通过线性回归的方式建模。传统统计学算法的长处在于结合了大量的专家对于时间序列的知识,因此不需要大量样本数据即可构建模型,短处在于需要从业人员对时序相关的统计学有深入的理解,并且当存在非线性特征等复杂情况时,需要进行手工特殊处理,不利于规模化预测。

机器学习、深度学习算法将时序预测问题作为回归问题处理,通过选择合适的特征和模型结构,基于训练集数据构建模型。机器学习、深度学习算法的长处是不需要结合时序领域特有的统计学分析,算法可以从训练集中总结规律,并且使用模型不是时序领域独有的,对于数据科学的从业人员更友好,短处是需要基于大量样本数据才可训练模型,并且模型通常不具备可解释性(广义线性模型除外)。当前商业、工业领域往往存在海量数据,对自动化、准确性的要求比可解性的要求更高。

时间序列预测在供应链、金融、工业等众多领域有着广泛的应用。与CV、NLP等标准化应用不同,时间序列预测项目与业务场景结合紧密。预测对象、颗粒度、前置期、准确性指标等对于构建模型最关键的因素往往并非一目了然,只有通过对不同场景的需求进行深入分析才能找到合适解决方案。因此从业者不但需要掌握各种方法的原理,还需要能够结合业务具体使用场景分析项目的需求,找到合适的算法。这对从业者的能力提出了很高的要求,也是业内时间序列预测资深专家短缺的原因。

接下来推荐几篇经典论文供大家学习复现。帮你快速梳理时序预测算法的种类的原理。

1、基于历史数据对未来做出预测×2篇

01 Forecasting at Scale

02 Deep AR: Probabilistic Forecasting with Autoregressive Recurrent Networks

※推荐理由:

1) Prophet是Facebook开发的时间序列预测软件包,在业内具有广泛的应用。《Forecasting at Scale》介绍了Prophet的算法原理。

2)Deep AR…一文提出了一种基于LSTM的时间序列预测算法,适用于高通量时间序列预测。该方法不仅能给出预测结果,还能给出结果的置信区间。本文作者来自亚马逊算法研究所。论文中的算法DeepAR已经集成在Amazon Sagemaker机器学习平台,对外提供预估服务的功能。

2、兼顾长短期预测×1篇

03 A Multi-Horizon Quantile Recurrent Forecaster(2018)

※推荐理由:

在时间序列预测的领域中,有很多场景既要对短期的时间进行预测,又要对长期的时间进行预测。通常机器学习、深度学习算法在短期预测上具有优势,但是在长期预测上表现不佳。本文提出了一种特殊的MLP网络结果,能够很好地兼顾短期和长期预测。此外,训练时间序列预测模型时往往需要通过滑动窗口的形式产生训练集样本,使得数据进行了大量复制,占用了大量内存资源。为了解决这一问题,本文提出了叉式训练(fork-training)方法,在不复制数据的情况下,达到滑动窗相似的训练效果。本文是亚马逊算法研究所在时间序列领域的又一力作。

 

3、多层级预测×1篇

04 Prediction of hierarchical time series using structured regularization and its application to artificial neural networks (2020)

※推荐理由:

在实践中经常会出现需要在不同层级做预测的情况,比如说预测某个产品的销量,既需要在较高层级的全国层面做预测,也要在较低层级的省市层面预测。一般上的方法无法保证低层级的预测累加的结果和高层级的结果是一致的,给结果的应用造成了困扰。本论文提出了一种方法,用于解决不同层级预测结果不一致的问题。

你可能感兴趣的:(人工智能,深度学习,机器学习,时间序列,时间序列预测)