本發(fā)明涉及云環(huán)境下服務(wù)性能優(yōu)化技術(shù)領(lǐng)域,尤其涉及一種云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)系統(tǒng)及方法。
背景技術(shù):
隨著云應(yīng)用服務(wù)系統(tǒng)的復(fù)雜化及其運(yùn)行環(huán)境的開(kāi)放化、動(dòng)態(tài)化和難控化,云應(yīng)用服務(wù)系統(tǒng)在不同的時(shí)間點(diǎn)承載的并發(fā)量有著顯著的差異,并往往呈現(xiàn)出沿著某種規(guī)律的非平穩(wěn)的趨勢(shì)。應(yīng)用用戶(hù)并發(fā)量是指應(yīng)用在單位時(shí)間內(nèi)的用戶(hù)請(qǐng)求數(shù)。云應(yīng)用服務(wù)系統(tǒng)通過(guò)監(jiān)測(cè)應(yīng)用用戶(hù)并發(fā)量,分析和預(yù)測(cè)歷史應(yīng)用用戶(hù)并發(fā)量,執(zhí)行適合的保障服務(wù)性能資源調(diào)整策略,達(dá)到保障云服務(wù)系統(tǒng)的穩(wěn)定性和有效性的目的。因此,準(zhǔn)確實(shí)時(shí)的應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)既是判斷并發(fā)量異常與否的依據(jù),也是動(dòng)態(tài)資源配置的基礎(chǔ)。傳統(tǒng)的應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)多將應(yīng)用用戶(hù)并發(fā)量看作成平穩(wěn)時(shí)間序列,采用AR等線(xiàn)性模型進(jìn)行預(yù)測(cè),簡(jiǎn)單但精度較差。近年來(lái),基于神經(jīng)網(wǎng)絡(luò)的非線(xiàn)性預(yù)測(cè)理論和方法得到廣泛應(yīng)用,提高了預(yù)測(cè)精度,但神經(jīng)網(wǎng)絡(luò)固有的缺陷阻礙了它的進(jìn)一步發(fā)展。
在云應(yīng)用服務(wù)系統(tǒng)中,通過(guò)觸發(fā)模塊判斷是否需要執(zhí)行云資源性能優(yōu)化過(guò)程:如果當(dāng)前周期應(yīng)用的實(shí)際并發(fā)量與預(yù)測(cè)并發(fā)量的差值的絕對(duì)值大于閾值,則觸發(fā)性能優(yōu)化過(guò)程;否則,不觸發(fā)性能優(yōu)化過(guò)程。因此,盡可能準(zhǔn)確地預(yù)測(cè)云應(yīng)用用戶(hù)并發(fā)量有助于提高云資源性能優(yōu)化過(guò)程的效率。在這個(gè)過(guò)程中,建立并發(fā)量預(yù)測(cè)模型是云應(yīng)用系統(tǒng)性能優(yōu)化的關(guān)鍵。但由于云環(huán)境的復(fù)雜性,應(yīng)用所處理的業(yè)務(wù)大多屬于非平穩(wěn)型并發(fā)業(yè)務(wù),即應(yīng)用用戶(hù)并發(fā)量不在一定數(shù)值上下內(nèi)平穩(wěn)變化的業(yè)務(wù),其包括趨勢(shì)性并發(fā)業(yè)務(wù)與周期性并發(fā)業(yè)務(wù)。趨勢(shì)性并發(fā)業(yè)務(wù)是指應(yīng)用用戶(hù)并發(fā)量在一段時(shí)間內(nèi)具有遞增或遞減趨勢(shì)的業(yè)務(wù)。周期性并發(fā)業(yè)務(wù)是指應(yīng)用用戶(hù)并發(fā)量在一段時(shí)間內(nèi)周期性變化的業(yè)務(wù)。
為了構(gòu)建并發(fā)量預(yù)測(cè)模型,現(xiàn)有技術(shù)中大多采用時(shí)間序列分析、人工神經(jīng)網(wǎng)絡(luò)以及卡爾曼濾波等方法,主要有:依賴(lài)連續(xù)并發(fā)量信息的測(cè)量和捕獲,采用多種線(xiàn)性時(shí)間序列模型對(duì)并發(fā)量進(jìn)行短期的預(yù)測(cè);基于人工神經(jīng)網(wǎng)絡(luò)的BP預(yù)測(cè)算法,應(yīng)用人工智能技術(shù)預(yù)測(cè)并發(fā)量;基于濾波理論的預(yù)測(cè)算法PAA,應(yīng)用電子或動(dòng)力學(xué)的濾波理論預(yù)測(cè)并發(fā)量;等等。然而,現(xiàn)有的研究都集中在預(yù)測(cè)的算法上,企圖建立一個(gè)通用的預(yù)測(cè)算法以適應(yīng)各種應(yīng)用,這勢(shì)必導(dǎo)致算法的通用性提高而準(zhǔn)確性降低。而并發(fā)量本身沒(méi)有一個(gè)特定的非線(xiàn)性模式,不同的應(yīng)用,由于性質(zhì)的差異,需要相對(duì)應(yīng)的、適合的預(yù)測(cè)方法進(jìn)行并發(fā)量預(yù)測(cè)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明提供一種云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)系統(tǒng)及方法,針對(duì)云環(huán)境下非平穩(wěn)型業(yè)務(wù)的趨勢(shì)性與周期性應(yīng)用用戶(hù)并發(fā)量的特點(diǎn),利用不同的預(yù)測(cè)方法構(gòu)造了預(yù)測(cè)模型,對(duì)含有兩種性質(zhì)的并發(fā)量進(jìn)行預(yù)測(cè),能自動(dòng)識(shí)別趨勢(shì)性和周期性并分發(fā)量序列的特征,并能自動(dòng)計(jì)算出序列的周期數(shù),且無(wú)需人工干預(yù),能自行完成預(yù)測(cè)過(guò)程,同時(shí)能有效提高非平穩(wěn)型業(yè)務(wù)并發(fā)量預(yù)測(cè)的準(zhǔn)確性。
一方面,本發(fā)明提供一種云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)系統(tǒng),包括歷史數(shù)據(jù)獲取模塊、非平穩(wěn)型業(yè)務(wù)判定模塊和應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模塊;
所述歷史數(shù)據(jù)獲取模塊用于通過(guò)連接存儲(chǔ)應(yīng)用用戶(hù)并發(fā)量的數(shù)據(jù)庫(kù),將云環(huán)境下一段時(shí)間內(nèi)用戶(hù)并發(fā)量按照一定的時(shí)間間隔從數(shù)據(jù)庫(kù)中獲取到系統(tǒng)緩存當(dāng)中,為非平穩(wěn)型判定模塊提供有效的用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列;
所述非平穩(wěn)型業(yè)務(wù)判定模塊用于通過(guò)分析從歷史數(shù)據(jù)獲取模塊得到的用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列,來(lái)識(shí)別產(chǎn)生該用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列的業(yè)務(wù)是否屬于非平穩(wěn)型業(yè)務(wù),包括:趨勢(shì)性識(shí)別模塊和周期性識(shí)別模塊;
所述趨勢(shì)性識(shí)別模塊用于利用時(shí)間序列自相關(guān)系數(shù)趨勢(shì)識(shí)別法,識(shí)別用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列是否具有趨勢(shì)性;所述時(shí)間序列自相關(guān)系數(shù)趨勢(shì)識(shí)別法是一種利用自相關(guān)系數(shù)與T分布相結(jié)合,對(duì)時(shí)間序列的自相關(guān)系數(shù)與零值的差異性進(jìn)行檢測(cè),從而分析時(shí)間序列的趨勢(shì)性的方法;
所述周期性識(shí)別模塊用于利用時(shí)間序列功率譜周期識(shí)別法,識(shí)別用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列是否具有周期性,并計(jì)算周期性用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列的周期數(shù);所述時(shí)間序列功率譜周期識(shí)別法是利用周期圖法計(jì)算時(shí)間序列的功率譜,并對(duì)時(shí)間序列的功率譜進(jìn)行奇異值檢測(cè)分析,從而識(shí)別出時(shí)間序列的周期性,并計(jì)算具有周期性的時(shí)間序列的周期數(shù);
所述應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模塊用于利用經(jīng)過(guò)所述非平穩(wěn)型業(yè)務(wù)判定模塊判定后的非平穩(wěn)型業(yè)務(wù)的應(yīng)用用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列,建立相應(yīng)的云環(huán)境下應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模型,并利用該模型預(yù)測(cè)得到未來(lái)一段時(shí)間內(nèi)的應(yīng)用用戶(hù)并發(fā)量時(shí)間序列,包括趨勢(shì)性并發(fā)量預(yù)測(cè)模塊和周期性并發(fā)量預(yù)測(cè)模塊;
所述趨勢(shì)性并發(fā)量預(yù)測(cè)模塊用于對(duì)趨勢(shì)性并發(fā)量時(shí)間序列進(jìn)行預(yù)測(cè);
所述周期性并發(fā)量預(yù)測(cè)模塊用于從周期性識(shí)別模塊獲取周期數(shù),然后進(jìn)行周期性并發(fā)量時(shí)間序列的預(yù)測(cè);
所述云環(huán)境下應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模型是一種無(wú)需任何參數(shù)針對(duì)趨勢(shì)性時(shí)間序列與周期性時(shí)間序列的預(yù)測(cè)模型。
另一方面,本發(fā)明還提供一種云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)方法,采用所述的云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)系統(tǒng)實(shí)現(xiàn),包括以下步驟:
步驟1:從數(shù)據(jù)庫(kù)服務(wù)器獲取用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列S;
從數(shù)據(jù)庫(kù)服務(wù)器獲取用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列S,如下式所示;
其中,coni為ti時(shí)間的并發(fā)量,時(shí)間ti滿(mǎn)足ti<ti+1,n為并發(fā)量總個(gè)數(shù);
步驟2、計(jì)算自相關(guān)系數(shù)序列;
將用戶(hù)并發(fā)量序列按延遲步長(zhǎng)為k的間隔可化分為n-k個(gè)二元組:<conl,conl+k>、…、<coni,coni+k>、…、<conn-k,conn>,其延遲步長(zhǎng)為k的自相關(guān)系數(shù)ρk為:
其中,為并發(fā)量時(shí)間序列中前n-k項(xiàng)的平均值,為并發(fā)量時(shí)間序列中前n-k項(xiàng)向后平移k項(xiàng)的所有值的平均值;γ(i,i+k)為自協(xié)方差函數(shù);
用戶(hù)并發(fā)量自相關(guān)系數(shù)序列由各延遲步長(zhǎng)下自相關(guān)系數(shù)組成,為其中,Pm為用戶(hù)并發(fā)量自相關(guān)系數(shù)序列,k=1,2,…,例,m為最大延遲步長(zhǎng);
步驟3、計(jì)算功率譜序列;
用戶(hù)并發(fā)量功率譜序列由各頻率下時(shí)間序列的功率譜組成,為其中,Q為用戶(hù)并發(fā)量功率譜序列,為頻率為v時(shí)并發(fā)量序列的功率譜,其中,F(xiàn)v為用戶(hù)并發(fā)量序列的離散傅里葉變換,v=1,2,…,n,Wn為旋轉(zhuǎn)因子,j為虛數(shù)單位;
步驟4、對(duì)用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列進(jìn)行業(yè)務(wù)性質(zhì)識(shí)別,具體包括:
步驟4.1、進(jìn)行趨勢(shì)性識(shí)別,識(shí)別方法為:
步驟4.1.1、利用t分布推斷出并發(fā)量自相關(guān)系數(shù)序列Pm與零值發(fā)生差異的錯(cuò)誤概率Pρ;
步驟4.1.2、判斷錯(cuò)誤概率Pρ與趨勢(shì)性判定閾值Ps的關(guān)系,若Pρ>Ps,表示自相關(guān)系數(shù)序列Pm與零差異性不顯著,該用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列無(wú)趨勢(shì)性,執(zhí)行步驟4.2;若Pρ<Ps,表示自相關(guān)系數(shù)序列Pm與零差異性顯著,該用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列含有趨勢(shì)性,執(zhí)行步驟5,進(jìn)行趨勢(shì)性并發(fā)量的預(yù)測(cè);
步驟4.2、進(jìn)行周期性識(shí)別,識(shí)別方法為:
步驟4.2.1、確定功率譜序列Q的相鄰數(shù)據(jù)變化序列H,為
其中,為向上取整符號(hào);
步驟4.2.2、根據(jù)3σ準(zhǔn)則,判斷頻率為v時(shí)并發(fā)量序列的功率譜的奇異性,μc為相鄰數(shù)據(jù)變化序列H的平均值,σc為相鄰數(shù)據(jù)變化序列H的標(biāo)準(zhǔn)差,若hv-μc>3σc,為奇異值,則用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列含有周期性,執(zhí)行步驟4.3;否則,為非奇異值,用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列不含周期性,則步驟終止;
步驟4.3、計(jì)算用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列的周期數(shù)nperiod,其中,v。為周期峰對(duì)應(yīng)的頻率;然后執(zhí)行步驟5,進(jìn)行周期性并發(fā)量的預(yù)測(cè);
步驟5、進(jìn)行趨勢(shì)性并發(fā)量預(yù)測(cè),具體方法為:
步驟5.1、進(jìn)行基于線(xiàn)性回歸的數(shù)據(jù)擬合,采用線(xiàn)性回歸的方法對(duì)趨勢(shì)性應(yīng)用并發(fā)量序列進(jìn)行擬合,得到訓(xùn)練完成的線(xiàn)性回歸模型fw(x)和原始數(shù)據(jù)與線(xiàn)性回歸模型擬合后的殘差數(shù)據(jù)序列,進(jìn)而將原始序列與擬合序列的殘差作為平穩(wěn)型序列進(jìn)行分析;
步驟5.2、進(jìn)行基于ARMA(Auto-Regressive and Moving Average,自回歸滑動(dòng)平均)的殘差擬合,實(shí)現(xiàn)對(duì)殘差數(shù)據(jù)序列的分析和建模,得到的ARMA(p,q)模型有p+q+2個(gè)未知參數(shù),即θ1,θ2,…,θq、μ和p是自回歸階數(shù),q是移動(dòng)平均階數(shù),是p階自相關(guān)系數(shù),θ1,θ2,…,θq是q階移動(dòng)平均系數(shù),μ是移動(dòng)位移值,是隨機(jī)干擾項(xiàng)的方差值,其中,p和q需要進(jìn)行預(yù)設(shè);
步驟5.3、進(jìn)行基于Ljung-Box檢驗(yàn)的二次殘差驗(yàn)證;
采用Ljung-Box檢驗(yàn)進(jìn)行驗(yàn)證,Ljung-Box檢驗(yàn)則是基于一系列滯后階數(shù),對(duì)二次殘差是否屬于高斯白噪聲進(jìn)行驗(yàn)證,二次殘差是指擬合ARMA后得到的殘差序列,判斷序列總體的相關(guān)性是否存在,驗(yàn)證的本質(zhì)是確定建立的ARMA模型是否有效,如果相關(guān)性不存在代表ARMA模型有效,則執(zhí)行步驟5.4,反之,相關(guān)性存在代表ARMA模型無(wú)效,則重新訓(xùn)練ARMA模型,返回步驟5.2;
步驟5.4、基于訓(xùn)練完成的線(xiàn)性回歸模型和ARMA模型進(jìn)行趨勢(shì)性應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè);
步驟6、進(jìn)行周期性并發(fā)量預(yù)測(cè),具體方法如下:
步驟6.1、初始化粒子群的最大粒子數(shù)、最大迭代次數(shù)以及粒子的位置和速度;
步驟6.2、采用5折交叉驗(yàn)證法訓(xùn)練支持向量機(jī)模型,將并發(fā)量歷史時(shí)間序列分為5個(gè)數(shù)據(jù)包,其中4個(gè)數(shù)據(jù)包用于訓(xùn)練,1個(gè)數(shù)據(jù)包用于測(cè)試訓(xùn)練結(jié)果;
步驟6.3、利用預(yù)測(cè)準(zhǔn)確率fCP作為適應(yīng)度評(píng)價(jià)標(biāo)準(zhǔn)評(píng)價(jià)粒子適應(yīng)度,預(yù)測(cè)準(zhǔn)確率fCP為其中,為并發(fā)量預(yù)測(cè)值,和分別為指定的并發(fā)量歷史數(shù)據(jù)coni可接受的準(zhǔn)確區(qū)間的上界和下界,coni為并發(fā)量歷史值,PL為預(yù)測(cè)的容錯(cuò)度;
步驟6.4、更新局部最優(yōu)解與全局最優(yōu)解,并將結(jié)果記錄在局部最優(yōu)解向量pi與全局最優(yōu)解向量pg中;
步驟6.5、判斷更新迭代是否達(dá)到終止條件,迭代的終止條件為最大迭代次數(shù),如果最大迭代次數(shù)尚未達(dá)到,則更新粒子的位置和速度后,返回步驟6.4,進(jìn)入下一個(gè)迭代循環(huán),繼續(xù)查找支持向量機(jī)參數(shù)的最優(yōu)解;如果達(dá)到最大迭代次數(shù),則迭代終止,粒子群優(yōu)化結(jié)束,得到支持向量機(jī)的懲罰因子C與核參數(shù)γ的最優(yōu)解,執(zhí)行步驟6.6;
步驟6.6、進(jìn)行支持向量機(jī)預(yù)測(cè),利用從粒子群優(yōu)化算法中得到的懲罰因子C與核參數(shù)γ的最優(yōu)解作用于支持向量機(jī),并利用并發(fā)量歷史數(shù)據(jù)時(shí)間序列訓(xùn)練支持向量機(jī)模型,然后利用訓(xùn)練結(jié)果及輸入的預(yù)測(cè)時(shí)間序列的時(shí)間標(biāo)識(shí),通過(guò)重建訓(xùn)練預(yù)測(cè)出周期性應(yīng)用用戶(hù)并發(fā)量數(shù)據(jù)。
進(jìn)一步地,所述步驟5.1中數(shù)據(jù)擬合的過(guò)程如下:
步驟5.1.1、設(shè)置進(jìn)行線(xiàn)性回歸擬合的目標(biāo)函數(shù)為fw(ti)=wTti,fw(ti)表示ti時(shí)刻對(duì)應(yīng)的擬合應(yīng)用用戶(hù)并發(fā)量,w為損失函數(shù)參數(shù);
步驟5.1.2、設(shè)置進(jìn)行線(xiàn)性回歸的損失函數(shù)為了(w)表示真實(shí)應(yīng)用用戶(hù)并發(fā)量與擬合應(yīng)用用戶(hù)并發(fā)量的誤差平方和;
步驟5.1.3、采用梯度下降法進(jìn)行損失函數(shù)中的參數(shù)優(yōu)化求解,得到損失函數(shù)參數(shù)w的更新公式為:其中,α為學(xué)習(xí)速率,j為w更新的標(biāo)號(hào),j=0,1,…,limit,limit為梯度下降的迭代次數(shù);設(shè)置參數(shù)更新閾值ε,參數(shù)更新直到前后兩次絕對(duì)值小于參數(shù)更新閾值ε或者更新迭代次數(shù)達(dá)到了設(shè)置的迭代次數(shù)limit。
進(jìn)一步地,所述步驟5.3判斷序列總體的相關(guān)性是否存在的具體方法為:
步驟5.3.1、Ljung-Box檢驗(yàn)的原假設(shè)H0為:原本的數(shù)據(jù)都是獨(dú)立的,即總體的相關(guān)系數(shù)為0,能觀察到的某些相關(guān)僅僅產(chǎn)生于隨機(jī)抽樣的誤差,即其中,h是指定延遲期數(shù),根據(jù)二次殘差的自相關(guān)圖人為設(shè)定其取值的數(shù)值;Ljung-Box檢驗(yàn)的備擇假設(shè)Ha為:原本的數(shù)據(jù)不是獨(dú)立的,即至少存在某個(gè)其中,k≤h;
步驟5.3.2、構(gòu)造統(tǒng)計(jì)量R為其中,u是用戶(hù)并發(fā)量時(shí)間序列二次殘差序列中元素的個(gè)數(shù),其數(shù)值上和n相等,是二次殘差序列k階滯后的相關(guān)系數(shù),該統(tǒng)計(jì)量服從自由度為h的卡方分布,給定顯著性水平α,則拒絕域是若接受原假設(shè)HO,則認(rèn)為原序列不存在相關(guān)性,否則認(rèn)為原序列存在相關(guān)性。
進(jìn)一步地,所述步驟5.4中趨勢(shì)性應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)方法,具體步驟如下:
步驟5.4.1、基于訓(xùn)練完成的線(xiàn)性回歸模型,得到下一段時(shí)間tn+1,tn+2,…,tl的預(yù)測(cè)并發(fā)量為pre_conn+1,pre_conn+2,…,pre_conl,1表示預(yù)測(cè)并發(fā)量時(shí)間點(diǎn)的個(gè)數(shù),同時(shí)也是預(yù)測(cè)并發(fā)量的個(gè)數(shù);
步驟5.4.2、基于訓(xùn)練完成的ARMA模型,得到下一段時(shí)間tn+1,tn+2,…,tl的預(yù)測(cè)殘差為pre_biasn+1,pre_biasn+2,…,pre_biasl;
步驟5.4.3、下一段時(shí)間tn+1,tn+2,…,tm的預(yù)測(cè)趨勢(shì)性應(yīng)用用戶(hù)并發(fā)量為pre_conn+1+pre_biasn+1,pre_conn+2+pre_biasn+2,…,pre_conm+pre_biasm。
由上述技術(shù)方案可知,本發(fā)明的有益效果在于:本發(fā)明提供的一種云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)系統(tǒng)及方法,針對(duì)云環(huán)境下非平穩(wěn)型業(yè)務(wù)的趨勢(shì)性與周期性應(yīng)用用戶(hù)并發(fā)量的特點(diǎn),利用不同的預(yù)測(cè)方法構(gòu)造了預(yù)測(cè)模型,對(duì)含有兩種性質(zhì)的并發(fā)量進(jìn)行預(yù)測(cè),提高了非平穩(wěn)型業(yè)務(wù)并發(fā)量預(yù)測(cè)的準(zhǔn)確性;并發(fā)量序列趨勢(shì)性判定方法,本方法通過(guò)自相關(guān)系數(shù)與T分布結(jié)合分析,可以自動(dòng)的識(shí)別趨勢(shì)性并分發(fā)量序列的特征;并發(fā)量序列周期性判定方法,本方法通過(guò)周期圖法計(jì)算出的功率譜序列與3口準(zhǔn)則結(jié)合分析,可以自動(dòng)的識(shí)別周期性并發(fā)量的特征,并可以自動(dòng)的計(jì)算出序列的周期數(shù),解決了人工干預(yù)計(jì)算周期的問(wèn)題;趨勢(shì)性并發(fā)量序列預(yù)測(cè)方法,采用線(xiàn)性回歸的方法對(duì)趨勢(shì)型應(yīng)用并發(fā)量序列進(jìn)行擬合,并與ARMA算法結(jié)合,使擬合序列與殘差擬合序列共同構(gòu)造出預(yù)測(cè)序列,這種方法對(duì)具有趨勢(shì)性的序列具有優(yōu)秀的預(yù)測(cè)效果,且無(wú)需人工干預(yù),自行完成預(yù)測(cè)過(guò)程;周期性并發(fā)量序列預(yù)測(cè)方法,利用粒子群優(yōu)化的支持向量機(jī)對(duì)已知周期的并發(fā)量序列進(jìn)行預(yù)測(cè),能夠精準(zhǔn)的識(shí)別周期特征,尤其是對(duì)有趨勢(shì)變化的周期性序列較其他預(yù)測(cè)方法有較好的預(yù)測(cè)效果,且無(wú)需人工干預(yù),自行完成預(yù)測(cè)過(guò)程。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)系統(tǒng)的結(jié)構(gòu)框圖;
圖2為本發(fā)明實(shí)施例提供的云環(huán)境下應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模型的結(jié)構(gòu)框圖;
圖3為本發(fā)明實(shí)施例提供的云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)方法的流程圖;
圖4為本發(fā)明實(shí)施例提供的周期性應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)流程圖;
圖5為本發(fā)明實(shí)施例提供的趨勢(shì)性應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)流程圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。
如圖1所示,一種云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)系統(tǒng),包括歷史數(shù)據(jù)獲取模塊、非平穩(wěn)型業(yè)務(wù)判定模塊和應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模塊。
歷史數(shù)據(jù)獲取模塊用于通過(guò)連接存儲(chǔ)應(yīng)用用戶(hù)并發(fā)量的數(shù)據(jù)庫(kù),將云環(huán)境下一段時(shí)間內(nèi)用戶(hù)并發(fā)量按照一定的時(shí)間間隔從數(shù)據(jù)庫(kù)中獲取到系統(tǒng)緩存當(dāng)中,為非平穩(wěn)型判定模塊提供有效的用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列。
非平穩(wěn)型業(yè)務(wù)判定模塊用于通過(guò)分析從歷史數(shù)據(jù)獲取模塊得到的用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列,來(lái)識(shí)別產(chǎn)生該用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列的業(yè)務(wù)是否屬于非平穩(wěn)型業(yè)務(wù),包括:趨勢(shì)性識(shí)別模塊和周期性識(shí)別模塊,應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模塊提供算法選擇依據(jù)及必要數(shù)據(jù)。
趨勢(shì)性識(shí)別模塊用于利用時(shí)間序列自相關(guān)系數(shù)趨勢(shì)識(shí)別法,識(shí)別用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列是否具有趨勢(shì)性。時(shí)間序列自相關(guān)系數(shù)趨勢(shì)識(shí)別法是一種利用自相關(guān)系數(shù)與T分布相結(jié)合,對(duì)時(shí)間序列的自相關(guān)系數(shù)與零值的差異性進(jìn)行檢測(cè),從而識(shí)別時(shí)間序列的趨勢(shì)性的方法。
周期性識(shí)別模塊用于利用時(shí)間序列功率譜周期識(shí)別法,識(shí)別用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列是否具有周期性,并計(jì)算周期性用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列的周期數(shù)。時(shí)間序列功率譜周期識(shí)別法是利用周期圖法計(jì)算時(shí)間序列的功率譜,并對(duì)時(shí)間序列的功率譜進(jìn)行奇異值檢測(cè)分析,從而識(shí)別出時(shí)間序列的周期性,并計(jì)算具有周期性的時(shí)間序列的周期數(shù)。
應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模塊用于利用經(jīng)過(guò)非平穩(wěn)型業(yè)務(wù)判定模塊判定后的非平穩(wěn)型業(yè)務(wù)的應(yīng)用用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列,建立相應(yīng)的云環(huán)境下應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模型,并利用該模型預(yù)測(cè)得到未來(lái)一段時(shí)間內(nèi)的應(yīng)用用戶(hù)并發(fā)量時(shí)間序列,包括趨勢(shì)性并發(fā)量預(yù)測(cè)模塊和周期性并發(fā)量預(yù)測(cè)模塊。
趨勢(shì)性并發(fā)量預(yù)測(cè)模塊用于對(duì)趨勢(shì)性并發(fā)量時(shí)間序列進(jìn)行預(yù)測(cè),周期性并發(fā)量預(yù)測(cè)模塊用于從周期性識(shí)別模塊獲取周期數(shù),然后進(jìn)行周期性并發(fā)量時(shí)間序列的預(yù)測(cè)。
云環(huán)境下應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)模型是一種無(wú)需任何參數(shù)針對(duì)趨勢(shì)性時(shí)間序列與周期性時(shí)間序列的預(yù)測(cè)模型,模型結(jié)構(gòu)如圖2所示,采取分別預(yù)測(cè)的方式,趨勢(shì)性并發(fā)量利用粒子群優(yōu)化的支持向量機(jī)進(jìn)行預(yù)測(cè),周期性并發(fā)量利用基于線(xiàn)性回歸與ARMA的方法進(jìn)行預(yù)測(cè)。
采用上述的預(yù)測(cè)系統(tǒng)進(jìn)行云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量預(yù)測(cè)的方法,如圖3所示,具體包括以下步驟。
步驟1、獲取用戶(hù)并發(fā)量歷史數(shù)據(jù)。
從數(shù)據(jù)庫(kù)服務(wù)器獲取用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列,本實(shí)施方案中,從數(shù)據(jù)庫(kù)服務(wù)器獲取2016年3月5日-2016年3月7日間每天9:00-10:15的并發(fā)量數(shù)據(jù),這些并發(fā)量數(shù)據(jù)以30秒為時(shí)間間隔記錄,此用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列是一個(gè)按照時(shí)間順序排列的時(shí)間與并發(fā)量的二元組的集合,即用戶(hù)并發(fā)量時(shí)間序列為
其中,coni為ti時(shí)間的并發(fā)量,時(shí)間ti滿(mǎn)足ti<ti+1,n為并發(fā)量總個(gè)數(shù),本實(shí)施例中的并發(fā)量總個(gè)數(shù)為450。
為了減小并發(fā)量個(gè)別噪聲對(duì)特征分析造成的影響,coni的取值為時(shí)間步長(zhǎng)內(nèi)的平均并發(fā)量,即其中,ri為ti-1至ti時(shí)間內(nèi)云服務(wù)的用戶(hù)請(qǐng)求數(shù)。
步驟2、計(jì)算自相關(guān)系數(shù)序列。
由步驟1可知,con1、con2、…、coni、…、conn是過(guò)去450個(gè)時(shí)間點(diǎn)對(duì)應(yīng)的用戶(hù)并發(fā)量,將這個(gè)序列按延遲步長(zhǎng)為1的間隔可化分為n-1即449個(gè)二元組:<con1,con2>、<con2,con3>、…、<coni,coni+1>、…、<con449,con450>,其延遲步長(zhǎng)為1的自相關(guān)系數(shù)為:
其中,為并發(fā)量時(shí)間序列中前n-k項(xiàng)的平均值,為并發(fā)量時(shí)間序列中前n-k項(xiàng)向后平移k項(xiàng)的所有值的平均值;γ(i,i+k)為自協(xié)方差函數(shù);
自相關(guān)系數(shù)的含義不同于兩個(gè)變量間的相關(guān)系數(shù),并發(fā)量自相關(guān)系數(shù)ρ1用來(lái)度量并發(fā)量時(shí)間序列上一時(shí)間段并發(fā)量觀測(cè)值與下一時(shí)間段并發(fā)量觀測(cè)值之間的關(guān)系,從定量的角度來(lái)研究上一時(shí)間段對(duì)下一時(shí)間段并發(fā)量觀測(cè)值的影響程度的大小。自相關(guān)系數(shù)的延遲步長(zhǎng)是組成二元組的兩個(gè)數(shù)值在序列中的間隔數(shù),如果延遲步長(zhǎng)為k,則組成的二元組為<coni,coni+k>,由此可知,并發(fā)量時(shí)間序列可被劃分出n-k個(gè)二元組,這樣可以得到并發(fā)量的自相關(guān)系數(shù)序列。
用戶(hù)并發(fā)量自相關(guān)系數(shù)序列是一個(gè)由各延遲步長(zhǎng)下自相關(guān)系數(shù)組成的序列其中,ρk為并發(fā)量時(shí)間序列在延遲步長(zhǎng)為k下的自相關(guān)系數(shù):
其中,k=1,2,…,m,m為最大延遲步長(zhǎng),一般情況下為向上取整符號(hào),本實(shí)施例中,最大延遲步長(zhǎng)m取值150。
步驟3、計(jì)算功率譜序列。
并發(fā)量功率譜序列是一個(gè)由各頻率下時(shí)間序列的功率譜組成的序列其中,為頻率為v時(shí)并發(fā)量序列的功率譜:
其中,F(xiàn)v為用戶(hù)并發(fā)量序列的離散傅里葉變換,v=1,2,…,n,Wn為旋轉(zhuǎn)因子,j為虛數(shù)單位。
步驟4、對(duì)用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列進(jìn)行業(yè)務(wù)性質(zhì)識(shí)別,具體包括:
步驟4.1、進(jìn)行趨勢(shì)性識(shí)別,識(shí)別方法為:
步驟4.1.1、利用t分布推斷出并發(fā)量自相關(guān)系數(shù)序列Pm與零值發(fā)生差異的錯(cuò)誤概率Pρ;
步驟4.1.2、判斷錯(cuò)誤概率Pρ與趨勢(shì)性判定閾值Ps的關(guān)系,若Pρ>Ps,表示自相關(guān)系數(shù)序列Pm與零差異性不顯著,該用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列無(wú)趨勢(shì)性,執(zhí)行步驟4.2;若Pρ<Ps,表示自相關(guān)系數(shù)序列Pm與零差異性顯著,該用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列含有趨勢(shì)性,執(zhí)行步驟5,進(jìn)行趨勢(shì)性并發(fā)量的預(yù)測(cè);
趨勢(shì)性判定閾值Ps可調(diào)節(jié)趨勢(shì)性判定的標(biāo)準(zhǔn),Ps值越大,用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列越容易被判定為具有趨勢(shì)性,反之,則具有較強(qiáng)趨勢(shì)性的序列才能被判定為具有趨勢(shì)性。本實(shí)施例中,Ps=0.05;
步驟4.2、進(jìn)行周期性識(shí)別,識(shí)別方法為:
步驟4.2.1、確定功率譜序列Q的相鄰數(shù)據(jù)變化序列H,為
其中,由于當(dāng)v=1時(shí),頻率為v時(shí)并發(fā)量序列的功率譜的值可能會(huì)出現(xiàn)突出峰值,當(dāng)時(shí)間序列為趨勢(shì)性時(shí)這個(gè)峰值尤為突出,但這個(gè)峰值表示整個(gè)時(shí)間序列只有一個(gè)周期,因此這個(gè)值不能代表序列的周期性,所以在識(shí)別突出峰值時(shí)不考慮v=1時(shí)的功率譜;
步驟4.2.2、用μc代表相鄰數(shù)據(jù)變化序列H的平均值,用σc代表相鄰數(shù)據(jù)變化序列H的標(biāo)準(zhǔn)差,則根據(jù)3σ準(zhǔn)則,判斷頻率為v時(shí)并發(fā)量序列的功率譜的奇異性,若hv-μc>3σc,為奇異值,則用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列含有周期性,執(zhí)行步驟4.3;否則,為非奇異值,用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列不含周期性,則步驟終止;
步驟4.3、計(jì)算用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列的周期數(shù),然后執(zhí)行步驟6,進(jìn)行周期性并發(fā)量的預(yù)測(cè);
如果用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列含有周期性,則計(jì)算其周期數(shù)nperiod,并發(fā)量序列周期數(shù)為并發(fā)量序列在一個(gè)周期內(nèi)的數(shù)值個(gè)數(shù):
其中,vs為周期峰對(duì)應(yīng)的頻率,周期峰即在功率譜序列中突出大的一個(gè)功率譜數(shù)值。
步驟5、進(jìn)行趨勢(shì)性并發(fā)量預(yù)測(cè),如圖4所示,具體方法為:
步驟5.1、進(jìn)行基于線(xiàn)性回歸的數(shù)據(jù)擬合,采用線(xiàn)性回歸的方法對(duì)趨勢(shì)性應(yīng)用并發(fā)量序列進(jìn)行擬合,得到訓(xùn)練完成的線(xiàn)性回歸模型fw(x)和原始數(shù)據(jù)與線(xiàn)性回歸模型擬合后的殘差數(shù)據(jù)序列,進(jìn)而將原始序列與擬合序列的殘差作為平穩(wěn)型序列進(jìn)行分析,擬合過(guò)程如下:
步驟5.1.1、設(shè)置進(jìn)行線(xiàn)性回歸擬合的目標(biāo)函數(shù)為fw(ti)=wTti,fw(ti)表示ti時(shí)刻對(duì)應(yīng)的擬合應(yīng)用用戶(hù)并發(fā)量,w為損失函數(shù)參數(shù);本實(shí)施例中,w初始化設(shè)置為一個(gè)各元素為0的向量[0,0];
步驟5.1.2、設(shè)置進(jìn)行線(xiàn)性回歸的損失函數(shù)為了(w)表示真實(shí)應(yīng)用用戶(hù)并發(fā)量與擬合應(yīng)用用戶(hù)并發(fā)量的誤差平方和;
步驟5.1.3、采用梯度下降法進(jìn)行損失函數(shù)中的參數(shù)優(yōu)化求解,得到損失函數(shù)參數(shù)w的更新公式為:其中,α為學(xué)習(xí)速率,j為w更新的標(biāo)號(hào),j=0,1,…,limit,limit為梯度下降的迭代次數(shù);設(shè)置參數(shù)更新閾值ε,參數(shù)更新直到前后兩次絕對(duì)值小于參數(shù)更新閾值ε或者更新迭代次數(shù)達(dá)到了設(shè)置的迭代次數(shù)limit;本實(shí)施例中,limit=200,ε=10-3;
通過(guò)線(xiàn)性回歸對(duì)原始數(shù)據(jù)訓(xùn)練完成之后,會(huì)得到兩部分內(nèi)容,一部分是訓(xùn)練完成的線(xiàn)性回歸模型fw(x),另一部分是原始數(shù)據(jù)與線(xiàn)性回歸模型擬合后的殘差數(shù)據(jù)序列;
步驟5.2、進(jìn)行基于ARMA的殘差擬合;
在得到殘差應(yīng)用用戶(hù)并發(fā)量數(shù)據(jù)之后,基于殘差應(yīng)用用戶(hù)并發(fā)量數(shù)據(jù)的特點(diǎn),采用ARMA算法(Auto-Regressive and Moving Average,自回歸滑動(dòng)平均)實(shí)現(xiàn)對(duì)殘差數(shù)據(jù)序列的分析和建模;
對(duì)于ARMA(p,q)模型,有p+q+2個(gè)未知參數(shù),即θ1、θ2、…、θq、μ和p是自回歸階數(shù),q是移動(dòng)平均階數(shù),是p階自相關(guān)系數(shù),θ1,θ2,…,θq是q階移動(dòng)平均系數(shù),μ是移動(dòng)位移值,是隨機(jī)干擾項(xiàng)的方差值,其中,p和q需要進(jìn)行預(yù)設(shè),它們共同決定模型的擬合效果;本實(shí)施例中,p=4,q=1,即ARMA(p,q)模型由7個(gè)未知參數(shù);
步驟5.3、進(jìn)行基于Ljung-Box檢驗(yàn)的二次殘差驗(yàn)證;
采用Ljung-Box檢驗(yàn)進(jìn)行驗(yàn)證,Ljung-Box檢驗(yàn)則是基于一系列滯后階數(shù),對(duì)二次殘差是否屬于高斯白噪聲進(jìn)行驗(yàn)證,二次殘差是指擬合ARMA后得到的殘差序列,判斷序列總體的相關(guān)性或者說(shuō)隨機(jī)性是否存在,驗(yàn)證的本質(zhì)是確定建立的ARMA模型是否有效,具體方法為:
步驟5.3.1、Ljung-Box檢驗(yàn)的原假設(shè)H0為:原本的數(shù)據(jù)都是獨(dú)立的,即總體的相關(guān)系數(shù)為0,能觀察到的某些相關(guān)僅僅產(chǎn)生于隨機(jī)抽樣的誤差,即其中h是指定延遲期數(shù),根據(jù)二次殘差的自相關(guān)圖人為設(shè)定其取值的數(shù)值,本實(shí)施例中,h=10;Ljung-Box檢驗(yàn)的備擇假設(shè)Ha為:原本的數(shù)據(jù)不是獨(dú)立的,即至少存在某個(gè)其中,k≤h;
步驟5.3.2、構(gòu)造統(tǒng)計(jì)量R為:其中,u是用戶(hù)并發(fā)量時(shí)間序列二次殘差序列中元素的個(gè)數(shù),其數(shù)值上和n相等,是二次殘差序列k階滯后的相關(guān)系數(shù),該統(tǒng)計(jì)量R服從自由度為h的卡方分布,給定顯著性水平α,則拒絕域是接受原假設(shè)意味著認(rèn)為原序列是白噪聲序列,相關(guān)性不存在,ARMA模型有效,則執(zhí)行步驟5.4,否則認(rèn)為序列存在相關(guān)性,ARMA模型無(wú)效,則返回步驟5.2,重新訓(xùn)練ARMA模型;
經(jīng)過(guò)以上步驟,可以驗(yàn)證ARMA模型是否充分提取了殘差中信息,并能夠?qū)埐钸M(jìn)行精確的預(yù)測(cè),若經(jīng)過(guò)ARMA模型得到的二次殘差不屬于高斯白噪聲,說(shuō)明需要返回步驟5.2進(jìn)行ARMA模型的重建;
步驟5.4、進(jìn)行基于訓(xùn)練模型的預(yù)測(cè);
通過(guò)對(duì)線(xiàn)性回歸模型和ARMA的訓(xùn)練,能夠分別得到兩個(gè)模型:線(xiàn)性回歸模型對(duì)原始應(yīng)用用戶(hù)并發(fā)量數(shù)據(jù)的趨勢(shì)進(jìn)行擬合,進(jìn)而對(duì)未來(lái)下一段時(shí)間的應(yīng)用用戶(hù)并發(fā)量進(jìn)行預(yù)測(cè),ARMA模型對(duì)基于線(xiàn)性回歸擬合后的殘差數(shù)據(jù)進(jìn)行擬合,進(jìn)而對(duì)未來(lái)下一段時(shí)間的殘差趨勢(shì)進(jìn)行預(yù)測(cè);因此,趨勢(shì)性應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)包括兩部分的預(yù)測(cè)結(jié)果之和,具體步驟如下:
步驟5.4.1、基于訓(xùn)練完成的線(xiàn)性回歸模型,得到下一段時(shí)間tn+1,tn+2,…,tl的預(yù)測(cè)并發(fā)量為pre_conn+1,pre_conn+2,…,pre_conl,l表示預(yù)測(cè)并發(fā)量時(shí)間點(diǎn)的個(gè)數(shù),同時(shí)也是預(yù)測(cè)并發(fā)量的個(gè)數(shù),本實(shí)施例中嗎,1=50;
步驟5.4.2、基于訓(xùn)練完成的ARMA模型,得到下一段時(shí)間tn+1,tn+2,…,tm的預(yù)測(cè)殘差為pre_biasn+1,pre_biasn+2,…,pre_biasm;
步驟5.4.3、下一段時(shí)間tn+1,tn+2,…,tm的預(yù)測(cè)趨勢(shì)性應(yīng)用用戶(hù)并發(fā)量為pre_conn+1+pre_biasn+1,pre_conn+2+pre_biasn+2,…,pre_conm+pre_biasm。
步驟6、進(jìn)行周期性并發(fā)量預(yù)測(cè),如圖5所示,具體方法如下:
步驟6.1、初始化粒子群的最大粒子數(shù)、最大迭代次數(shù)以及粒子的位置和速度,本實(shí)施例中,每個(gè)粒子都包含2個(gè)元素,即支持向量機(jī)的懲罰因子C和核參數(shù)γ,一般情況下懲罰因子C的取值范圍為[10-5,105],γ的取值范圍為[0,10],由于這兩個(gè)參數(shù)的合適范圍不是預(yù)知的,所以查找先從這兩個(gè)寬泛的范圍開(kāi)始,并在查找過(guò)程中逐漸縮小查找范圍,一方面能減少計(jì)算量,另一方面能保證全局最優(yōu)解的覆蓋廣度以及局部最優(yōu)解的精確度;
步驟6.2、采用5折交叉驗(yàn)證法訓(xùn)練支持向量機(jī)模型,將并發(fā)量歷史時(shí)間序列分為5個(gè)數(shù)據(jù)包,其中4個(gè)數(shù)據(jù)包用于訓(xùn)練,1個(gè)數(shù)據(jù)包用于測(cè)試訓(xùn)練結(jié)果;
支持向量機(jī)模型是一種基于統(tǒng)計(jì)學(xué)理論的監(jiān)督學(xué)習(xí)模型,支持向量機(jī)的核心思想是將輸入空間Rn非線(xiàn)性的映射到一個(gè)高維空間D上,從而將低維特征空間的非線(xiàn)性回歸問(wèn)題轉(zhuǎn)化為高維特征空間的現(xiàn)行回歸問(wèn)題,假設(shè)給定的訓(xùn)練數(shù)據(jù)集為其中xi∈Rn,di∈D,N為數(shù)據(jù)個(gè)數(shù),則支持向量機(jī)的回歸函數(shù)f(xi)可表示為:
其中,w是權(quán)重向量,標(biāo)識(shí)從輸入空間Rn映射到目標(biāo)空間D的非線(xiàn)性函數(shù),<,>是內(nèi)積符號(hào),b為偏差。權(quán)重向量w與偏差b需要從給定數(shù)據(jù)中訓(xùn)練得出。為了訓(xùn)練w與b,可將問(wèn)題轉(zhuǎn)換為一個(gè)二次規(guī)劃問(wèn)題:
其中,C為懲罰因子,為一個(gè)正常數(shù),其作用為權(quán)衡模型的復(fù)雜性和誤差的關(guān)系;ξi與為引入的松弛變量,可以減小誤差,可以擴(kuò)大輸入空間到高維特征空間的距離,以此來(lái)提高泛化能力;ε為ε不敏感損失函數(shù),這個(gè)函數(shù)決定著它可以使其忽略實(shí)際值在某個(gè)范圍內(nèi)的誤差,確保全局最小值的存在。
為了將輸入空間映射到高維特征空間,需要引入一個(gè)核函數(shù)k(xi,xj):
支持向量機(jī)的核函數(shù)需要滿(mǎn)足Mercer定理,此函數(shù)完成了對(duì)輸入樣本xi從低維特征空間向高維特征空間的非線(xiàn)性映射,xj為輸入樣本xi在高維特種空間的表達(dá)。這樣就可以將輸入樣本與輸出變量的關(guān)系在高維特征空間中表示為一個(gè)線(xiàn)性映射。也正是由于核函數(shù)的作用,支持向量機(jī)能夠適用于非線(xiàn)性關(guān)系的學(xué)習(xí)問(wèn)題。根據(jù)對(duì)偶原則,支持向量機(jī)的對(duì)偶問(wèn)題可以被表達(dá)為:
其中,αi與兩個(gè)對(duì)偶的拉格朗日乘數(shù),則最終的最優(yōu)化回歸函數(shù)可表示為:
步驟6.3、利用預(yù)測(cè)準(zhǔn)確率fCP作為適應(yīng)度評(píng)價(jià)標(biāo)準(zhǔn)評(píng)價(jià)粒子適應(yīng)度,預(yù)測(cè)準(zhǔn)確率fCP為:
其中,為并發(fā)量預(yù)測(cè)值,和分別為指定的并發(fā)量歷史數(shù)據(jù)coni可接受的準(zhǔn)確區(qū)間的上界和下界,coni為并發(fā)量歷史值,PL為預(yù)測(cè)的容錯(cuò)度,本實(shí)施例中容錯(cuò)度取5%;
粒子群中的每一個(gè)粒子需要被此標(biāo)準(zhǔn)重復(fù)的評(píng)價(jià),因此可以從迭代過(guò)程中得出粒子的適應(yīng)度向量,即由粒子在迭代過(guò)程中的最優(yōu)解組成的向量;
步驟6.4、更新局部最優(yōu)解與全局最優(yōu)解,并將結(jié)果記錄在局部最優(yōu)解向量pi與全局最優(yōu)解向量pg中;
在粒子群每次迭代過(guò)程中,每個(gè)粒子都會(huì)得到一個(gè)適應(yīng)度數(shù)值,將此數(shù)值與該粒子的最優(yōu)解相比較,如果適應(yīng)度優(yōu)于粒子的最優(yōu)解,則更新此粒子的最優(yōu)解為粒子的當(dāng)前狀態(tài),此最優(yōu)解為則為粒子的局部最優(yōu)解;再將此局部最優(yōu)解與全局最優(yōu)解相比較,如果適應(yīng)度優(yōu)于全局最優(yōu)解則更新全局最優(yōu)解為當(dāng)前粒子狀態(tài)。全局最優(yōu)解是所有粒子中適應(yīng)度最優(yōu)的解向量。通過(guò)迭代評(píng)價(jià),可以得到目前為止粒子的局部最優(yōu)解與粒子群的全局最優(yōu)解,這兩個(gè)值將被更新到局部最優(yōu)解向量pi與全局最優(yōu)解向量pg中記錄下來(lái);
步驟6.5、判斷更新迭代是否達(dá)到終止條件,迭代的終止條件為最大迭代次數(shù),如果最大迭代次數(shù)尚未達(dá)到,則更新粒子的位置和速度后,返回步驟6.4,進(jìn)入下一個(gè)迭代循環(huán),繼續(xù)查找支持向量機(jī)參數(shù)的最優(yōu)解;如果達(dá)到最大迭代次數(shù),則迭代終止,粒子群優(yōu)化結(jié)束,得到支持向量機(jī)的懲罰因子C與核參數(shù)γ的最優(yōu)解,執(zhí)行步驟6.6;本實(shí)施例中,最大迭代次數(shù)為100次;
步驟6.6、進(jìn)行支持向量機(jī)預(yù)測(cè),利用從粒子群優(yōu)化算法中得到的懲罰因子C與核參數(shù)γ的最優(yōu)解作用于支持向量機(jī),并利用并發(fā)量歷史數(shù)據(jù)時(shí)間序列訓(xùn)練支持向量機(jī)模型(原理見(jiàn)步驟6.2),然后利用訓(xùn)練結(jié)果及輸入的預(yù)測(cè)時(shí)間序列標(biāo)識(shí),通過(guò)重建訓(xùn)練預(yù)測(cè)出并發(fā)量數(shù)據(jù);所述預(yù)測(cè)時(shí)間序列的時(shí)間標(biāo)識(shí)是由所要預(yù)測(cè)的并發(fā)量對(duì)應(yīng)的時(shí)間點(diǎn)組成,即{tn+1,tn+2,…,tn+l},1為預(yù)測(cè)序列的長(zhǎng)度,起始時(shí)間點(diǎn)為用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列最后一個(gè)時(shí)間點(diǎn)的下一時(shí)間點(diǎn),各時(shí)間點(diǎn)的時(shí)間間隔與用戶(hù)并發(fā)量歷史數(shù)據(jù)時(shí)間序列的時(shí)間間隔相同。
本實(shí)施例提供的一種云環(huán)境下非平穩(wěn)型應(yīng)用用戶(hù)并發(fā)量的預(yù)測(cè)系統(tǒng)及方法,針對(duì)云環(huán)境下非平穩(wěn)型業(yè)務(wù)的趨勢(shì)性與周期性應(yīng)用用戶(hù)并發(fā)量的特點(diǎn),利用不同的預(yù)測(cè)方法構(gòu)造了預(yù)測(cè)模型,對(duì)含有兩種性質(zhì)的并發(fā)量進(jìn)行預(yù)測(cè),提高了非平穩(wěn)型業(yè)務(wù)并發(fā)量預(yù)測(cè)的準(zhǔn)確性;并發(fā)量序列趨勢(shì)性判定方法,本方法通過(guò)自相關(guān)系數(shù)與T分布結(jié)合分析,可以自動(dòng)的識(shí)別趨勢(shì)性并分發(fā)量序列的特征;并發(fā)量序列周期性判定方法,本方法通過(guò)周期圖法計(jì)算出的功率譜序列與3σ準(zhǔn)則結(jié)合分析,可以自動(dòng)的識(shí)別周期性并發(fā)量的特征,并可以自動(dòng)的計(jì)算出序列的周期數(shù),解決了人工干預(yù)計(jì)算周期的問(wèn)題;趨勢(shì)性并發(fā)量序列預(yù)測(cè)方法,采用線(xiàn)性回歸的方法對(duì)趨勢(shì)型應(yīng)用并發(fā)量序列進(jìn)行擬合,并與ARMA算法結(jié)合,使擬合序列與殘差擬合序列共同構(gòu)造出預(yù)測(cè)序列,這種方法對(duì)具有趨勢(shì)性的序列具有優(yōu)秀的預(yù)測(cè)效果,且無(wú)需人工干預(yù),自行完成預(yù)測(cè)過(guò)程;周期性并發(fā)量序列預(yù)測(cè)方法,利用粒子群優(yōu)化的支持向量機(jī)對(duì)已知周期的并發(fā)量序列進(jìn)行預(yù)測(cè),能夠精準(zhǔn)的識(shí)別周期特征,尤其是對(duì)有趨勢(shì)變化的周期性序列較其他預(yù)測(cè)方法有較好的預(yù)測(cè)效果,且無(wú)需人工干預(yù),自行完成預(yù)測(cè)過(guò)程。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明權(quán)利要求所限定的范圍。