Mountain of Flowers and Fruits

Logo

GitHub主页

source_web

古典算法与机器学习算法在时序预测问题的表现对比

The original version by Jason Brownlee link | Translated and Editted by MonkeeYe


导读:blog原文信息量不大,干货不多,阅读时重点主要集中在名词了解上,可以了解一些古典方法的名称。引文[1][2]是同一个作者,也是那个大赛的冠名者,怎么感觉有点王婆卖瓜。。。引文[3]讲的是机器学习方法的对比。
总的来说,时序预测问题有很多有意思的问题,也体现了前辈们很多迷人的哲学思想。时序分析是各行各业都会用到的工具,查阅资料时发现文中介绍的古典算法多用于工业界、金融界,解决的问题相对比较简单,全是单变量模型,属于趋势预测模型,对于高维数据肯定无法胜任。高维数据的解决方案肯定是ML算法,人很难理解超过3个维度的数据,更别说找联系和预测了。
个人认为古典算法对使用者的专业知识要求更高,因为参数的选取是预测的关键,只有真正了解你的数据,才能得到好的结果。而ML方法(Machine Learning)的优势在于强大算力和其普适性,即便没有很强的专业知识,也可以通过参数搜索等方式得到一个较好的结果。
古典算法的优点是强迫你去思考数据本身,去学习领域知识,去思考,缺点就是已经不适合这个时代了,如文中提到的,可以作为baseline来测试新算法,但注定要随着时代的前进逐渐被取代,或是以新的方式再呈现。
ML算法是时代的产物,符合目前这个时代的生产力,缺点是容易让人变成调参侠,从而忽略了数据本身的一些统计学特征。
殊途同归,如果真的想透彻地研究某个问题,最终两方面肯定都会涉及到,其背后的统计学知识是相通的,一定要针对你的具体问题去分析、思考。

这世上本没有什么好的方法,适合你的问题,就是好的方法。


越来越多的人认为机器学习是解决所有预测问题的终极解决方案。但最近的一项研究对比了几种具有代表性的古典算法、机器学习算法、深度学习算法,测试了它们在众多迥异的单变量时间序列预测问题上的表现。结果表明:线性方法、指数平滑法等原理简单的古典方法表现出了更好的性能,优于决策树、多层感知机、长短时记忆网络等复杂精细的新方法。这一发现强调了古典算法的重要性,提出应当把古典算法的结果作为评价新算法的基础,确保新算法真的在增加预报复杂度的同时提高了预报效果。

Spyros Makridakis于2018年发表的论文[1:1]对比了古典算法与现代机器学习算法在真实世界数据上的表现,该论文分为7个部分:

  1. 研究动机
  2. 时间序列数据集
  3. 时间序列预测方法
  4. 数据准备
  5. 单步预测记过
  6. 多步预测结果
  7. 结果分析
  • 研究动机

该研究的目标是清楚地展示古典算法和机器学习算法(ML算法)在大量特征迥异的时序问题上的预测能力,是针对大量盲目崇拜ML算法文章的回应,作者认为这些文章使用的数据有限,很难说明ML算法优势的普遍性。作者在文中指出:

从字面上看,数百篇论文都提出了新的机器学习算法,论述了它们在方法上的进步和准确性上的提高。然而,关于它们作为通用预测工具的客观证据却十分有限。

对于这些文章最后得出的结论,作者提出了3点质疑:

  • 首先,这些文章都是从少数,甚至是单个时序预测问题得出的结论,其结果的统计学意义和方法本身的泛化性尚待论证。
  • 其次,绝大多数方法都是立足于短时预报,几乎全都是单步预报,对于中、长期的多步预报考虑太少。
  • 最后,这些文章仅单方面论证了ML算法的优势,没有使用基准测试来对比ML方法和古典方法的准确性。

为了回答这些疑问,Spyros对比了8种古典算法和10种ML方法,选取了1045个月度数据集,分别进行了单步和多步预测检验。虽然论文最后对于方法的好坏评价并不是适合所有情况,但大量的结果数据确实具有一定的参考价值。

  • 时间序列数据集

文章[1:2]中使用的是第三届Makridakis大赛[4]的部分数据集进行评估的,共选取了1045个数据集,时间分辨率均为月间隔。M3大赛中用到的数据集来源于工业、金融、社会学等领域界,均为真实世界数据,M3比赛的数据及数量为3003个,时间分辨率上包括了小时间隔、月间隔、年间隔等。
下面的表格描述了这3003个数据集的行业和时间分辨率情况。

M3大赛专注于寻找时序预测中的优秀算法,2000年的一篇论文[2:1]记录了M3比赛的结果,论述在单变量时序问题的预测上,简单的方法优于复杂的方法(包括神经网络),论文[2:2]中这样写到:

