# 技术黑板报 # 第七期

推荐阅读时长:12min

智能运维领域时间序列预测都有哪些典型应用场景典型的算法有哪些?这些算法在实际落地应用中有哪些优缺点?让我们一起来看看云智慧对此是怎样理解的

章节目录

一、运维领域的预测场景

二、ARIMA预测模型

三、Prophet预测模型简介

四、Prophet与ARIMA模型的对比

五、总结

一、运维领域的预测场景

随着企业数字化转型加速发展,运维领域作为数字化进程的关键一环,受到各行各业的重视,然而海量的运维数据与日益复杂的IT技术架构却给运维从业者带来了前所未有的挑战,传统的人工运维的方式已经无法满足时代所需,智能运维应运而生

与人工智能、大数据、区块链等技术体系不同,智能运维并不是一项“全新”的技术,而是一个以智能运维场景为基础的智能技术应用和融合。值得注意的是,在智能运维领域的海量数据中,时间序列数据占据着不容忽视的地位,时间序列数据预测更是在智能运维领域应用广泛。

现在常见的时间序列预测应用场景包括:

1、 磁盘、CPU的容量预测:当磁盘、CPU的容量占用较高时,可能会降低应用或者系统的运行性能,所以对磁盘、CPU的容量预测,对于保证IT系统高效稳定运行很重要。

2、磁盘故障预警:海量数据的存储对应着更多的磁盘存储需求,而磁盘的频繁损坏导致的数据丢失将会给企业带来不可估量的损失,企业对于数据存储介质的稳定性和安全性的要求增高,让磁盘故障预警变得越来越重要。

3、 业务预测:如商业、金融这类领域,业务种类繁多,通过对各种类的业务量进行监控,可以更精准地制定相应的业务计划,并合理设置资源规划。

下面让我们来详细聊聊时间序列预测算法,这个算法模型可分为经典类与深度学习类,尽管当今深度学习类时间序列预测模型是学术界研究的热点,但是在工业落地方面经典时间序列模型依旧十分重要。

经典时间序列预测模型从时间序列的趋势性、周期性、平稳性等多方面分析时间序列数据的统计性质,在一定的假设下对时间序列的分布进行建模。此类模型具有较为完备的数学理论,以及良好的可解释性,在推理和训练的计算效率上表现出比深度学习类模型更优的性能和更好的可部署性。

此外,经典时间序列预测算法背后的原理对智能运维从业者在设计新的预测模型带来了启发。本文接下来会详细介绍两类经典的预测模型:ARIMA和Prophet,简单阐述其背后的思想,并分享相关实际应用的经验。

二、ARIMA预测模型

# ARIMA模型简介

ARIMA由AR(autoreg ressive)、MA(moving average)和I(integrated)三个部分组成。ARIMA是ARMA模型的一种推广,ARMA模型是一种描述弱平稳随机过程的统计模型,弱平稳随机过程就是一类均值为常数,自相关函数仅和时间差有关的随机过程

ARIMA的主要思想是利用差分(difference)的操作将非平稳时间序列转换成平稳或弱平稳的时间序列,再用ARMA模型对转换后的时间序列进行分析和预测[1]。ARMA模型由AR(p)模型和MA(q)模型构成。

若对一个随机过程,ARMA(p,q)模型可以写作为:

是一个白噪声序列,在实际应用中往往被

假设成是独立同分布的高斯随机变量:

其中AR(p)代表变量对自身p个滞后项的回归,MA(q)则表示变量对滞后q个残差项的回归。当引入差分这一算子后,ARIMA(p,d,q)模型可以写作:

d为差分的阶数,L为滞后算子:

正如ARMA模型可以很好的描述弱平稳过程,在引入一定阶数差分算子后,一个在均值上非平稳的随机过程就有可能被转化为一个平稳过程,从而使得ARMA可以更好的描述数据背后的分布

# ARIMA模型的参数选择

ARIMA模型中三个超参数p、d、q阶数的选择对模型的预测效果至关重要。超参数p和q阶数的选择可以用样本自相关函数(sample ACF)和样本偏自相关函数(sample PACF)来决定。除此之外AIC、BIC[2]等方法也可以用于超参数p和q阶数的选择。

