LBFGS
1 LBFGS是解決非線性優(yōu)化問題的方法,應(yīng)用到我們的工程中,就是在于αβγ取何值苍凛,與實(shí)際預(yù)測誤差最小。
2 在python程序的應(yīng)用中兵志,用到了MSE(均方差)的方法判定參數(shù)的標(biāo)準(zhǔn)醇蝴,方差越小,估計(jì)值越好想罕。
3 在試用python程序時(shí)悠栓,參數(shù)含義,x[]表示提供的數(shù)據(jù)按价,m表示周期(幾個(gè)點(diǎn)數(shù)為一個(gè)周期)惭适,fc要預(yù)測的未來的點(diǎn)數(shù)。
4 考慮到未來使用時(shí)可能會消除異常點(diǎn)俘枫,這就會有一個(gè)問題腥沽,現(xiàn)在的周期數(shù)為表示的點(diǎn)數(shù),即去除異常點(diǎn)后鸠蚪,會影響周期性今阳,所以異常點(diǎn)必須要被替代师溅。我的想法是找周邊兩點(diǎn),先判斷周邊兩點(diǎn)不是異常值盾舌,那么取平均值替代異常點(diǎn)墓臭。
三次平滑預(yù)測(Holt-Winters)
1 三次平滑針對有趨勢和季節(jié)性的預(yù)測:αβγ分別有其對應(yīng)的意義。α對應(yīng)周期內(nèi)各個(gè)數(shù)據(jù)的權(quán)重妖谴,α越接近0窿锉,平滑后的值越接近前i個(gè)數(shù)據(jù)的平滑值;β對應(yīng)數(shù)據(jù)的趨勢性膝舅;γ對應(yīng)數(shù)據(jù)的周期性嗡载。
2 在找到αβγ后,數(shù)據(jù)的迭代方式為仍稀,明確αβγ后經(jīng)過迭代求出預(yù)測值洼滚。
* St[i] = alpha * y[i] / It[i - period] + (1.0 - alpha) *
(St[i - 1] + Bt[i - 1])
?
* Bt[i] = gamma * (St[i] - St[i - 1]) + (1 - gamma) *
Bt[i - 1]
?
* It[i] = beta * y[i] / St[i] + (1.0 - beta) * It[i -
period]
?
* Ft[i + m] = (St[i] + (m * Bt[i])) * It[i - period + m]
3 相應(yīng)的在java程序中相應(yīng)的初始值,其中y[0]的初始值技潘,java程序給了兩種選定方式遥巴,一種是完整周期點(diǎn)書的平均值,一種是y[0]享幽,初始值的選項(xiàng)只對預(yù)測的開始階段有作用铲掐,經(jīng)過迭代后預(yù)測效果差異不明顯。
4?????? 采樣數(shù)據(jù)
???????? 1)testjson.json為一周的實(shí)際數(shù)據(jù)值桩,getJson類采樣的json文件的程序摆霉。共11252個(gè)點(diǎn),將近一周采樣數(shù)值颠毙,我取點(diǎn)放入data.txt文件中斯入。
???????? 2)test2得到采用數(shù)據(jù)data.txt后,進(jìn)行Holt-Winters數(shù)據(jù)預(yù)測蛀蜜。alpha、beta增蹭、gamma為python數(shù)據(jù)取得的參數(shù)滴某。period為一個(gè)周期點(diǎn),因?yàn)榧僭O(shè)為每天一個(gè)周期滋迈,每分鐘采點(diǎn)一次霎奢,所以period取60*24=1440。m為預(yù)測未來點(diǎn)數(shù)饼灿,我采用1440幕侠。(此處m我需要繼續(xù)研究,因?yàn)槌绦蛑杏玫絤迭代取1440即周期數(shù)預(yù)測是相對準(zhǔn)確的碍彭。)
???????? 3)如圖晤硕,Holt-Winters預(yù)測有范圍悼潭,當(dāng)我預(yù)測未來的點(diǎn)數(shù)過多(預(yù)測超過一個(gè)周期),會出現(xiàn)“斷崖式”的下跌舞箍。我分析原因舰褪,是因?yàn)槌绦虻念A(yù)測是建立在上一個(gè)周期的樣本點(diǎn)的基礎(chǔ)上,當(dāng)預(yù)測到第二個(gè)周期時(shí)疏橄,第一個(gè)周期的實(shí)際值已經(jīng)不存在了占拍,就無法預(yù)測。另外捎迫,圖三per為誤差百分比圖晃酒。
?消去異常點(diǎn)算法(IsolationForest)
1)IsolationForest算法的思想就是不斷對數(shù)據(jù)進(jìn)行隨機(jī)切割,異常點(diǎn)有較大的概率在早期被切割出去窄绒。
2)查閱pyhon有相應(yīng)的庫可用掖疮,java在git上也有相應(yīng)代碼。
3)根據(jù)Holt-Winters算法預(yù)測效果颗祝,判斷暫時(shí)還不需要使用IsolationForest排除異常點(diǎn)浊闪,故不細(xì)述。
???????????????? 以上