分享好友 人工智能首页 频道列表

拓端tecdat|R语言深度学习Keras循环神经网络(RNN)模型预测多输出变量时间序列

循环神经网络  2023-03-08 14:303330

原文链接:http://tecdat.cn/?p=23902

原文出处:拓端数据部落公众号

递归神经网络被用来分析序列数据。它在隐藏单元之间建立递归连接,并在学习序列后预测输出。
在本教程中,我们将简要地学习如何用R中的Keras RNN模型来拟合和预测多输出的序列数据,你也可以对时间序列数据应用同样的方法。我们将使用Keras R接口在R中实现神经网络:
 

  1. 准备数据
  2. 定义模型
  3. 预测和可视化结果

我们将从加载R的必要包开始。 

library(keras)


准备数据

首先,我们将为本教程创建一个多输出数据集。它是随机产生的数据,下面有一些规则。在这个数据集中有三个输入变量和两个输出变量。我们将绘制生成的数据,以直观地检查它。

  1.  
     
  2.  
    plot(s, df$y1, ylim = c(min(df), max(df)), type = "l")
  3.  
    lines(s, df$y2, type = "l")
  4.  
    lines(s, df$x1, type = "l")
  5.  
    lines(s, df$x2, type = "l")
  6.  
    lines(s, df$x3, type = "l")


接下来,我们将把数据分成训练和测试两部分。最后的50个元素将是测试数据。
 

  1.  
    train = df[1:(n-tsize), ]
  2.  
    test = df[(n-tsize+1):n, ]


我们将创建x输入和y输出数据来训练模型,并将它们转换成矩阵类型。
 

  1.  
    xtrain = as.matrix(data.frame(train$x1, train$x2, train$x3))
  2.  
    ytrain = as.matrix(data.frame(train$y1, train$y2))


接下来,我们将通过给定的步长值对输入和输出值进行切分来准备数据。在这个例子中,步长值是2,我们将把x的第一和第二行以及y的第二行作为一个标签值。下一个元素成为x的第二和第三行以及y的第三行,这个序列一直持续到结束。下表解释了如何创建x和y数据的序列。
 


如果步长值为3,我们将取3行x数据,第三行y数据成为输出。
 

  1.  
     
  2.  
     
  3.  
    dim(trains$x)
  4.  
    [1] 798 3 2
  5.  
    dim(trains$y)
  6.  
    [1] 798 2



定义模型


 我们将通过添加简单的RNN层、用于输出的Dense层和带有MSE损失函数的Adam优化器来定义序列模型。我们将在模型的第一层设置输入维度,在最后一层设置输出维度。

  1.  
     
  2.  
    model %>% summary()


我们将用训练数据来拟合这个模型。
 

fit(trains$x, trains$y)


并检查训练的准确性。
 

  1.  
    evaluate(trains$x, trains$y, verbose = 0)
  2.  
    print(scores)



预测和可视化的结果

最后,我们将预测测试数据,用RMSE指标检查y1和y2的准确性。
 

  1.  
     
  2.  
    cat("y1 RMSE:", RMSE(tests$y[, 1], ypred[, 1]))


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

我们可以在图中直观地检查结果。

  1.  
     
  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使用贝叶斯优化的深度学习

查看更多关于【循环神经网络】的文章

展开全文
相关推荐
反对 0
举报 0
图文资讯
热门推荐
优选好物
更多推荐文章
第六讲 循环神经网络--LSTM--stock
1 !pip install tushare2 import tushare as ts3 import numpy as np4 import tensorflow as tf5 from tensorflow.keras.layers import Dropout, Dense, LSTM6 import matplotlib.pyplot as plt7 import os8 import pandas as pd9 from sklearn.preprocessing

0评论2023-02-10436

基于循环神经网络的图像特定文本抽取方法
 作者的模型整体框架包含两部分,分别为OCR 部分 (采用人家的模型, 输出文本)特定文本抽取部分 (作者的工作)1. 引言早期图像特定文本抽取主要是通过 OCR 中的版面分析(Layout analysis)来实现。即首先利用 版面分析 的方法得到图像中特定的文本区域,然后

0评论2023-02-09898

更多推荐