本發(fā)明涉及網(wǎng)絡流量監(jiān)控技術領域,具體涉及基于分布式聚類的網(wǎng)絡流量時間序列預測方法。
背景技術:
在網(wǎng)絡流量監(jiān)控領域中,對網(wǎng)絡流量時序數(shù)據(jù)進行分析和預測非常重要。目前已有的解決方案包括差分移動平均自回歸模型(autoregressiveintegratedmovingaveragemodel),多層感知器(multilayerperceptron),時間遞歸神經(jīng)網(wǎng)絡(recurrentneuralnetwork),長短期記憶人工神經(jīng)網(wǎng)絡(long-shorttermmemory),基于聚類時序預測等技術作為可能的解決方案已經(jīng)有大量的研究。從使用成本、精度、能耗以及可擴展性進行比較和衡量,我們可以分析得到基于聚類的時序預測方法在線上環(huán)境具有更好的優(yōu)越性,聚類方法是數(shù)據(jù)挖掘中的一個重要的領域,聚類方法極易擴展到分布式系統(tǒng)上,能夠成為低成本高效率的優(yōu)選方案。
主流的時序預測算法包括差分移動平均自回歸模型,多層感知器,時間遞歸神經(jīng)網(wǎng)絡,長短期記憶人工神經(jīng)網(wǎng)絡等技術。這些主流技術在用于時序數(shù)據(jù)平緩,上升下降穩(wěn)定的情況下效果較好,在分析預測波動較大,隨機性較強的網(wǎng)絡流量時序數(shù)據(jù)時,會造成預測效果和預測精度的持續(xù)下降。同時,在實際使用中,時間遞歸神經(jīng)網(wǎng)絡,長短期記憶人工神經(jīng)網(wǎng)絡等技術計算量大,耗時長,不適合用于實時環(huán)境。
技術實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術存在的上述不足,提供基于分布式聚類的網(wǎng)絡流量時序預測方法,使用基于分布式聚類的預測模型,能夠通過橫向擴展分布式系統(tǒng)得到性能的提高,成本低,性能好,為了解決預測波動較大的網(wǎng)絡流量時序數(shù)據(jù),結(jié)合自回歸模型對預測結(jié)果進行修正,極大地減少預測值的誤差,提高預測精度。
本發(fā)明通過如下技術方案實現(xiàn)。
1.基于分布式聚類的網(wǎng)絡流量時序預測方法,其技術方案的實現(xiàn)是分為兩個階段,分別是訓練階段和預測階段。訓練階段中將歷史的數(shù)據(jù)進行聚類的訓練,訓練結(jié)束后,進入預測階段,在預測階段中,將待預測的時間點之間的前綴數(shù)據(jù)進行計算預測值。
2.在訓練階段中將時間序列訓練集數(shù)據(jù)進行預處理,使用滑動窗口的方法,劃分成等長的時間片元組,以方便接下來的聚類處理。接著使用k-平均算法將時間片元組進行聚類,得到若干個聚類產(chǎn)生的簇。在每一個簇內(nèi),對數(shù)據(jù)進行正態(tài)擬合得到正態(tài)分布n(μ,σ2)。
3.在預測階段中,將待預測的時間序列的前綴數(shù)據(jù)進行預處理,從而得到待預測的定長的時間序列前綴元組。使用歐式距離公式進行計算,找到聚類結(jié)果中離前綴元組最近的聚類中心μ,即是網(wǎng)絡流量的初步的估計預測值。
4.在對多元組<t1,t2,…tn>進行聚類時,使用的是分布式的k-平均算法對時間片元組進行聚類訓練得到聚類的結(jié)果,而聚類方法的分布式采用映射歸納(map-reduce)分布式擴展。
5.使用自回歸模型對網(wǎng)絡流量的初步預測值μ進行修正,修正的方法是按照給定的比例因子,將預測值μ和待預測的時間點的上一個時間節(jié)點的實際值進行線性相加,根據(jù)自回歸模型對聚類中心μ進行修正獲得最終的預測值。
與現(xiàn)有技術相比,本發(fā)明具有如下優(yōu)點和技術效果:
(1)在使用k-平均算法的基礎上,結(jié)合了自回歸模型,使得預測結(jié)果更加精準。
基于聚類的時序預測方法融合了k-平均算法和自回歸模型。單獨使用k-平均算法進行時間序列數(shù)據(jù)預測結(jié)果較差,預測值通常會產(chǎn)生明顯較大的偏差,無法使用在實際業(yè)務環(huán)境中。自回歸模型的使用有很大的局限性,必須使用在具有自相關的時間序列數(shù)據(jù)上,否則無法進行精確的預測值?;诰垲惖臅r間序列預測方法融合了k-平均算法和自回歸模型,克服了各自單獨使用時所存在的不足和問題,使得預測結(jié)果更為精準。
(2)對訓練階段進行分布式計算和處理,保證了對數(shù)據(jù)進行訓練效率,性能高。
基于分布式聚類的時間序列預測方法,在訓練階段中,使用分布式的k-平均算法進行分布式聚類,將數(shù)據(jù)隨機分發(fā)到不同的節(jié)點進行處理,能夠得到處理性能的提高。通過聚類操作后,再分布式地根據(jù)聚類訓練的結(jié)果進行正態(tài)擬合,這一過程是同時在不同的節(jié)點上執(zhí)行的,能夠保證較高地性能,減少時間的使用。
(3)對預測階段進行分布式計算和處理,保證了預測過程的效率
基于分布式聚類的時間序列預測方法,在預測階段中,分布式地將待預測時間點的前綴時序數(shù)據(jù)進行分布式地預處理,然后分發(fā)到節(jié)點。在節(jié)點接收到前綴時序數(shù)據(jù),根據(jù)前綴時序數(shù)據(jù)找到最近的簇,得到初步的預測數(shù)值。在整個預測階段中都是分布式的,因此提高了預測階段的處理性能。
(4)系統(tǒng)架構(gòu)采用了映射歸納(map-reduce)分布式框架,易擴展,性能高
基于分布式聚類的時間序列預測方法可以在已有的流量監(jiān)控服務器的基礎上進行部署和搭建,映射歸納(map-reduce)分布式框架對機器的性能要求不高,極易擴展部署到多個節(jié)點上,能夠提高系統(tǒng)運行的并行化程度,具有成本低,性能高,運行時間少的優(yōu)點。
附圖說明
圖1為實例中算法部署模型示意圖。
圖2為網(wǎng)絡流量時序數(shù)據(jù)預處理示意圖。
圖3為時間片元組進行分布式聚類示意圖。
圖4為訓練階段流程圖。
圖5為預測階段流程圖。
具體實施方式
為了使本發(fā)明的技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖,進行進一步的詳細說明,但本發(fā)明的實施和保護不限于此。
如圖1、圖2、圖3、圖4所示,基于分布式聚類的時間序列數(shù)據(jù)預測包含三個部分,1、網(wǎng)絡流量時序數(shù)據(jù)切片;2、時間片元組聚類;3、聚類結(jié)果正態(tài)分布擬合。
本實例的系統(tǒng)的基本組成部分包括數(shù)據(jù)預處理層,數(shù)據(jù)分析層,預測值修正層,本算法的系統(tǒng)部署如圖1所示,預處理階段,將時間序列數(shù)據(jù)根據(jù)參數(shù)進行切片以元組的形式保存。
1.1網(wǎng)絡流量時序數(shù)據(jù)切片
通過對網(wǎng)絡流量時序數(shù)據(jù)進行切片,劃分若干個不同的元組。通過給定的定長參數(shù),記為look_back,將時序數(shù)據(jù)進行劃分時間片,時間片以多元組的形式<t1,t2,…tn>進行保存,tn表示第n個時間點的具體數(shù)值,將時間片元組的下一個時間點的值tn+1作為target,從而進行組合得到二元組
其中ti為第i個時間觀測值,target是預測值。
1.2時間片元組聚類
通過步驟1.1得到若干個時間片元組的集合,使用了k-平均算法聚類方法對時間片進行聚類分析。k-平均算法聚類主要分為兩個步驟來進行,分別是劃分和更新。在劃分階段,將每個元組劃分到相應的簇中,使得簇內(nèi)所有多元組
在更新階段,重新計算聚類中每一個簇的平均值,獲得新的聚類中心,作為新的均值點。
這一算法將在對于所有的xp所歸屬的簇不再發(fā)現(xiàn)變化時,判斷為收斂。否則判斷為不收斂需要繼續(xù)重復執(zhí)行以上兩個步驟。
因為交替進行的兩個步驟使得簇內(nèi)的目標函數(shù)值j逐漸減少,最終到達最小值,函數(shù)j表示某個簇的所有xp到聚類中心
1.3聚類結(jié)果正態(tài)分布擬合
正態(tài)分布曲線擬合是一種概率曲線擬合方法,通過步驟1.2我們得到時間片元組的預測值的集合settarget,集合settarget服從數(shù)學期望為μ、方差為σ2的正態(tài)分布,記為n(μ,σ2)。通過將聚類簇的集合中的所有數(shù)據(jù)代入正態(tài)擬合曲線公式計算獲得μ,σ。μ即是初步估計預測值。
進一步地,通過步驟1.3得到預測值存在較大的誤差,為了減少誤差,使用自回歸模型對預測值進行修正。自回歸模型的通用公式如下所示:
其中:c是常數(shù)項;εt被假設為平均數(shù)等于0,標準差等于σ的隨機誤差值;σ被假設為對于任何的t都不變。從邏輯上理解,xt的預測值等于一個或落后若干個時間點的線性組合,以及常數(shù)項和隨機誤差。結(jié)合之前聚類的結(jié)果,該公式可以退化成如下公式。
μ`=(1-α)μ+αti-1
其中,μ`為修正后的預測值,α是給定的比例因子,可以取值0.6到0.9之間,μ是初步預測值,ti-1為i-1時間點實際觀測值。
如圖4所示,在算法流程的訓練階段,網(wǎng)絡流量監(jiān)控系統(tǒng)將網(wǎng)絡流量時序數(shù)據(jù)通過預處理層進行分片預處理,得到分片時間序列元組,將網(wǎng)絡流量時間序列分片元組通過分布式聚類層進行處理,得到聚類結(jié)果,將聚類結(jié)果進行正態(tài)擬合獲得估計預測值。如圖5所示,在算法流程的預測階段,從網(wǎng)絡流量監(jiān)控系統(tǒng)接收到待預測的網(wǎng)絡流量的前綴時序數(shù)據(jù),通過預處理層進行分片預處理,獲得定長的前綴時序數(shù)據(jù),通過分布式計算找到匹配的聚類簇,獲得初步的預測值,結(jié)合自回歸模型進行誤差修正,得到最終的預測值。
本預測方法能夠在網(wǎng)絡流量監(jiān)控服務器的基礎上進行擴展。如圖1所示,架構(gòu)分為三層分別為數(shù)據(jù)預處理層、聚類處理層以及擬合修正層。數(shù)據(jù)預處理層獲取來自網(wǎng)絡流量監(jiān)控服務器的時間序列數(shù)據(jù),并對時間序列數(shù)據(jù)進行定長的數(shù)據(jù)預處理操作。聚類處理層將經(jīng)過預處理的數(shù)據(jù)進行聚類分析,并獲得初步預測值。擬合修正層能夠?qū)︻A測數(shù)據(jù)進行修正。
數(shù)據(jù)預處理層的具體實現(xiàn)是,分布式地從網(wǎng)絡流量監(jiān)控服務器獲取時間序列<t1,t2,…tn>,隨機切分時間序列數(shù)據(jù)并分發(fā)到不同的計算節(jié)點,經(jīng)過預處理獲得定長的時間序列數(shù)據(jù)元組。
在聚類處理層中,時間序列元組通過map層(映射層)的時候,分布式地計算元組與均值中心距離,將元組分發(fā)到距離最近的reduce層(歸納層),reduce層的階段中分布式地重新計算均值中心。將map和reduce兩個階段的交替執(zhí)行。由于交替進行的兩個步驟都會減小函數(shù)
在擬合修正層中,通過map層(映射層)分布式地從預處理層獲取經(jīng)過處理的待預測數(shù)據(jù)的時間點的前綴時間序列數(shù)據(jù),在reduce層(歸納層)中分布式地從map層(映射層)獲取前綴時間序列數(shù)據(jù),通過計算最近的聚類中心并獲取了初步的預測值,通過自回歸模型對預測值進行修正,獲得最終的預測值結(jié)果。