近年来,IT运维人工智能(AIOps)已成为了应对IT系统与日俱增的复杂性的很好的解决方案。AIOps基于大数据、数据分析和机器学习来提供洞察力,并为管理现代基础设施和软件所需的任务提供更高水平的自动化(不依赖于人类操作员)。
因此,AIOps具有巨大的价值。展望未来,AIOps将在IT团队提高效率方面发挥关键作用。它还会使应用复杂的下一代技术成为可能,而且那些技术的复杂性是传统解决方案无法胜任的。
华云数据“智汇华云”专栏将为您奉上“AIOps之动态阈值—SARIMA模型详解”。
通过使用数据收集、数据分析和机器学习相结合的完整AIOps解决方案,IT Ops团队可以支持以下几个关键使用场景:
1.异常检测。也许AIOps最基本的使用案例就是检测数据中的异常,然后根据需要对它们做出反应。
2.原因分析。AIOps还可帮助IT Ops团队自动执行根本原因分析,从而快速解决问题。
3.预测。AIOps可以让工具能对未来进行自动预测,例如用户流量在特定的时间点可能会怎样的变化,然后做出相应的反应。
4.报警管理。AIOps在帮助IT Ops团队应对他们必须处理的大量警报,以支持正常的运营方面发挥着越来越重要的作用。
5.智能修复。AIOps通过自动化工具驱动闭环的故障修复,而不依赖于运维人员。
异常检测
异常检测以定位问题并了解基础架构和应用程序中的趋势是AIOps的一个关键用例。检测可以让工具探测出异常行为(例如某个服务器响应速度比平时慢,或受黑客攻击而出现异常的网络行为)并作出相应的反馈。
在很多情况下,在现代软件环境中进程异常检测,对于AIOps而言还是特别具有挑战性。因为在许多情况下,并没有通用的方法去定义合理的触发条件。例如对于在整个环境中的网络流量、内存和存储空间消耗而言,它们的波动还是会很大的。那么活跃用户量或应用程序实例也是如此。在这些情况下进行有效监测需要AIOps能采用足够智能的工具来设置动态基线。动态基线(阈值)为工具设置特定的情况下(例如一天中的时段和应用程序的注册用户数)正常活动的范围,然后检测与动态基线不匹配的数据或事件。
SARIMA模型
下面,就给大家讲解一下我们这次用到的SARIMA模型,用于预测指标动态阈值,从而检测异常。
SARIMA模型的全称是Seasonal Auto Regressive Integrated Moving Average,中文是周期性自回归差分移动平均。SARIMA模型是一种预测周期性的时间序列效果非常好的模型。SARIMA模型的目标是描述数据的自相关性。要理解SARIMA模型,我们首先需要了解平稳性的概念以及差分时间序列的技术。
平稳性 stationarity
总的来说,一个时间序列,如果均值没有系统性的变化(无趋势),方差没有系统变化,且消除了周期性变化,就称之为平稳的。
T是时间序列的长度,k是延迟lag
ACF(autocorrelation function)图是一种非常有效的来判断时间序列平稳性的方法。
如果数据有趋势性,那么对于较小的延迟,自相关性趋向于比较大并且为正。当延迟增大时,ACF会慢慢变小。
如果数据有周期性,对于周期性的延迟,自相关性会比较大一些。
如果数据既有周期性又有趋势性,你就会看到两者的结合。
可以看到,因为趋势性,当延迟变大时,ACF慢慢变小。因为周期性,图像会有峰谷的感觉。
白噪声 white noise
一个时间序列如果没有任何自相关性就可以称为白噪声。
我们期望所有的ACF值接近于0,但因为一些随机变化,他们不可能正好等于0。对于白噪声,我们期望95%的ACF突刺都在之间,T是时间序列的长度。通常我们会画出这些范围,图上用蓝线表示。如果超过5%的突刺超出了这个范围,这个时间序列就可能不是白噪声。
随机漫步模型 random walk
周期性差分 seasonal differencing
周期性差分是一个数据点和前一个周期同一时间的数据点的差。
B用在yt上,是把数据后移一个周期。两次B运算就是把数据后移两个周期。
后移符号对于差分过程的表示非常方便,比如一次差分可以写成:
一般来说,d次差分可以写成 。
后移符号在组合差分的时候非常有用,比如,周期性的差分组合一次差分可以写成:
这里是白噪声,我们把这个叫做AR(p)模型,p阶自回归模型。
下图展示了AR(1)模型和AR(2)模型:
#FormatImgID_15#
对于AR(1)模型:
对于p>2,参数限制就非常复杂,我们可以用python的包来搞定。
MA模型 Moving Average
不像AR模型中使用过去的预测变量,MA模型使用过去的预测误差。
我们可以把任意平稳的AR(p)模型写成MA()模型。比如,我们可以把AR(1)模型写成:
对于q>2,参数限制就非常复杂,我们可以用python的包来搞定。
ARIMA模型 Auto Regressive Integrated Moving Average
如果我们组合AR和MA模型并差分,我们可以得到ARIMA模型。模型可以写成:
常数c在长期预测中十分重要:
1.如果c=0并且d=0,长期预测值会趋向于0
2.如果c=0并且d=1,长期预测值会趋向于非零常数
3.如果c=0并且d=2,长期预测值会变成一条直线
4.如果c0并且d=0,长期预测值会趋向于数据的平均值
5.如果c0并且d=1,长期预测值会变成一条直线
6.如果c0并且d=2,长期预测值会变成二次抛物线
偏自相关系数 partial autocorrelation
自相关系数测量了yt和yt-k的关系。如果yt和yt-1相关,那么yt-1和yt-2肯定也相关。但这样的话,yt和yt-2可能也相关,仅仅只因为他们都跟yt-1相关,而不是因为yt-2中有新的信息可以用于预测yt。
为了解决这个问题,我们可以使用偏自相关系数。这是在移除延迟1,2,3,…,k-1的影响后,测量yt和yt-k之间的关系。
如果差分过后的ACF和PACF图满足以下形式,数据可能是ARIMA(p,d,0)模型:
1.ACF是指数衰减或者正弦式的
2.在PACF中,在延迟p的地方有一个明显的突刺,但后面没有
如果差分过后的ACF和PACF图满足以下形式,数据可能是ARIMA(0,d,q)模型:
3.PACF是指数衰减或者正弦式的
4.在ACF中,在延迟q的地方有一个明显的突刺,但后面没有
最大似然估计 maximum likelihood estimation
估算模型的时候,我们使用最大似然估计。已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。对于ARIMA模型,MLE通过最小化
其中L是数据的likelihood,如果c=0,k=0;如果c0,k=1。
修正赤池信息准则(AICc)可以写成:
最小化AIC,AICc或者BIC可以得到较优模型,我们偏向于选择AIC。
pmdarima原理
pmdarima是一个python解决ARIMA和SARIMA模型的包,主要使用了Hyndman-Khandakar算法的变形,组合了单位根检验,最小化AICc和MLE。
用于自动化ARIMA模型拟合的Hyndman-Khandakar算法
重复使用KPSS检测决定差分次数
差分后最小化AICc来选取p和q的值,这种算法使用了阶梯式搜索来遍历模型空间,而不是考虑所有p和q的组合
拟合四个初始模型:
1.ARIMA(0,d,0)
2.ARIMA(2,d,2)
3.ARIMA(1,d,0)
4.ARIMA(0,d,1)
常数项会被考虑进去除非d=2。如果d1,拟合额外的一个模型:
ARIMA(0,d,0)没有常数项
在步骤a中最优的模型(最小的AICc值)会被设置为当前模型
微调当前模型:
1.对p或/和q
2.加入/去除常数项c
新的最优模型变成当前模型
重复步骤c直到没有更小的AICc
SARIMA模型 Seasonal Auto Regressive Integrated Moving Average
ARIMA模型的缺陷在于没有考虑周期性,加入周期项可以得到SARIMA模型:
ARIMA (p,d,q) (P,D,Q)m
非周期性部分 周期性部分
m是每年的观测数量。P,D,Q作为周期性参数,p,d,q作为非周期性参数。
模型的周期性部分和非周期性部分很相似,但包括了周期后移。比如,ARIMA(1,1,1)(1,1,1)4对于季度数据(m=4)可以写成:
这个例子是欧洲零售指数从1996到2011年的数据,我们把它套进SARIMA模型进行预测。
这组数据明显是不平稳的,并有一些周期性,所以我们先进行周期性差分,如下图:
ACF图中延迟1的明显突刺说明有个非周期性的MA(1)部分,ACF图中延迟4的明显突刺说明有个周期性MA(1)的部分。所以,我们从SARIMA(0,1,1)(0,1,1)4模型开始,得到拟合模型的残差,如下图:
所有突刺都在合理范围内,残差值看起来像白噪声了。Ljung-Box测试也显示残差没有自相关性了。
然后,我们就可以用该模型进行预测了:
图中显示了预测值以及80%和95%的置信区间。
指标动态阈值原理
我们已经了解了SARIMA模型,并可以对时间序列数据进行预测了。对于动态阈值,我们首先获取历史数据,对数据进行处理,需要对缺失数据进行一些填充。然后我们进行SARIMA模型拟合,得出最优模型之后,对未来指标走势进行预测,通过95%的置信区间生成阈值区间,如果指标超出这个区间,我们认为指标异常,对用户进行告警。每天我们都会重复以上操作,让模型拟合更加准确,从而使动态阈值功能日趋完善。
部分参考资料来源互联网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/968762.html