在实际应用中,从业者需要通过反复的分析实验来确定p和q的阶数。对于差分超参数d的阶数选择,可以通过绘图软件观察差分后的数据是否为平稳时间序列来确定,也可以结合单位根检验来分析是否有必要进行差分处理。过差分(over difference)会导致模型损失过多的信息量,从而降低其预测效果。通常来说在保证模型预测效果的情况下,阶数越小越好,因为过大的阶数往往意味着更高的模型复杂度,从而导致过拟合的效应。在ARIMA模型超参数的阶数选择上,没有绝对的经验法则验,分析师往往需要结合业务情况和实际经验,来判断超参数阶数的选择。

# ARIMA模型的应用经验

从工业落地的角度来说,最重要的是了解模型的优势和劣势。通过上文对ARIMA模型的介绍,我们可以认识到此类模型比较适用于平稳或者差分后平稳的时间序列预测。对于有周期性的时间序列来说,ARIMA模型并不能做到有效的拟合与预测。而ARIMA模型的变种seasonal-ARIMA模型可以用于周期型时间序列预测。除此之外,若将ARIMA模型与一些去周期的时间序列分解方法结合使用,也可以用于周期型时间序列预测。

如上图所示,对于这类具有周期性和线性的趋势性特征的时间序列,如果使用ARIMA模型进行预测,那周期分解的预处理和差分操作是不可或缺的。由于ARIMA模型的本质是用一类随机过程去拟合数据,且此类随机过程无法准确描述时间序列的变点(change point)和概念漂移(concept drift)现象。因此对于下图所示具有节点和概念漂移现象的时间序列数据预测,如果直接用ARIMA模型拟合数据是错误的,更为合理的方法是通过设置滑动窗口,使模型自适应去拟合最新的数据或替换成更合适的模型。

尽管ARIMA模型在实际预测应用中有着许多不足之处,但是它依旧是最经典的一种预测模型,学者们也提供了丰富的变种模型来解决ARIMA模型的缺陷。除了从递推关系和差分方程的角度来预测,ARIMA模型也可以从状态空间模型或者谱分析的视角去预测,这为研究者延展出更多解决问题的方向,具体可以参考其它诸多教材文献[1]。

三、Prophet预测模型

Prophet模型简介

Prophet[3]模型由Facebook公司于2017年提出,最初应用于其公司内部的流量预测,在开源后由于模型上手容易和泛用性强,得到了业内更为广泛的应用。Prophet模型的设计有着浓厚的工程师影子,它利用了时间序列分解的思想,将时间序列的趋势部分、周期部分以及节假日部分,分别建立关于时间轴的回归模型,并且通过贝叶斯的框架优化其回归系数

若用Prophet模型假设时间序列存在如下关系:

其中

分别为时间序列的趋势成分、周期成分、节假日成分。

为噪音成分,通常被假设为独立同分布的零

均值高斯。

# Prophet模型的参数选择

趋势项存在两种函数形式,分别为Logistic growth形式和Linear growth形式。对于Logistic growth形式,可以看作为一种“人口模型”,最基本的函数形式为:

其中C为增长上界,k为增长率,m是offset。如果将此函数绘图出来,我们可以看到它的变化类似于自然界人口增长与动物繁殖所呈现出的“S曲线":

此类函数尤其适用于对流量、人口等有指数增长特性的数据进行建模。Prophet对Logistic growth function做出了一定改进,使得它能够拟合更多特别类型的指数增长数据,例如用户增长数据等。Linear growth就是捕捉数据中趋势的线性部分。所以针对不同的数据增长模式,我们将根据具体数据情况进行选择。

但是很多时候数据中的趋势又不是一成不变的,改变一些数据背后的生成机制就会影响数据的增长趋势。例如在用户增长中,如果商家给予新用户更多的激励,就会导致其增长趋势发生变化。因此Prophet模型中在趋势中引入了变点,在进行预测前使用者可以提前设置变点。如果使用者没有提前设置,Prophet模型也可以进行变点检测以来适应趋势的变化,从而更加精准地拟合数据

对周期项,Prophet模型采取了拟合傅里叶级数的方式:

其中

为参数

P为周期。Prophet模型中可同时拟合多个周期,并设置每个周期的傅里叶阶数,阶数如果设置过大,会造成过拟合并且耗费不必要的计算资源。一般建议年周期用10阶傅里叶。没有一定的标准,可根据数据实际情况再动态调整。

