国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分享三種時間序列多步預(yù)測的方法

這篇具有很好參考價值的文章主要介紹了分享三種時間序列多步預(yù)測的方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

機器學(xué)習(xí)和深度學(xué)習(xí)已越來越多應(yīng)用在時序預(yù)測中。ARIMA 或指數(shù)平滑等經(jīng)典預(yù)測方法正在被 XGBoost、高斯過程或深度學(xué)習(xí)等機器學(xué)習(xí)回歸算法所取代。

盡管時序模型越來越復(fù)雜,但人們對時序模型的性能表示懷疑。有研究表明,復(fù)雜的時序模型并不一定會比時序分解模型有效(Makridakis, 2018)。

技術(shù)提升

技術(shù)要學(xué)會分享、交流,不建議閉門造車。

好的文章離不開粉絲的分享、推薦,資料干貨、資料分享、數(shù)據(jù)、技術(shù)交流提升,均可加交流群獲取,群友已超過2000人,添加時最好的備注方式為:來源+興趣方向,方便找到志同道合的朋友。

方式①、添加微信號:dkl88191,備注:來自CSDN
方式②、微信搜索公眾號:Python學(xué)習(xí)與數(shù)據(jù)挖掘,后臺回復(fù):加群

為什么時序預(yù)測很難?

時間序列是按時間排序的值,但時序預(yù)測具有很大的挑戰(zhàn)性。從模型難度和精度角度考慮,時序模型的比常規(guī)的回歸和分類任務(wù)更難。

原因1:序列是非平穩(wěn)的

平穩(wěn)性是時間序列的核心概念,如果時間序列的趨勢(例如平均水平)不隨時間變化,則該時間序列是平穩(wěn)的。許多現(xiàn)有方法都假設(shè)時間序列是平穩(wěn)的,但是趨勢或季節(jié)性會打破平穩(wěn)性。

原因2:依賴外部數(shù)據(jù)

除了時間因素之外,時間序列通常還有額外的依賴性。時空數(shù)據(jù)是一個常見的例子,每個觀察值都在兩個維度上相關(guān),因此數(shù)據(jù)具有自身的滯后(時間依賴性)和附近位置的滯后(空間依賴性)。

原因3:噪音和缺失值

現(xiàn)實世界受到噪音和缺失值的困擾,設(shè)備故障可能會產(chǎn)生噪音和缺失值。傳感器故障導(dǎo)致數(shù)據(jù)丟失,或者存在干擾,都會帶來數(shù)據(jù)噪音。

原因4:樣本量有限

時間序列往往都只包含少量的觀察值,可能沒有足夠的數(shù)據(jù)來構(gòu)建足夠的模型。數(shù)據(jù)采集的頻率影響了樣本量,同時也會遇到數(shù)據(jù)冷啟動問題。

樣本量與模型精度

時序模型往往無法進(jìn)行完美預(yù)測,這可能和時序數(shù)據(jù)的樣本量相關(guān)。在使用較大的訓(xùn)練集時,具有大模型往往比參數(shù)較少的模型表現(xiàn)更好。在時序序列長度小于1000時,深度模型往往并不會比時序分類模型更好。

下面對比了模型精度與樣本個數(shù)的關(guān)系,這里嘗試了五種經(jīng)典方法(ARIMA、ETS、TBATS、Theta 和 Naive)和五種機器學(xué)習(xí)方法(高斯過程、M5、LASSO、隨機森林和 MARS)。預(yù)測任務(wù)是來預(yù)測時間序列的下一個值。

結(jié)果如下圖所示,軸表示訓(xùn)練樣本大小,即用于擬合預(yù)測模型的數(shù)據(jù)量。軸表示所有時間序列中每個模型的平均誤差,使用交叉驗證計算得出。

多步預(yù)測,機器學(xué)習(xí),人工智能,python

當(dāng)只有少數(shù)觀測值可用時,基礎(chǔ)方法表現(xiàn)出更好的性能。然而,隨著樣本量的增加,機器學(xué)習(xí)方法優(yōu)于經(jīng)典方法。

