使用GRU(Gated Recurrent Unit)模型来预测股票未来20天的行情

简介: 使用GRU(Gated Recurrent Unit)模型来预测股票未来20天的行情,使用了200天的历史行情作为输入数据。请注意,这只是一个简单的示例,您可以根据需要进行更多的模型调整和数据处理。

以下是一个示例TensorFlow代码,用于使用GRU(Gated Recurrent Unit)模型来预测股票未来20天的行情,使用了200天的历史行情作为输入数据。请注意,这只是一个简单的示例,您可以根据需要进行更多的模型调整和数据处理。

首先,确保您已经安装了TensorFlow和其他必要的库。然后,可以按照以下步骤创建和训练模型:

import numpy as np
import pandas as pd
import tensorflow as tf
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt

# 1. 准备数据
# 请将您的历史股票数据加载到一个Pandas DataFrame中,确保有一个"Close"列,表示收盘价。

# 示例数据加载:
# df = pd.read_csv('stock_data.csv')
# stock_prices = df['Close'].values.astype(float)

# 2. 数据预处理
scaler = MinMaxScaler()
stock_prices_scaled = scaler.fit_transform(stock_prices.reshape(-1, 1))

# 创建数据集,用于200天历史行情预测未来20天
X, y = [], []
for i in range(200, len(stock_prices_scaled) - 20):
    X.append(stock_prices_scaled[i - 200:i])
    y.append(stock_prices_scaled[i:i + 20])

X = np.array(X)
y = np.array(y)

# 划分训练集和测试集
train_size = int(0.8 * len(X))
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]

# 3. 创建并训练GRU模型
model = tf.keras.Sequential([
    tf.keras.layers.GRU(50, activation='relu', input_shape=(X_train.shape[1], 1)),
    tf.keras.layers.Dense(20)  # 输出20天的预测
])

model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(X_train, y_train, epochs=50, batch_size=64)

# 4. 预测未来20天的股价
predicted_stock_prices = model.predict(X_test)

# 5. 反归一化,将预测的股价还原到原始范围
predicted_stock_prices = scaler.inverse_transform(predicted_stock_prices)
y_test = scaler.inverse_transform(y_test)

# 6. 评估模型
mse = mean_squared_error(y_test, predicted_stock_prices)
print("均方误差 (MSE):", mse)

# 7. 可视化结果
plt.figure(figsize=(12, 6))
plt.plot(y_test[-1], label='实际股价')
plt.plot(predicted_stock_prices[-1], label='预测股价')
plt.legend()
plt.title('股价预测')
plt.xlabel('时间步')
plt.ylabel('股价')
plt.show()

请注意,这只是一个简单的示例,用于演示如何使用GRU模型进行股价预测。您可能需要进行更多的模型调整和参数优化,以获得更好的预测性能。此外,股价预测是一个复杂的问题,还需要考虑其他因素和特征工程来提高模型的准确性。

相关文章
|
8月前
|
机器学习/深度学习 算法 Python
Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数时间序列预测
Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数时间序列预测
118 12
|
8月前
|
机器学习/深度学习 监控 数据可视化
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例2
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
8月前
|
机器学习/深度学习 数据可视化 TensorFlow
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码1
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
|
8月前
|
机器学习/深度学习 数据采集 数据可视化
SARIMA,神经网络,RNN-LSTM,SARIMA和RNN组合方法预测COVID-19每日新增病例
SARIMA,神经网络,RNN-LSTM,SARIMA和RNN组合方法预测COVID-19每日新增病例
|
8月前
|
机器学习/深度学习 数据可视化 算法
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例1
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
8月前
|
机器学习/深度学习 存储 数据可视化
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码2
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
|
8月前
|
机器学习/深度学习 算法 TensorFlow
RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测
RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测
|
8月前
|
机器学习/深度学习 传感器 自然语言处理
R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感
R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感
|
8月前
|
机器学习/深度学习 存储 算法
python实现基于长短期记忆网络LSTM模型预测茅台股票价格趋势
python实现基于长短期记忆网络LSTM模型预测茅台股票价格趋势
131 0
|
机器学习/深度学习 PyTorch 算法框架/工具
股票预测-基金预测 pytorch搭建LSTM网络 黄金价格预测实战
股票预测-基金预测 pytorch搭建LSTM网络 黄金价格预测实战
248 0
股票预测-基金预测 pytorch搭建LSTM网络 黄金价格预测实战