通过本文、前两届M3竞赛和许多其他研究证明,新的ML模型都是基于详尽的理论构建和复杂的方法构架,它们能够更好地将统计模型与特定问题的历史数据结合起来,但在后续数据的预测效果上,这些方法并没有表现出更多的优势。

  • 时间序列预测方法

文章[1:3]共对比了8种古典算法和10种ML算法,古典算法包括:

  1. Naive 2,实质上是一种周期自适应的随机走动模型(Naive 2)
  2. 单指数平滑(SES, Single Exponential Smoothing)
  3. Holt模型
  4. 阻尼指数平滑(DES, Damped Exponential Smoothing)
  5. 组合法(Average of SES, Holt, and DES)
  6. Theta算法(Theta Method)
  7. 差分整合滑动平均自回归模型(ARIMA, Autoregressive Integrated Moving Average Model)
  8. ETS模型(ETS, Error Trend Seasonality)

其中前8种ML算法来自2010年的一篇文章[3:1],文章[1:4]试图重现这些算法:

  1. 多层感知机(MLP, Multi-Layer Perceotron)
  2. 贝叶斯神经网络(BNN, Bayesian Neutral Network)
  3. 径向基函数(RBF, Radial Basis Functions)
  4. 广义回归神经网络(GRNN, Generalized Regression Neutral Networks) / 也叫Kernel Regression
  5. K近邻回归(KNN, K-Nearest Neighbor Regression)
  6. CART回归树(CART, CART Regression Trees)
  7. 支持向量机回归(SVR, Support Vector Regression)
  8. 高斯过程(GP, Gaussian Processes)

最后2种ML算法属于现代架构下的神经网络模型:

  1. 时间循环神经网络(RNN, Recurrent Neutral Network)
  2. 长短时记忆网络(LSTM, Long-short Term Memory)
  • 数据准备

数据预备的方法来自文章[3:2]:每一组数据都进行了幂变换、去周期、去趋势。并且,受到这些处理方式的启发,作者在使用多层感知机前,采用了5种不同的数据预处理方式:

  • 不作处理
  • Box-Cox幂变换
  • 去周期性
  • 去趋势性
  • 3种变换的合成(指数,去周期,去趋势)

结果表明,幂变换+去周期是效果最好的,有时还需要结合去趋势性。

参考sMAPE指标,最好的组合是7号(Box-Cox幂变换+去周期性),而根据MASE指标,最好的组合是10号(Box-Cox幂变换+去周期性+去趋势性)。

—— Statistical and Machine Learning forecasting methods: Concerns and ways forward, 2018.

  • 单步预测结果

所有模型都进行了单步预测的检验,检验的方法是将最后18个观测值作为测试数据,使用之前的观测真值进行预测,结果表明MLP和BNN在ML方法中效果最好,出人意料的是2个立足于现代神经网络框架下的涉设计RNN和LSTM模型表现的竟然很糟糕。最终在所有的方法里,古典算法都表现得更好,其中ETS和ARIMA的表现最佳,这与之前的其他一些研究结果吻合,最终的结果如下图所示:

  • 多步预测结果

多步预测才用了3种方式:

  • 迭代预报
  • 直接预报
  • 多重神经网络预报

古典方法再次打败了ML方法,这次表现的最好的是Theta,ARIMA和Comb(一个指数平滑的组合)。

  • 结语

该研究表明了在单变量时序预测问题上,不论是单步预测还是多步预测,古典算法均具有一定优势。ML算法不仅表现更差,计算也更耗时。这一研究结果是让我们重新审视了古典算法的价值,至少应该把古典算法当做ML算法的测试基准。文章同时还表达了数据预处理的重要性。

但该研究没有考虑到的情况包括:

  • 复杂的不规则时间结构
  • 观测值缺失
  • 强噪声
  • 相互之间联系复杂的多变量问题

这一研究提出既然ML算法在其他AI领域都表现优异,没有理由在单变量时序预测问题上表现这么差,算是对ML从业人员提出了小疑问。作者还点评了LSTM和RNN,这两个方法是经常被用于时序预测问题的深度学习方法,但在本研究中,它们的表现很差。表现出了过拟合的特性。

  • 拓展阅读

古典算法深入阅读:

  1. Naive
  2. SES
  3. Holt
  4. ARIMA
  5. ETS
  6. ARIMA VS ETS

M4比赛:

  1. The M4 Competition: Results, findings, conclusion and way forward, 2018






  1. Statistical and Machinme Learning forecasting methods: Concerns and ways forward ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. The M3-Competition: Results, Conclusions and Implications ↩︎ ↩︎ ↩︎

  3. An Empirical Comparison of Machine Learning Models for Time Series Forecasting ↩︎ ↩︎ ↩︎

  4. Makridakis Competitions, Wikipedia ↩︎