节假日项是专门针对节假日和特殊事件影响而设计的一个特殊回归项。由于受种种客观因素制约,且周期不明确,节假日往往很难描述其变化。例如农历的清明节,促销活动之类。而时间序列数据受这些时间的影响十分明显,例如,在商场促销期间,其商场销售额会有明显的提升。在清明假期,景区的游客量明显高于平时。所以将节假日和特殊时间的影响加入模型的考虑中来是十分必要且有效的,这也是Prophet模型之所以得到广泛应用的一个重要原因。

此外Prophet模型可根据实际业务的需要加入外部回归项。例如,在统计自行车骑行人数时,如果只考虑骑行人数这一个指标的话,预测往往会出现很大偏差。这时,如果将天气因素作为外部回归项加入进来,预测精度会得到大大提升。需要注意的是,周期项、节假日项和外部回归项在Prophet模型实际估计的时候,其处理的方式是完全一致的,都是作为多元回归中的一元或多元进行回归,因此学者在形容它时,常说Prophet模型是一个对时间回归的模型。

四、Prophet与ARIMA模型的对比

与ARIMA不同,Prophet的模型训练采用了贝叶斯的框架,即对模型参数设置先验分布,通过最大后验(Max a Posterior)的方式去估计模型参数。对比于ARIMA,Prophet具有处理时间序列中的变点和节假日的能力,使得它在工业中得到了更为广泛的应用。不过要是想将这一工具用好,我们往往需要对其提供充分正确的信息,如节假日信息、参数的先验分布等。

Prophet在提供的傅立叶级数n较低的情况下,往往会拟合出一条较为平滑的曲线,这在一些预测任务上有特别的价值,比如还原时间序列原本的模式。如下图所示,对同样的低信噪比周期数据,ARIMA模型(经过周期分解预处理)会倾向于拟合较为复杂的尖峰波动,而线性增长Prophet模型仅仅是在做傅立叶级数的拟合,N则决定了拟合曲线的平滑程度。

ARIMA预测效果图

线性Prophet预测效果图

可以看出,对于时间序列预测问题,ARIMA和Prophet采取了截然不同的两种角度。从建模的角度来说,ARIMA试图拟合生成差分后的时间序列的平稳随机过程,而Prophet则是对时间序列的不同成分分别建立回归模型。从训练的角度来说,ARIMA采用了极大似然估计,在对噪音的独立同分布高斯假设下,其最后对每一个时间点的预测分布依旧是一种高斯分布,所以ARIMA模型的预测上下界可以准确的通过预测分布计算出。而Prophet模型的预测分布则不存在一个闭式,使得Prophet的预测上下界往往具有随机性。

五、总结

在深度学习大行其道的今天,经典的统计时序模型并没有失去其应用价值,反而在很多实际问题上表现出了其特有的优势,比如良好的结果鲁棒性、可解释性和易于落地等。现在经典统计模型其背后的思想亦是很多深度学习框架灵感的来源。智能运维领域时间序列预测的发展则依赖于算法模型的性能。

未来如何使经典模型的优势在实际应用中大放异彩?又如何将其思想与深度学习相结合开发出更适合数字化发展的算法?或将是智能运维算法开发人员研究的首要任务。

参考文献

[1]Box, George E. P., and Gwilym M. Jenkins. 1976. Time series analysis: forecasting and control. San Francisco: Holden-Day.

[2]Wikipedia contributors, "Autoregressive integrated moving average," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=Autoregressive_integrated_moving_average&oldid=1020508954 (accessed December 7, 2021).

[3]Taylor SJ, Letham B. 2017. Forecasting at scale. PeerJ Preprints 5:e3190v2 https://doi.org/10.7287/peerj.preprints.3190v2

END

