【深度学习】基于LSTM时间序列的股票价格预测

2024-02-23 11:40

本文主要是介绍【深度学习】基于LSTM时间序列的股票价格预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【参考:python深度学习之基于LSTM时间序列的股票价格预测_柳小葱的博客-CSDN博客】

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

导入数据

在这里插入图片描述

data=pd.read_csv("zgpa_train.csv")
df=pd.DataFrame(data,columns=['date','close']) #只取日期和收盘价两列

在这里插入图片描述

数据标准化

在这里插入图片描述

from sklearn.preprocessing import StandardScalerst=StandardScaler()dataset_st=st.fit_transform(X=dataset.reshape(-1,1)) # shape (n_samples, n_features)

在这里插入图片描述

划分训练集和测试集

train_size=int(len(dataset_st)*0.7)
test_size=int(len(dataset_st))-train_size

在这里插入图片描述

train,test=dataset_st[0:train_size],dataset_st[train_size:]

在这里插入图片描述

创建时间序列数据样本

def data_set(dataset,lookback):""":param dataset: ndarray:param lookback: 单个序列的长度:return:"""dataX,dataY=[],[]for i in range(0,len(dataset)-lookback-1):temp=dataset[i: i+lookback ] # 前 lookback步dataX.append(temp)dataY.append(dataset[i+lookback])# 第 lookback步return np.array(dataX),np.array(dataY)
lookback=2
trainX,trainY=data_set(train,lookback)
testX,testY=data_set(test,lookback)

在这里插入图片描述

建立LSTM模型

from keras.models import Sequential
from keras.layers import Dense, LSTM, Dropout, GRU
from tensorflow.keras.optimizers import SGD # 可以忽略警告错误model = Sequential()
# LSTM 第一层
model.add(LSTM(128, return_sequences=True, # 是返回输出序列中的最后一个输出,还是全部序列True。input_shape=(trainX.shape[1], 1))) # (sequence_length, features)
model.add(Dropout(0.2))# LSTM 第二层
model.add(LSTM(128, return_sequences=True))
model.add(Dropout(0.2))# LSTM 第三层
model.add(LSTM(128))
model.add(Dropout(0.2))# Dense层
model.add(Dense(units=1))# 模型编译
model.compile(optimizer='rmsprop', loss='mse')# 模型训练
model.fit(trainX, trainY, epochs=20, batch_size=32)

做出预测

pred_st=model.predict(testX)

在这里插入图片描述

pred=st.inverse_transform(pred_st) # 进行反归一化

在这里插入图片描述

testY2=st.inverse_transform(testY) # 进行反归一化 因为前面进行了归一化
def plot_predictions(test_result, predict_restult):"""test_result: 真实值predict_result: 预测值"""plt.plot(test_result, color='red', label='test')plt.plot(predict_restult, color='blue', label="prdict")plt.xlabel("Time")plt.ylabel("Close Price")plt.legend() # 给图加上图例plt.show()
plot_predictions(testY2,pred) # 画出图像

在这里插入图片描述

这篇关于【深度学习】基于LSTM时间序列的股票价格预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/738512

相关文章

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景