发布时间:2024-08-28 15:01
本文涉及到的是中国大学慕课《人工智能实践:Tensorflow笔记》第六讲第14节的内容,实现GRU型循环神经网络输入60天的价格预测第61天的价格。
RNN这部分的基础知识还是比较复杂的,特别是计算过程,需要深入理解才能掌握数据处理和网络搭建能力。
门控循环单元(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