拓端tecdat|R語言深度學習Keras循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)模型預(yù)測多輸出變量時間序列
原文鏈接:http://tecdat.cn/?p=23902
原文出處:拓端數(shù)據(jù)部落公眾號
遞歸神經(jīng)網(wǎng)絡(luò)被用來分析序列數(shù)據(jù)。它在隱藏單元之間建立遞歸連接,并在學習序列后預(yù)測輸出。
在本教程中,我們將簡要地學習如何用R中的Keras RNN模型來擬合和預(yù)測多輸出的序列數(shù)據(jù),你也可以對時間序列數(shù)據(jù)應(yīng)用同樣的方法。我們將使用Keras R接口在R中實現(xiàn)神經(jīng)網(wǎng)絡(luò):
?
準備數(shù)據(jù)
定義模型
預(yù)測和可視化結(jié)果
我們將從加載R的必要包開始。?
library(keras)
準備數(shù)據(jù)
首先,我們將為本教程創(chuàng)建一個多輸出數(shù)據(jù)集。它是隨機產(chǎn)生的數(shù)據(jù),下面有一些規(guī)則。在這個數(shù)據(jù)集中有三個輸入變量和兩個輸出變量。我們將繪制生成的數(shù)據(jù),以直觀地檢查它。

plot(s, df$y1, ylim = c(min(df), max(df)), type = "l")
lines(s, df$y2, type = "l")
lines(s, df$x1, type = "l")
lines(s, df$x2, type = "l")
lines(s, df$x3, type = "l")

接下來,我們將把數(shù)據(jù)分成訓練和測試兩部分。最后的50個元素將是測試數(shù)據(jù)。
?
train = df[1:(n-tsize), ]
test = df[(n-tsize+1):n, ]
我們將創(chuàng)建x輸入和y輸出數(shù)據(jù)來訓練模型,并將它們轉(zhuǎn)換成矩陣類型。
?
xtrain = as.matrix(data.frame(train$x1, train$x2, train$x3))
ytrain = as.matrix(data.frame(train$y1, train$y2))
接下來,我們將通過給定的步長值對輸入和輸出值進行切分來準備數(shù)據(jù)。在這個例子中,步長值是2,我們將把x的第一和第二行以及y的第二行作為一個標簽值。下一個元素成為x的第二和第三行以及y的第三行,這個序列一直持續(xù)到結(jié)束。下表解釋了如何創(chuàng)建x和y數(shù)據(jù)的序列。
?

如果步長值為3,我們將取3行x數(shù)據(jù),第三行y數(shù)據(jù)成為輸出。
?
dim(trains$x)
[1] 798 ? 3 ? 2
dim(trains$y)
[1] 798 ? 2

定義模型
?我們將通過添加簡單的RNN層、用于輸出的Dense層和帶有MSE損失函數(shù)的Adam優(yōu)化器來定義序列模型。我們將在模型的第一層設(shè)置輸入維度,在最后一層設(shè)置輸出維度。
model %>% summary()

我們將用訓練數(shù)據(jù)來擬合這個模型。
?
fit(trains$x, trains$y)
并檢查訓練的準確性。
?
evaluate(trains$x, trains$y, verbose = 0)
print(scores)

預(yù)測和可視化的結(jié)果
最后,我們將預(yù)測測試數(shù)據(jù),用RMSE指標檢查y1和y2的準確性。
?
cat("y1 RMSE:", RMSE(tests$y[, 1], ypred[, 1]))

cat("y2 RMSE:", RMSE(tests$y[, 2], ypred[, 2]))

我們可以在圖中直觀地檢查結(jié)果。
plot(x_axes, tests$y[, 1], ylim = c(min(tests$y), max(tests$y))type = "l", lwd = 2,

???在本教程中,我們已經(jīng)簡單了解了如何用R中的Keras rnn模型來擬合和預(yù)測多輸出的順序數(shù)據(jù)。?
?

最受歡迎的見解
1.r語言用神經(jīng)網(wǎng)絡(luò)改進nelson-siegel模型擬合收益率曲線分析
2.r語言實現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測和結(jié)果可視化
3.python用遺傳算法-神經(jīng)網(wǎng)絡(luò)-模糊邏輯控制算法對樂透分析
4.用于nlp的python:使用keras的多標簽文本lstm神經(jīng)網(wǎng)絡(luò)分類
5.用r語言實現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實例
6.R語言基于Keras的小數(shù)據(jù)集深度學習圖像分類
7.用于NLP的seq2seq模型實例用Keras實現(xiàn)神經(jīng)機器翻譯
8.python中基于網(wǎng)格搜索算法優(yōu)化的深度學習模型分析糖
9.matlab使用貝葉斯優(yōu)化的深度學習