拓端tecdat|R语言深度学习Keras循环神经网络(RNN)模型预测多输出变量时间序列
原文链接: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 2
dim(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使用贝叶斯优化的深度学习
拓端tecdat|R语言深度学习Keras循环神经网络(RNN)模型预测多输出变量时间序列相关推荐
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 水很深的深度学习-Task05循环神经网络RNN
循环神经网络 Recurrent Neural Network 参考资料: Unusual-Deep-Learning 零基础入门深度学习(5) - 循环神经网络 史上最小白之RNN详解_Tink19 ...
- 深度学习~循环神经网络RNN, LSTM
目录 1. 循环神经网络RNN 1.1 RNN出现背景 1.2 RNN概念 2. LSTM 2.1 LSTM出现背景 2.2 LSTM结构 参考 1. 循环神经网络RNN 1.1 RNN出现背景 pr ...
- 深度学习笔记——循环神经网络RNN/LSTM
原文来自知乎专栏NLP进阶之路,作者韦伟. 以下文章是摘录了原文部分内容的学习笔记,侵删. 循环神经网络(Rerrent Neural Network) RNN是神经网络的一种,RNN对具有序列特性的 ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
- 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- 深度学习 3 循环神经网络 RNN Recurrent Neural Networks
RNNs的目的使用来处理序列数据.在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的.但是这种普通的神经网络对于很多问题却无能无力.例如,你要预测句子 ...
- 深度学习之循环神经网络(1)序列表示方法
深度学习之循环神经网络(1)序列表示方法 序列表示方法 Embedding层 2. 预训练的词向量 前面的卷积神经网络利用数据的局部相关性和权值共享的思想大大减少了网络的参数量,非常适合于图片这种具有 ...
- 深度学习之循环神经网络(12)预训练的词向量
深度学习之循环神经网络(12)预训练的词向量 在情感分类任务时,Embedding层是从零开始训练的.实际上,对于文本处理任务来说,领域知识大部分是共享的,因此我们能够利用在其它任务上训练好的词向量 ...
最新文章
- css实现提示信息,单纯使用CSS实现动态提示信息
- 2003和2007PPT解析
- 设计模式(10)-装饰模式详解(易懂)
- 【PAT乙级】1048 数字加密 (20 分)
- [Python]ConfigParser解析配置文件
- 刷新器-Java EE 7后端十大功能
- Python与机器视觉(x) 颜色直方图
- python 异步io_python异步IO编程(一)
- kerberos的系统搭建
- java biginteger 比较大小,Java BigInteger compareTo()用法及代码示例
- 并发编程 CAS算法
- python 探索性分析_python中的探索性文本分析
- Qt系列文章之 Model/View 框架
- 【指导】如何在 excel 数据表中去重重复项计数?
- SpringCloud相关jar maven管理工具不能下载(Finchley.M8)
- Matlab将图像序列合成为视频
- 英语--副词描述变化量大小
- 从唐骏携手金和看协同OA企业的个性及实力
- ios王者荣耀更新服务器维护,王者荣耀苹果更新不了 苹果无法进行版本更新如何解决...
- 「JVM 系列」- JVM的类加载机制