DL with python(22)——tensorflow实现GRU股票预测

本文涉及到的是中国大学慕课《人工智能实践:Tensorflow笔记》第六讲第14节的内容,实现GRU型循环神经网络输入60天的价格预测第61天的价格。

RNN这部分的基础知识还是比较复杂的,特别是计算过程,需要深入理解才能掌握数据处理和网络搭建能力。

GRU

门控循环单元(Gated Recurrent Unit,GRU)由 Cho 等人于 2014 年提出,是 LSTM 的一种变体,将 LSTM 中遗忘门与输入门合二为一为更新门,模型比 LSTM 模型更简单。

Kyunghyun Cho,Bart van Merrienboer,Caglar Gulcehre,Dzmitry Bahdanau,Fethi Bougares,Holger Schwenk,Yoshua Bengio.Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation.Computer ence, 2014.

代码实现

DL with python(20)——tensorflow实现RNN股票预测中的RNN实现代码相比,只有第一步和第三步两处改动,因此在阅读本文之前请先阅读上述文章。
第一步导入相关模块,第三行增加了GRU层的导入。

## 第一步,导入相关模块
import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import Dropout, Dense, GRU
import matplotlib.pyplot as plt
import os
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error, mean_absolute_error
import math

第三步搭建网络结构用GRU层替换RNN层,构建了GRU网络。

## 第三步,搭建网络结构
model = tf.keras.Sequential([
    GRU(80, return_sequences=True),
    Dropout(0.2),
    GRU(100),
    Dropout(0.2),
    Dense(1)
])

运行结果

运行结果

DL with python(20)——tensorflow实现RNN股票预测中的以上两步代码替换,就可以直接运行GRU进行股票预测,运行结果如下。
loss曲线如下所示:
在这里插入图片描述

绘制的对比图图下所示:
在这里插入图片描述

最后通过三种误差来评价预测结果,误差越小,表示预测越准。

均方误差: 1514.887536
均方根误差: 38.921556
平均绝对误差: 33.726406
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值