原文链接:http://tecdat.cn/?p=23902
递归神经网络被用来剖析序列数据。它在暗藏单元之间建设递归连贯,并在学习序列后预测输入。
在本教程中,咱们将简要地学习如何用R中的Keras RNN模型来拟合和预测多输入的序列数据,你也能够对工夫序列数据利用同样的办法。咱们将应用Keras R接口在R中实现神经网络:
- 筹备数据
- 定义模型
- 预测和可视化后果
咱们将从加载R的必要包开始。
library(keras)
筹备数据
首先,咱们将为本教程创立一个多输入数据集。它是随机产生的数据,上面有一些规定。在这个数据集中有三个输出变量和两个输入变量。咱们将绘制生成的数据,以直观地查看它。
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")
接下来,咱们将把数据分成训练和测试两局部。最初的50个元素将是测试数据。
train = df\[1:(n-tsize), \]test = df\[(n-tsize+1):n, \]
咱们将创立x输出和y输入数据来训练模型,并将它们转换成矩阵类型。
xtrain = as.matrix(data.frame(train$x1, train$x2, train$x3))ytrain = as.matrix(data.frame(train$y1, train$y2))
接下来,咱们将通过给定的步长值对输出和输入值进行切分来筹备数据。在这个例子中,步长值是2,咱们将把x的第一和第二行以及y的第二行作为一个标签值。下一个元素成为x的第二和第三行以及y的第三行,这个序列始终继续到完结。下表解释了如何创立x和y数据的序列。
如果步长值为3,咱们将取3行x数据,第三行y数据成为输入。
dim(trains$x)\[1\] 798 3 2dim(trains$y)\[1\] 798 2
定义模型
咱们将通过增加简略的RNN层、用于输入的Dense层和带有MSE损失函数的Adam优化器来定义序列模型。咱们将在模型的第一层设置输出维度,在最初一层设置输入维度。
model %>% summary()
咱们将用训练数据来拟合这个模型。
fit(trains$x, trains$y)
并查看训练的准确性。
evaluate(trains$x, trains$y, verbose = 0)print(scores)
预测和可视化的后果
最初,咱们将预测测试数据,用RMSE指标查看y1和y2的准确性。
cat("y1 RMSE:", RMSE(tests$y\[, 1\], ypred\[, 1\]))
``````cat("y2 RMSE:", RMSE(tests$y\[, 2\], ypred\[, 2\]))
咱们能够在图中直观地查看后果。``````plot(x_axes, tests$y\[, 1\], ylim = c(min(tests$y), max(tests$y))type = "l", lwd = 2,
在本教程中,咱们曾经简略理解了如何用R中的Keras rnn模型来拟合和预测多输入的程序数据。
最受欢迎的见解
1.r语言用神经网络改良nelson-siegel模型拟合收益率曲线剖析
2.r语言实现拟合神经网络预测和后果可视化
3.python用遗传算法-神经网络-含糊逻辑控制算法对乐透剖析
4.用于nlp的python:应用keras的多标签文本lstm神经网络分类
5.用r语言实现神经网络预测股票实例
6.R语言基于Keras的小数据集深度学习图像分类
7.用于NLP的seq2seq模型实例用Keras实现神经机器翻译
8.python中基于网格搜索算法优化的深度学习模型剖析糖
9.matlab应用贝叶斯优化的深度学习