拓端tecdat|用R語言中的神經網絡預測時間序列:多層感知器和極限學習機


原文鏈接:http://tecdat.cn/?p=16392


 

對於此示例,我將對R中的時間序列進行建模。我將最后24個觀察值保留為測試集,並將使用其余的觀察值來擬合神經網絡。當前有兩種類型的神經網絡可用,多層感知器;和極限學習機。

  1.  
     
  2.  
    # 擬合 多層感知器
  3.  
    mlp.fit <- mlp(y.in)
  4.  
    plot(mlp.fit)
  5.  
    print(mlp.fit)

這是使MLP網絡適合時間序列的基本命令。這將嘗試自動指定自回歸輸入和時間序列的必要預處理。利用預先指定的參數,它訓練了20個用於生成整體預測的網絡和一個具有5個節點的隱藏層。print是輸出擬合網絡的摘要:

  1.  
    MLP fit with 5 hidden nodes and 20 repetitions.
  2.  
    Series modelled in differences: D1.
  3.  
    Univariate lags: (1,3,4,6,7,8,9,10,12)
  4.  
    Deterministic seasonal dummies included.
  5.  
    Forecast combined using the median operator.
  6.  
    MSE: 6.2011.

該函數選擇了自回歸滯后,並將虛擬變量用於季節性趨勢。使用plot顯示網絡的體系結構(圖1)。

 

圖1.輸出 plot(mlp.fit).

淺紅色輸入代表用於編碼季節性的二進制虛擬變量,而灰色輸入則是自回歸滯后項。要生成預測,您可以輸入:

 forecast(mlp.fit,h=tst.n)
 

圖2顯示了整體預測,以及各個神經網絡的預測。

圖2. plotMLP預測的輸出。

您還可以選擇隱藏節點的數量。

  1.  
    # 自動擬合 MLP
  2.  
    hd.auto.type="valid"

這將評估1到10個隱藏節點,並選擇驗證集MSE上的最佳節點。也可以使用交叉驗證。輸出誤差:

  1.  
    MSE
  2.  
    H.1 0.0083
  3.  
    H.2 0.0066
  4.  
    H.3 0.0065
  5.  
    H.4 0.0066
  6.  
    H.5 0.0071
  7.  
    H.6 0.0074
  8.  
    H.7 0.0061
  9.  
    H.8 0.0076
  10.  
    H.9 0.0083
  11.  
    H.10 0.0076

ELM幾乎以相同的方式工作。

  1.  
    # Fit ELM
  2.  
    elm.fit <- elm(y.in)
  3.  
    print(elm.fit)
  4.  
    plot(elm.fit)

以下是模型摘要:

  1.  
    ELM fit with 100 hidden nodes and 20 repetitions.
  2.  
    Series modelled in differences: D1.
  3.  
    Univariate lags: (1,3,4,6,7,8,9,10,12)
  4.  
    Deterministic seasonal dummies included.
  5.  
    Forecast combined using the median operator.
  6.  
    Output weight estimation using: lasso.
  7.  
    MSE: 83.0044.

在圖3的網絡體系結構中只有用黑線連接到輸出層的節點才有助於預測。其余的連接權重已縮小為零。

圖3. ELM網絡架構。

該程序包在R中實現了層次時間預測。可以通過以下方式進行操作:

  1.  
     
  2.  
    forecastfunction=mlp.thief

因為對於這個簡單的示例,我保留了一些測試集,所以我將預測與指數平滑進行比較:

 

METHOD MAE
MLP (5 nodes) 62.471
MLP (auto) 48.234
ELM 48.253
THieF-MLP 45.906
ETS 64.528

MAPA這樣的時間層次結構使您的預測更可靠,更准確。但是,使用神經網絡會明顯增加計算成本!


最受歡迎的見解

1.用於NLP的Python:使用Keras的多標簽文本LSTM神經網絡分類

2.Python中利用長短期記憶模型LSTM進行時間序列預測分析 – 預測電力消耗數據

3.python在Keras中使用LSTM解決序列問題

4.Python中用PyTorch機器學習分類預測銀行客戶流失模型

5.R語言多元Copula GARCH 模型時間序列預測

6.在r語言中使用GAM(廣義相加模型)進行電力負荷時間序列分析

7.R語言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用於預測時間序列數

8.R語言估計時變VAR模型時間序列的實證研究分析案例

9.用廣義加性模型GAM進行時間序列分析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM