1 简介
博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、编程领域优质创作者,博客之星、各平台优质作者、专注于Java,python等技术领域和毕业项目实战✌
🍅文末获取源码联系🍅
计算机毕业设计之基于tensorflow-lstm的股票爬虫+预测及可视化。
2 设计概要
本章基于深度学习算法来处理时间序列,来预测股票未来的价格。LSTM是一种特殊类型的循环神经网络(RNN),在自然语言处理和时间序列数据分析等任务中取得了显著成果。LSTM通过处理序列数据中的长期依赖关系,能够更好地捕捉时间序列数据的特征和模式。这使得它成为预测股票价格这类时间相关数据的有力工具。关于LSTM 在之前的文章中也略作介绍。
n_past是我们在预测下一个目标值时将在过去查看的步骤数。
这里使用30,意味着将使用过去的30个值(包括目标列在内的所有特性)来预测第31个目标值。
因此,在trainX中我们会有所有的特征值,而在trainY中我们只有目标值。
让我们分解for循环的每一部分
对于训练,dataset = df_for_training_scaled, n_past=30
当i= 30:
data_X.addend (df_for_training_scaled[i - n_past:i, 0:df_for_training.shape[1]])
从n_past开始的范围是30,所以第一次数据范围将是-[30 - 30,30,0:6] 相当于 [0:30,0:6]
因此在dataX列表中,df_for_training_scaled[0:30,0:6]数组将第一次出现。
现在, dataY.append(df_for_training_scaled[i,3])
i = 30,所以它将只取第30行开始的close(因为在预测中,我们只需要close列,所以列范围仅为3,表示close列)。
第一次在dataY列表中存储df_for_training_scaled[30,3]值。
所以包含5列的前30行存储在dataX中,只有close列的第31行存储在dataY中。然后我们将dataX和dataY列表转换为数组,它们以数组格式在LSTM中进行训练。
将数据集拆分为训练集、验证集和测试集。由于这个数据集是时间序列,以2023年前的数据作为训练集,之后数据为验证集。
3 系统关键技术
具体请直接咨询,以回复为准,使用Java,python,springboot,vue,mysql, mybaties, typescript, html ,css, js 等进行开发
4 开发工具
开发工具主要有:idea、jdk1.8、maven、mysql5.7、Navicat等。
5 代码展示
def createXY(dataset,n_past):
j=0
dataX = []
dataY = []
for i in range(n_past, len(dataset)):
x=dataset[i - n_past:i, 0:dataset.shape[1]]
if (i+n_past>=len(dataset)):
y=0
else:
y=dataset[i-1+n_past,3]
dataX.append(x)
dataY.append(y)
return np.array(dataX),np.array(dataY)
dataX,dataY=createXY(df_scaled,30)
6 系统功能描述
项目功能演示
7 最后
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