当前位置:   article > 正文

【小白也可做】基于1DCNN的单特征输入的股票预测项目实战(pytorch)(单特征)——仅用于课程和编程学习,不作为任何金融推荐!!!!_1dcnn pytorch

1dcnn pytorch

一、项目简介

股票预测是金融领域中的重要问题,通过对历史股票数据的分析和建模,我们可以尝试预测未来股票的价格趋势,为投资决策提供参考。本项目是基于PyTorch深度学习框架实现一个使用1D卷积神经网络(1DCNN)来进行股票预测的项目,该网络可以有效地处理时间序列数据,通过卷积层和提取输入序列中的特征,并通过全连接层进行预测。网络的输入是历史股票收盘价(单特征),输出是预测的股票价格。【本项目的代码文件分模块整理,包含模型构建、数据划分、训练过程等模块都清晰分明】

二、实验数据集

实验采用的是深沪300数据集sh300.csv(后文有源码和数据集获取方式),这是公开的数据集,百度一下应该也可以找得到,数据集展示如下(所展示的数据是本人删掉某些列的数据),实验只使用了红框中的收盘价作为输入特征进行预测。

数据划分:以滑窗的方式进行数据划分,滑窗大小为20,输入特征为1,每次滑窗的第21天为预测的标签值。

三、实验环境

平台:Window 11

语言:python3.9

编译器:Pycharm

框架:Pytorch:1.13.1

四、实验内容及部分代码展示

1、model_1DCNN.py 模型构建

model.py定义了项目用到的网络模型,本项目用到的模型是三层的一维卷积网络,使用relu激活,最后使用两层全连接层输出预测结果。

 输入为20个数,每层网络的输出结果为:

2、train.py 训练通用模板

训练过程集成到fit函数里面,是项目训练过程的通用代码,其他项目也可以在它的基础上修改后使用。

 3、Config.py 参数定义

config类中定义了项目所有需要的参数,可以在里面修改训练参数。

 4、DataSplit.py 数据划分

 DataSplit.py 是实现数据划分的函数,通过滑动窗口,将每个窗口大小的数据作为训练数据,将其后面一个数据作为预测结果,再进行划分训练数据和标签,最后分成训练集和验证集。

 5、test_stock_1DCNN_run.py 训练文件

该py文件实现整体训练流程并做绘图操作。依次实现加载数据、数据标准化、取出WIND数据、划分训练集测试集、数据转化为Tensor、形成数据更迭器、载入模型、定义损失、定义优化器、开始训练、损失可视化、显示预测结果。

6、test_pth.py 模型训练后的测试文件

采用模型训练完成后的pth对数据进行预测,可以展示模型预测效果,前面的处理过程类似test_wind_CNN.py所示。

7、loss_draw.py 模型训练后的测试文件

将训练产生并收集的loss.csv展示出来,也就是损失图,红框可调展示范围。 

 五、实验结果及分析

1、loss损失图

该损失是训练了200个epoch的损失图:

 纵坐标局部范围展示(0-0.0002):

部分损失数据展示:

2、预测效果展示

训练epoch=200后的股票收盘价预测效果如下(使用pth文件进行预测):

 局部展示(展示前两百天的预测效果):

 六、总结及资源

若有朋友需要可运行的源码和数据集,可以guan注【科研小条】gong众号,回复【股票预测1dcnn】,即可获得。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/364069
推荐阅读
相关标签
  

闽ICP备14008679号