智能运维之时间序列预测中的经典时序模型相关推荐

  1. 2023全球运维大会 | 智能运维中的数据管理和数据探索

    GOPS 全球运维大会由高效运维社区(GreatOPS).开放运维联盟(OOPSA)和 DevOps 时代社区联合主办,指导单位为云计算开源产业联盟.FinOps产业推进方阵.迄今为止,GOPS 已经 ...

  2. 清华教授解密AIOps:智能运维如何落地?

    随着 AI 技术在各个应用领域的落地及实践,IT 运维也将迎来一个智能化运维的新时代.算法的效率提升了 AIOps 的价值,通过持续学习,智能运维将把运维人员从纷繁复杂的告警和噪音中解放出来. 那么, ...

  3. 清华裴丹:我在智能运维科研领域的一些思考

    前言 中国应用性能管理行业盛宴-2017中国应用性能管理大会(简称APMCon 2017)于8月10日至11日在北京新云南皇冠假日酒店隆重召开.本届APMCon是由听云.极客邦和InfoQ联合主办,作 ...

  4. 智能运维(AIOps)系列之一:个人对智能运维的理解

    前序 本人从事了 5年 的智能运维开发,把这几年的想法和思路在此跟大家分享一下,主要是为了起到抛砖引玉的作用.该序列总共5部分: 智能运维系列之一 - 概述:主要是讲述自己对智能运维的理解: 智能运维 ...

  5. ccf 智能运维 裴丹_裴丹:智能运维算法需要工业界

    裴丹:智能运维算法需要工业界 学术界密切合作实现技术突破 ■商灏 清华的计算机系,国内一流,而其智能运维研究,据业内人士透露,近两年已超越美国同行,为世界最顶尖水平.本篇可能是国内财经媒体首次触及此类 ...

  6. 值得一看的智能运维AIOps关键核心技术概览

    作者:Neeke Gao,云智慧企业效能高级总监 前言 传统运维管理的人工及被动响应方式,已经无法支撑数字化业务灵活.快速的发展,要靠智能运维(AIOps)能力来获得数据分析和决策支持.而从传统ITO ...

  7. 智能运维中的指标预测

    # 技术黑板报 # 第六期 推荐阅读时长:9min 云智慧智能研究院着眼于智能运维领域的指标预测场景所需,对指标预测的场景及算法进行了详细的概述. 章节目录 一.前言 二.运维领域的预测场景 三.指标 ...

  8. 2020PAKDD 阿里巴巴智能运维算法大赛TOP20 ——磁盘故障预测问题比赛思路、难点与问题总结

    2020PAKDD 阿里巴巴智能运维算法大赛_磁盘故障预测问题比赛思路.难点与问题总结 这次PAKDD比赛很高兴在钉钉群见到了桑榆.hyd.缺佬.杰少等等诸多大神,也很感谢一路相伴的两位队友,最后也很 ...

  9. adf机器_智能运维高招 | 基于机器学习的磁盘故障预测

    原标题:智能运维高招 | 基于机器学习的磁盘故障预测 导读 RGF算法+迁移学习精确预测硬盘故障.<Predicting Disk Replacement towards Reliable Da ...

最新文章

  1. 2019年上半年收集到的人工智能迁移学习干货文章
  2. 方法的重载与重写_java基础知识之重载和重写
  3. 两人团队项目-石家庄地铁查询系统(web版)
  4. 自制简易AP柱面定向天线(zz)
  5. 关于近期对自己的总结
  6. MIT 6.828 main.c文件分析
  7. SaaS基础架构—云计算
  8. Oracle字符到数值转换错误
  9. svn对项目权限进行管理
  10. OC语言之Protocol基本使用
  11. Linux安装MySQL5.7
  12. laravel7 LogicException Please make sure the PHP Redis extension is installed and enabled
  13. 用TreeWalk提高网速及其在vista中的安装方法
  14. 基于RouteOS的NAT Radius网络计费管理实验
  15. 呸 渣男!八股文不让看,非得让看并发编程全彩图册,这下又进厂了
  16. 【项目四】圆类Circle
  17. JavaScript - 简介
  18. sh.k6p.co.index.php,PHP--微信中使用支付宝--提示跳转页面的源代码
  19. Java实现三角形图案绘制**
  20. fNIRS研究行文指南

热门文章

  1. 消息队列基本原理和选型对比
  2. 帝国默认编辑器更改维百度编辑器
  3. 阿里云 java程序 链接redis 报错 : IO Error: Connection reset
  4. Java中的类加载器(ClassLoader)及类的加载机制
  5. 中基鸿业投资理财入门的六个小技巧
  6. 日语中的长音用输入法怎么打
  7. redis设置慢查询日志
  8. 远程办公主题的微信公众号图文排版有小技巧?
  9. python序列—列表,元组,字符串
  10. Linux C语言中的IO--标准IO