站長資訊網
        最全最豐富的資訊網站

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          近年來,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

          總的來說,一個時間序列,如果均值沒有系統性的變化(無趨勢),方差沒有系統變化,且消除了周期性變化,就稱之為平穩的。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          顯然,圖(d), (h), (i)有一定的周期性,所以不平穩。圖(a), (c), (e), (f), (i)有一定的趨勢性,并且圖(i)的方差在增長,所以不平穩。只有圖(b)和(g)是平穩的。可能大家第一眼看到圖(g)覺得有周期性,其實是沒有的,因為這是猞猁的代際數量,在長期來看,這并沒有周期性,所以這個時間序列是平穩的。

          差分 differencing

          我們可以看到圖(a)是谷歌股價圖,這是不平穩的。但圖(b)是股價每天的變化量,這是平穩的。這就是一種讓不平穩的時間序列變為平穩時間序列的方法,計算連續時間數據點之間的差,這就是差分。

          類似于取對數log的方法可以使時間序列的方差變平穩,差分通過消除時間序列的變化量,從而使時間序列的平均值變平穩,來達到消除趨勢性和周期性。

          自相關系數 autocorrelation

          自相關系數是用來測定時間序列的兩個時刻的值的線性關系。比如r1是測量yt和yt-1的關系,r2是測量yt和yt-2的關系。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          T是時間序列的長度,k是延遲lag

          ACF(autocorrelation function)圖是一種非常有效的來判斷時間序列平穩性的方法。

          如果數據有趨勢性,那么對于較小的延遲,自相關性趨向于比較大并且為正。當延遲增大時,ACF會慢慢變小。

          如果數據有周期性,對于周期性的延遲,自相關性會比較大一些。

          如果數據既有周期性又有趨勢性,你就會看到兩者的結合。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          這張圖是澳大利亞電力需求圖,可以看到這組數據既有周期性,又有趨勢性。

          畫出ACF圖如下:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          可以看到,因為趨勢性,當延遲變大時,ACF慢慢變小。因為周期性,圖像會有峰谷的感覺。

          白噪聲 white noise

          一個時間序列如果沒有任何自相關性就可以稱為白噪聲。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          這是一個白噪聲的例子,我們畫出它的ACF圖:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          我們期望所有的ACF值接近于0,但因為一些隨機變化,他們不可能正好等于0。對于白噪聲,我們期望95%的ACF突刺都在之間,T是時間序列的長度。通常我們會畫出這些范圍,圖上用藍線表示。如果超過5%的突刺超出了這個范圍,這個時間序列就可能不是白噪聲。

          隨機漫步模型 random walk

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          二次差分 second-order differencing

          有時一次差分的數據看起來還是不平穩,這就需要二次差分來獲得一個平穩的序列。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          周期性差分 seasonal differencing

          周期性差分是一個數據點和前一個周期同一時間的數據點的差。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          這里的m是周期的數量。這也叫做”lag-m differences”。

          單位根檢驗 unit root tests

          決定是否需要差分可以用單位根檢驗。我們這里使用KPSS test,在這個檢測中,零假設是數據是平穩的,我們要找出零假設不為真的證據。得到比較小的p值,比如0.05,就可以認為零假設不成立,數據不平穩,我們就需要對時間序列進行差分。

          后移符號 backshift notation

          當我們在研究時間序列延遲的時候,后移符號B非常有用。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          B用在yt上,是把數據后移一個周期。兩次B運算就是把數據后移兩個周期。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          對于每月采集一次的數據,如果我們想要去年同月的數據,表示為

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          后移符號對于差分過程的表示非常方便,比如一次差分可以寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          一次差分可以表示為(1-B),那么同樣,二次差分可以寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          一般來說,d次差分可以寫成 。

          后移符號在組合差分的時候非常有用,比如,周期性的差分組合一次差分可以寫成:

          #FormatImgID_15#

          AR模型 Auto Regressive

          在自回歸模型中,我們使用過去變量的線性組合來預測。自回歸表示這是對于自身變量的回歸。

          p階AR模型可以寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          這里是白噪聲,我們把這個叫做AR(p)模型,p階自回歸模型。

          下圖展示了AR(1)模型和AR(2)模型:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          對于AR(1)模型:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          我們通常會限制AR模型只用于平穩的數據,所以我們對參數有一些限制:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          對于p>2,參數限制就非常復雜,我們可以用python的包來搞定。

          MA模型 Moving Average

          不像AR模型中使用過去的預測變量,MA模型使用過去的預測誤差。

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          是白噪聲。我們把這個叫做MA(q)模型,q階移動平均模型。

          下圖展示了MA(1)模型和MA(2)模型:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          我們可以把任意平穩的AR(p)模型寫成MA()模型。比如,我們可以把AR(1)模型寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          這是一個MA()模型。

          如果我們給MA模型加一些限制,我們可以稱MA模型是可逆的,我們可以把任意MA(q)模型寫成AR()模型。

          可逆性限制和平穩性限制類似:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          對于q>2,參數限制就非常復雜,我們可以用python的包來搞定。

          ARIMA模型 Auto Regressive Integrated Moving Average

          如果我們組合AR和MA模型并差分,我們可以得到ARIMA模型。模型可以寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          是差分過的序列,右側的預測器包含延遲yt和延遲誤差。我們叫這個ARIMA(p,d,q)模型:

          p自回歸階數

          d差分次數

          q移動平均階數

          有一些特殊的ARIMA模型如下表:

          白噪聲ARIMA(0,0,0)

          隨機漫步ARIMA(0,1,0)

          帶偏移量的隨機漫步ARIMA(0,1,0)帶常數

          自回歸ARIMA(p,0,0)

          移動平均ARIMA(0,0,q)

          用后移符號,我們可以把ARIMA模型寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          常數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通過最小化

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          來獲得。對于給定的p,d,q組合,我們可以用python最大化log likelihood來找到合適的p,d,q。

          信息準則 information criteria

          赤池信息準則(AIC)在選取參數時非常有用,可以寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          其中L是數據的likelihood,如果c=0,k=0;如果c0,k=1。

          修正赤池信息準則(AICc)可以寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          貝葉斯信息準則(BIC)可以寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          最小化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)可以寫成:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          PACF和ACF圖中的周期性延遲可以看出AR模型或者MA模型的周期性部分。

          比如,SARIMA(0,0,0)(0,0,1)12模型會有以下特性:

          1.ACF中延遲12有突刺,但沒有其他的明顯突刺

          2.PACF的周期性延遲有指數衰減,比如在延遲12,24,36的地方

          相似的,SARIMA(0,0,0)(1,0,0)12模型會有以下特性:

          3.ACF的周期性延遲有指數衰減

          4.PACF中延遲12有突刺

          另外,根據簡約性原則parsimony principle,為佳。

          下面的例子可以很好的解釋模型擬合的過程:

          例子:歐洲季度零售指數

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          這個例子是歐洲零售指數從1996到2011年的數據,我們把它套進SARIMA模型進行預測。

          這組數據明顯是不平穩的,并有一些周期性,所以我們先進行周期性差分,如下圖:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          這看起來還是不平穩,我們再進行一次差分,如下圖:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          ACF圖中延遲1的明顯突刺說明有個非周期性的MA(1)部分,ACF圖中延遲4的明顯突刺說明有個周期性MA(1)的部分。所以,我們從SARIMA(0,1,1)(0,1,1)4模型開始,得到擬合模型的殘差,如下圖:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          ACF和PACF都在延遲2有明顯突刺,延遲3的突刺也不小,所以模型應該還有額外的非周期性部分。SARIMA(0,1,2)(0,1,1)4模型的AICc是74.36,SARIMA(0,1,3)(0,1,1)4模型的AICc是68.53。其他的AR參數都沒有更小的AICc值。所以,我們選擇SARIMA(0,1,3)(0,1,1)4,畫出該模型的殘差:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          所有突刺都在合理范圍內,殘差值看起來像白噪聲了。Ljung-Box測試也顯示殘差沒有自相關性了。

          然后,我們就可以用該模型進行預測了:

        智匯華云 ——AIOps之動態閾值:SARIMA模型詳解

          圖中顯示了預測值以及80%和95%的置信區間。

          指標動態閾值原理

          我們已經了解了SARIMA模型,并可以對時間序列數據進行預測了。對于動態閾值,我們首先獲取歷史數據,對數據進行處理,需要對缺失數據進行一些填充。然后我們進行SARIMA模型擬合,得出最優模型之后,對未來指標走勢進行預測,通過95%的置信區間生成閾值區間,如果指標超出這個區間,我們認為指標異常,對用戶進行告警。每天我們都會重復以上操作,讓模型擬合更加準確,從而使動態閾值功能日趨完善。

          部分參考資料來源互聯網

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品久久波多野结衣| 国产精品自在拍一区二区不卡| 久草视频在线这里精品| 亚洲国产成人精品女人久久久| 久久免费精品一区二区| 亚洲欧美日韩久久精品第一区| 一本久久a久久精品亚洲| 色播精品免费小视频| 色偷偷888欧美精品久久久| 亚洲国产精品高清久久久| 国产福利电影一区二区三区久久久久成人精品综合| 亚洲韩国精品无码一区二区三区 | 亚洲伊人久久精品影院| 国产精品一区二区久久精品无码| 国内精品久久九九国产精品| 精品亚洲成a人片在线观看少妇| 亚洲欧美精品午睡沙发| 精品无码人妻一区二区三区不卡 | 全国精品一区二区在线观看| 国产精品伊人久久伊人电影| 桃花岛精品亚洲国产成人| 国产成人精品视频播放| 国产精品99久久99久久久| 久久国产乱子伦精品免费强| 精品无码国产一区二区三区51安| 一本色道久久88精品综合| 午夜国产精品无套| 午夜精品久久久内射近拍高清| 久久精品国产亚洲5555| 国产午夜亚洲精品理论片不卡 | 自拍偷在线精品自拍偷无码专区| 日韩精品一区二三区中文 | 欧美精品福利视频| 国产精品一二二区| 精品久久一区二区三区| 国产精品三级在线| 国产精品久久一区二区三区| 国产精品久久久久久久久| 欧美一卡2卡3卡四卡海外精品| 青青草国产精品| 国产福利电影一区二区三区,亚洲国模精品一区 |