進(jìn)一步可以得出以下結(jié)論:

  • 機器學(xué)習(xí)方法擁有很強的預(yù)測能力,前提是它們具有足夠大的訓(xùn)練數(shù)據(jù)集;

  • 當(dāng)只有少量觀測值可用時,推薦首選 ARIMA 或指數(shù)平滑等經(jīng)典方法;

  • 可以將指數(shù)平滑等經(jīng)典方法與機器學(xué)習(xí)相結(jié)合可以提高預(yù)測準(zhǔn)確性。

時序多步預(yù)測

大多數(shù)預(yù)測問題都被定義為單步預(yù)測,根據(jù)最近發(fā)生的事件預(yù)測系列的下一個值。時間序列多步預(yù)測需要預(yù)測未來多個值, 提前預(yù)測許多步驟具有重要的實際優(yōu)勢,多步預(yù)測減少了長期的不確定性。 但模型試圖預(yù)測更遠(yuǎn)的未來時,模型的誤差也會逐漸增加。

方法1:遞歸預(yù)測

多步預(yù)測最簡單的方法是遞歸形式,訓(xùn)練單個模型進(jìn)行單步預(yù)測,然后將模型與其先前的預(yù)測結(jié)果作為輸入得到后續(xù)的輸出。

from sklearn.linear_model import LinearRegression  
# using a linear regression for simplicity. any regression will do.  
recursive = LinearRegression()  
# training it to predict the next value of the series (t+1)  
recursive.fit(X_tr, Y_tr['t+1'])  
# setting up the prediction data structure  
predictions = pd.DataFrame(np.zeros(Y_ts.shape), columns=Y_ts.columns)  
  
# making predictions for t+1  
yh = recursive.predict(X_ts)  
predictions['t+1'] = yh  
  
# iterating the model with its own predictions for multi-step forecasting  
X_ts_aux = X_ts.copy()  
for i in range(2, Y_tr.shape[1] + 1):  
    X_ts_aux.iloc[:, :-1] = X_ts_aux.iloc[:, 1:].values  
    X_ts_aux['t-0'] = yh  
  
    yh = recursive.predict(X_ts_aux)  
  
    predictions[f't+{i}'] = yh  

上述代碼邏輯在sktime中也可以找到相應(yīng)的實現(xiàn):https://www.sktime.org/en/stable/api_reference/auto_generated/sktime.forecasting.compose.RecursiveTimeSeriesRegressionForecaster.html

遞歸方法只需要一個模型即可完成整個預(yù)測范圍,且無需事先確定預(yù)測范圍。

但此種方法用自己的預(yù)測作為輸入,這導(dǎo)致誤差逐漸累計,對長期預(yù)測的預(yù)測性能較差。

方法2:多目標(biāo)回歸

多目標(biāo)回歸為每一個預(yù)測結(jié)果構(gòu)建一個模型,如下是一個使用案例:

from sklearn.multioutput import MultiOutputRegressor  
  
direct = MultiOutputRegressor(LinearRegression())  
direct.fit(X_tr, Y_tr)  
direct.predict(X_ts)  

scikit-learn的MultiOutputRegressor為每個目標(biāo)變量復(fù)制了一個學(xué)習(xí)算法。在這種情況下,預(yù)測方法是LinearRegression。

此種方法避免了遞歸方式中錯誤傳播,但多目標(biāo)預(yù)測需要更多的計算資源。此外多目標(biāo)預(yù)測假設(shè)每個點是獨立的,這是違背了時序數(shù)據(jù)的特點。

方法3:遞歸多目標(biāo)回歸

遞歸多目標(biāo)回歸結(jié)合了多目標(biāo)和遞歸的思想。為每個點建立一個模型。但是在每一步的輸入數(shù)據(jù)都會隨著前一個模型的預(yù)測而增加。

from sklearn.multioutput import RegressorChain  
  
dirrec = RegressorChain(LinearRegression())  
dirrec.fit(X_tr, Y_tr)  
dirrec.predict(X_ts)  

這種方法在機器學(xué)習(xí)文獻(xiàn)中被稱為chaining。scikit-learn 通過 RegressorChain 類為其提供了一個實現(xiàn)。

參考文獻(xiàn)

Makridakis, Spyros, Evangelos Spiliotis, and Vassilios Assimakopoulos. “Statistical and Machine Learning forecasting methods: Concerns and ways forward.” PloS one 13.3 (2018): e0194889.文章來源地址http://www.zghlxwxcb.cn/news/detail-607608.html

到了這里,關(guān)于分享三種時間序列多步預(yù)測的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包