dl之gru:基于2022年6月最新上证指数数据集结合pytorch框架利用gru算法预测最新股票上证指数实现回归预测(代码片段)

一个处女座的程序猿 一个处女座的程序猿     2022-12-06     455

关键词:

DL之GRU:基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预测最新股票上证指数实现回归预测

目录

基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预测最新股票上证指数实现回归预测

# 0、数据集预整理

# 1、读取数据集

# 2、数据预处理

# 2.1、数据清洗

# 2.2、时间格式数据标准化

# 2.3、定义y_train

# 2.4、构造时序性矩阵数据集:基于y重新设计训练集——符合时序性

# 2.5、对训练集进行 Z_score标准归一化处理

# 2.6、将训练集的df格式转为tensor格式

# 3、模型训练

# 3.1、模型建立:定义GRU模型、优化器、损失函数

# 3.2、模型训练:及时保存训练过程中的模型

# 3.3、对标签数据单独进行归一化

# 3.4、基于GRU模型预测:基于训练好的GRU模型,预测test数据集

# 3.5、模型评估


相关文章
DL之GRU(Pytorch框架):基于2022年6月最新上证指数数据集利用GRU算法预测最新股票上证指数实现回归预测
DL之GRU(Pytorch框架):基于2022年6月最新上证指数数据集利用GRU算法预测最新股票上证指数实现回归预测实现

基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预测最新股票上证指数实现回归预测

# 0、数据集预整理

# 数据集下载地址上证指数(000001)历史交易数据_股票行情_网易财经

# 1、读取数据集

(7700, 11)

日期股票代码名称收盘价最高价最低价开盘价前收盘涨跌额涨跌幅成交量成交金额
1990/12/19'000001上证指数99.9899.9895.7996.05NoneNoneNone1260494000
1990/12/20'000001上证指数104.39104.3999.98104.399.984.414.410919784000
1990/12/21'000001上证指数109.13109.13103.73109.07104.394.744.54072816000
1990/12/24'000001上证指数114.55114.55109.13113.57109.135.424.96663231000
1990/12/25'000001上证指数120.25120.25114.55120.09114.555.74.976156000
1990/12/26'000001上证指数125.27125.27120.25125.27120.255.024.174610053000
1990/12/27'000001上证指数125.28125.28125.27125.27125.270.010.00866104000
1990/12/28'000001上证指数126.45126.45125.28126.39125.281.170.933910888000
1990/12/31'000001上证指数127.61127.61126.48126.56126.451.160.91747860000
1991/1/2'000001上证指数128.84128.84127.61127.61127.611.230.96399159000
1991/1/3'000001上证指数130.14130.14128.84128.84128.841.31.00914193000
1991/1/4'000001上证指数131.44131.44130.14131.27130.141.30.9989420261000
1991/1/7'000001上证指数132.06132.06131.45131.99131.440.620.4717217141000
1991/1/8'000001上证指数132.68132.68132.06132.62132.060.620.469529261806000
1991/1/9'000001上证指数133.34133.34132.68133.3132.680.660.497456033228000
1991/1/10'000001上证指数133.97133.97133.34133.93133.340.630.472599905399000
1991/1/11'000001上证指数134.6134.61134.51134.61133.970.630.4703133277115000
1991/1/14'000001上证指数134.67135.19134.11134.11134.60.070.052125306883000
1991/1/15'000001上证指数134.74134.74134.19134.21134.670.070.05214461010000
1991/1/16'000001上证指数134.24134.74134.14134.19134.74-0.5-0.3711509270000

# 2、数据预处理

# 2.1、数据清洗

# 2.2、时间格式数据标准化

利用strptime()函数,将时间改为%Y-%m-%d格式

# 2.3、定义y_train

y_train shape: (7200,)

# 2.4、构造时序性矩阵数据集:基于y重新设计训练集——符合时序性

data_all_train shape: (7190, 11)
data_all_train 
         label_0    label_1    label_2  ...    label_8    label_9          y
0       99.9800   104.3900   109.1300  ...   127.6100   128.8400   130.1400
1      104.3900   109.1300   114.5500  ...   128.8400   130.1400   131.4400
2      109.1300   114.5500   120.2500  ...   130.1400   131.4400   132.0600
3      114.5500   120.2500   125.2700  ...   131.4400   132.0600   132.6800
4      120.2500   125.2700   125.2800  ...   132.0600   132.6800   133.3400
...         ...        ...        ...  ...        ...        ...        ...
7185  2870.3422  2868.4587  2875.4176  ...  2846.5473  2836.8036  2846.2217
7186  2868.4587  2875.4176  2898.5760  ...  2836.8036  2846.2217  2852.3512
7187  2875.4176  2898.5760  2883.7378  ...  2846.2217  2852.3512  2915.4311
7188  2898.5760  2883.7378  2867.9237  ...  2852.3512  2915.4311  2921.3980
7189  2883.7378  2867.9237  2813.7654  ...  2915.4311  2921.3980  2923.3711

[7190 rows x 11 columns]
label_0label_1label_2label_3label_4label_5label_6label_7label_8label_9y
099.98104.39109.13114.55120.25125.27125.28126.45127.61128.84130.14
1104.39109.13114.55120.25125.27125.28126.45127.61128.84130.14131.44
2109.13114.55120.25125.27125.28126.45127.61128.84130.14131.44132.06
3114.55120.25125.27125.28126.45127.61128.84130.14131.44132.06132.68
4120.25125.27125.28126.45127.61128.84130.14131.44132.06132.68133.34
5125.27125.28126.45127.61128.84130.14131.44132.06132.68133.34133.97
6125.28126.45127.61128.84130.14131.44132.06132.68133.34133.97134.6
7126.45127.61128.84130.14131.44132.06132.68133.34133.97134.6134.67
8127.61128.84130.14131.44132.06132.68133.34133.97134.6134.67134.74
9128.84130.14131.44132.06132.68133.34133.97134.6134.67134.74134.24
10130.14131.44132.06132.68133.34133.97134.6134.67134.74134.24134.25
11131.44132.06132.68133.34133.97134.6134.67134.74134.24134.25134.24
12132.06132.68133.34133.97134.6134.67134.74134.24134.25134.24134.24
13132.68133.34133.97134.6134.67134.74134.24134.25134.24134.24133.72
14133.34133.97134.6134.67134.74134.24134.25134.24134.24133.72133.17
15133.97134.6134.67134.74134.24134.25134.24134.24133.72133.17132.61
16134.6134.67134.74134.24134.25134.24134.24133.72133.17132.61132.05
17134.67134.74134.24134.25134.24134.24133.72133.17132.61132.05131.46
18134.74134.24134.25134.24134.24133.72133.17132.61132.05131.46130.95
19134.24134.25134.24134.24133.72133.17132.61132.05131.46130.95130.44
20134.25134.24134.24133.72133.17132.61132.05131.46130.95130.44129.97
21134.24134.24133.72133.17132.61132.05131.46130.95130.44129.97129.51

# 2.5、对训练集进行 Z_score标准归一化处理

data_all_tr2arr_mean: 1964.7695519269184
data_all_tr2arr_std: 1068.4654234837196

# 2.6、将训练集的df格式转为tensor格式

train_loader: 
 <torch.utils.data.dataloader.DataLoader object at 0x0000014BB5A68AC8>

# 3、模型训练

# 3.1、模型建立:定义GRU模型、优化器、损失函数

采用GRU+Fully Connected Layer, hidden_size=64

# 3.2、模型训练:及时保存训练过程中的模型

1 tensor(0.3308, grad_fn=<MseLossBackward>)
2 tensor(0.1350, grad_fn=<MseLossBackward>)
3 tensor(0.0127, grad_fn=<MseLossBackward>)
4 tensor(0.0110, grad_fn=<MseLossBackward>)
5 tensor(0.0114, grad_fn=<MseLossBackward>)
6 tensor(0.0099, grad_fn=<MseLossBackward>)
7 tensor(0.0222, grad_fn=<MseLossBackward>)
8 tensor(0.0130, grad_fn=<MseLossBackward>)
9 tensor(0.0150, grad_fn=<MseLossBackward>)
10 tensor(0.0133, grad_fn=<MseLossBackward>)
11 tensor(0.0057, grad_fn=<MseLossBackward>)
12 tensor(0.0163, grad_fn=<MseLossBackward>)
13 tensor(0.0216, grad_fn=<MseLossBackward>)
14 tensor(0.0193, grad_fn=<MseLossBackward>)
15 tensor(0.0333, grad_fn=<MseLossBackward>)
16 tensor(0.0146, grad_fn=<MseLossBackward>)
17 tensor(0.0118, grad_fn=<MseLossBackward>)
18 tensor(0.0052, grad_fn=<MseLossBackward>)
19 tensor(0.0046, grad_fn=<MseLossBackward>)
20 tensor(0.0033, grad_fn=<MseLossBackward>)
21 tensor(0.0078, grad_fn=<MseLossBackward>)
22 tensor(0.0088, grad_fn=<MseLossBackward>)
23 tensor(0.0049, grad_fn=<MseLossBackward>)
24 tensor(0.0085, grad_fn=<MseLossBackward>)
25 tensor(0.0044, grad_fn=<MseLossBackward>)
26 tensor(0.0034, grad_fn=<MseLossBackward>)
27 tensor(0.0050, grad_fn=<MseLossBackward>)
28 tensor(0.0070, grad_fn=<MseLossBackward>)
29 tensor(0.0072, grad_fn=<MseLossBackward>)
30 tensor(0.0065, grad_fn=<MseLossBackward>)
31 tensor(0.0037, grad_fn=<MseLossBackward>)
32 tensor(0.0054, grad_fn=<MseLossBackward>)
33 tensor(0.0033, grad_fn=<MseLossBackward>)
34 tensor(0.0314, grad_fn=<MseLossBackward>)
35 tensor(0.0035, grad_fn=<MseLossBackward>)
36 tensor(0.0063, grad_fn=<MseLossBackward>)
37 tensor(0.0080, grad_fn=<MseLossBackward>)
38 tensor(0.0028, grad_fn=<MseLossBackward>)
39 tensor(0.0068, grad_fn=<MseLossBackward>)
40 tensor(0.0040, grad_fn=<MseLossBackward>)
41 tensor(0.0021, grad_fn=<MseLossBackward>)
42 tensor(0.0031, grad_fn=<MseLossBackward>)
43 tensor(0.0017, grad_fn=<MseLossBackward>)
44 tensor(0.0040, grad_fn=<MseLossBackward>)
45 tensor(0.0025, grad_fn=<MseLossBackward>)
46 tensor(0.0018, grad_fn=<MseLossBackward>)
47 tensor(0.0041, grad_fn=<MseLossBackward>)
48 tensor(0.0025, grad_fn=<MseLossBackward>)
49 tensor(0.0013, grad_fn=<MseLossBackward>)
50 tensor(0.0034, grad_fn=<MseLossBackward>)
51 tensor(0.0014, grad_fn=<MseLossBackward>)
52 tensor(0.0045, grad_fn=<MseLossBackward>)
53 tensor(0.0051, grad_fn=<MseLossBackward>)
54 tensor(0.0036, grad_fn=<MseLossBackward>)
55 tensor(0.0019, grad_fn=<MseLossBackward>)
56 tensor(0.0046, grad_fn=<MseLossBackward>)
57 tensor(0.0032, grad_fn=<MseLossBackward>)
58 tensor(0.0033, grad_fn=<MseLossBackward>)
59 tensor(0.0033, grad_fn=<MseLossBackward>)
60 tensor(0.0025, grad_fn=<MseLossBackward>)
61 tensor(0.0021, grad_fn=<MseLossBackward>)
62 tensor(0.0021, grad_fn=<MseLossBackward>)
63 tensor(0.0036, grad_fn=<MseLossBackward>)
64 tensor(0.0018, grad_fn=<MseLossBackward>)
65 tensor(0.0075, grad_fn=<MseLossBackward>)
66 tensor(0.0074, grad_fn=<MseLossBackward>)
67 tensor(0.0010, grad_fn=<MseLossBackward>)
68 tensor(0.0018, grad_fn=<MseLossBackward>)
69 tensor(0.0039, grad_fn=<MseLossBackward>)
70 tensor(0.0009, grad_fn=<MseLossBackward>)
71 tensor(0.0035, grad_fn=<MseLossBackward>)
72 tensor(0.0035, grad_fn=<MseLossBackward>)
73 tensor(0.0011, grad_fn=<MseLossBackward>)
74 tensor(0.0047, grad_fn=<MseLossBackward>)
75 tensor(0.0020, grad_fn=<MseLossBackward>)
76 tensor(0.0008, grad_fn=<MseLossBackward>)
77 tensor(0.0019, grad_fn=<MseLossBackward>)
78 tensor(0.0019, grad_fn=<MseLossBackward>)
79 tensor(0.0025, grad_fn=<MseLossBackward>)
80 tensor(0.0013, grad_fn=<MseLossBackward>)
81 tensor(0.0023, grad_fn=<MseLossBackward>)
82 tensor(0.0028, grad_fn=<MseLossBackward>)
83 tensor(0.0020, grad_fn=<MseLossBackward>)
84 tensor(0.0017, grad_fn=<MseLossBackward>)
85 tensor(0.0010, grad_fn=<MseLossBackward>)
86 tensor(0.0011, grad_fn=<MseLossBackward>)
87 tensor(0.0048, grad_fn=<MseLossBackward>)
88 tensor(0.0008, grad_fn=<MseLossBackward>)
89 tensor(0.0008, grad_fn=<MseLossBackward>)
90 tensor(0.0015, grad_fn=<MseLossBackward>)
91 tensor(0.0024, grad_fn=<MseLossBackward>)
92 tensor(0.0036, grad_fn=<MseLossBackward>)
93 tensor(0.0030, grad_fn=<MseLossBackward>)
94 tensor(0.0017, grad_fn=<MseLossBackward>)
95 tensor(0.0005, grad_fn=<MseLossBackward>)
96 tensor(0.0014, grad_fn=<MseLossBackward>)
97 tensor(0.0037, grad_fn=<MseLossBackward>)
98 tensor(0.0048, grad_fn=<MseLossBackward>)
99 tensor(0.0022, grad_fn=<MseLossBackward>)
100 tensor(0.0006, grad_fn=<MseLossBackward>)
101 tensor(0.0005, grad_fn=<MseLossBackward>)
102 tensor(0.0027, grad_fn=<MseLossBackward>)
103 tensor(0.0015, grad_fn=<MseLossBackward>)
104 tensor(0.0014, grad_fn=<MseLossBackward>)
105 tensor(0.0029, grad_fn=<MseLossBackward>)
106 tensor(0.0011, grad_fn=<MseLossBackward>)
107 tensor(0.0082, grad_fn=<MseLossBackward>)
108 tensor(0.0017, grad_fn=<MseLossBackward>)
109 tensor(0.0034, grad_fn=<MseLossBackward>)
110 tensor(0.0010, grad_fn=<MseLossBackward>)
111 tensor(0.0015, grad_fn=<MseLossBackward>)
112 tensor(0.0017, grad_fn=<MseLossBackward>)
113 tensor(0.0016, grad_fn=<MseLossBackward>)
114 tensor(0.0006, grad_fn=<MseLossBackward>)
115 tensor(0.0023, grad_fn=<MseLossBackward>)
116 tensor(0.0006, grad_fn=<MseLossBackward>)
117 tensor(0.0018, grad_fn=<MseLossBackward>)
118 tensor(0.0013, grad_fn=<MseLossBackward>)
119 tensor(0.0016, grad_fn=<MseLossBackward>)
120 tensor(0.0007, grad_fn=<MseLossBackward>)
121 tensor(0.0007, grad_fn=<MseLossBackward>)
122 tensor(0.0043, grad_fn=<MseLossBackward>)
123 tensor(0.0038, grad_fn=<MseLossBackward>)
124 tensor(0.0011, grad_fn=<MseLossBackward>)
125 tensor(0.0025, grad_fn=<MseLossBackward>)
126 tensor(0.0013, grad_fn=<MseLossBackward>)
127 tensor(0.0005, grad_fn=<MseLossBackward>)
128 tensor(0.0013, grad_fn=<MseLossBackward>)
129 tensor(0.0021, grad_fn=<MseLossBackward>)
130 tensor(0.0011, grad_fn=<MseLossBackward>)
131 tensor(0.0034, grad_fn=<MseLossBackward>)
132 tensor(0.0022, grad_fn=<MseLossBackward>)
133 tensor(0.0019, grad_fn=<MseLossBackward>)
134 tensor(0.0020, grad_fn=<MseLossBackward>)
135 tensor(0.0009, grad_fn=<MseLossBackward>)
136 tensor(0.0100, grad_fn=<MseLossBackward>)
137 tensor(0.0009, grad_fn=<MseLossBackward>)
138 tensor(0.0012, grad_fn=<MseLossBackward>)
139 tensor(0.0009, grad_fn=<MseLossBackward>)
140 tensor(0.0003, grad_fn=<MseLossBackward>)
141 tensor(0.0007, grad_fn=<MseLossBackward>)
142 tensor(0.0017, grad_fn=<MseLossBackward>)
143 tensor(0.0027, grad_fn=<MseLossBackward>)
144 tensor(0.0149, grad_fn=<MseLossBackward>)
145 tensor(0.0027, grad_fn=<MseLossBackward>)
146 tensor(0.0024, grad_fn=<MseLossBackward>)
147 tensor(0.0013, grad_fn=<MseLossBackward>)
148 tensor(0.0011, grad_fn=<MseLossBackward>)
149 tensor(0.0006, grad_fn=<MseLossBackward>)
150 tensor(0.0008, grad_fn=<MseLossBackward>)
save success! F:\\File_Python\\……\\20220627_models/RNN_GRU_Model_300_150.pkl

# 3.3、对标签数据单独进行归一化

y2arr_normal:
 [-1.74529705 -1.74116964 -1.73673337 ...  1.26852879  1.29623048
  1.32378233]

# 3.4、基于GRU模型预测:基于训练好的GRU模型,预测test数据集

 cut_train_test: 7700 7200

# 3.5、模型评估

cut_train_test: 7700 7400
RNN_GRU_Model_300 R2    value: 0.8737662561295777
RNN_GRU_Model_300 MAE   value: 48.39948391799124
RNN_GRU_Model_300 MSE   value: 3773.501360880409

# 对比真实值VS预测值曲线  

 

dl之lstm/gru/cnn:基于tensorflow框架分别利用lstm/grucnn算法对上海最高气温实现回归预测案例(代码片段)

DL之LSTM/GRU/CNN:基于tensorflow框架分别利用LSTM/GRU、CNN算法对上海最高气温实现回归预测案例目录基于tensorflow框架分别利用LSTM/GRU、CNN算法对上海最高气温实现回归预测案例#1、定义数据集#2、特征工程#2.1、挑选入模特征#2.2、... 查看详情

tf之lstm/gru:基于tensorflow框架对boston房价数据集分别利用lstmgru算法(batch_size调优对比)实现房价回归预测案例

TF之LSTM/GRU:基于tensorflow框架对boston房价数据集分别利用LSTM、GRU算法(batch_size调优对比)实现房价回归预测案例目录基于tensorflow框架对boston房价数据集分别利用LSTM、GRU算法(batch_size调优对比)实现房价回归预测案例#1、定义数据... 查看详情

股指期货

...股指期货,H是“沪”的拼音第一个字母。标的物是上证50。IC:I表示股指期货,C是China的第一个字母,标的物是中证500。例如:IF19042019年4月交割的沪深300股指期货合约IH19052019年5月交割的上证50股指期货合约IC19062019年6月... 查看详情

指数基金介绍专栏:上证180指数

...持基金定投,终会财富自由!今天,牛大给大家介绍一下上证180指数。1,上证180指数是在原上证30指数编制方案的基础上作进一步完善后形成的。该指数以2002年6月28日为基日,以3299.06点为基点。2,以沪市A股为样本空间,选择... 查看详情

2022年最新python大数据之python基础(代码片段)

文章目录1、循环介绍2、while循环的使用3、continue和break4、死循环5、循环嵌套6、循环嵌套案例:7、for循环8、for循环中的break和continue9、for循环嵌套1、循环介绍有条件的重复做相似的事情Python中循环分为while和for2、while循环的... 查看详情

2022年最新python大数据之python基础函数与变量(代码片段)

文章目录1、公共方法2、公共函数3、推导式4、函数介绍5、函数参数6、函数返回值7、函数的嵌套8、局部变量和全局变量9、gloal10、函数参数进阶1、公共方法+加法运算适用于所有的基础数据类型(intfloatbool)加法运算... 查看详情

955不加班公司名单!2022年6月最新版(代码片段)

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇来源:网络哪一个是你现在的工作制?996工作制:即每天早9点到岗,一直工作到晚上9点。每周工作6天。955工作制:即每天早9点到... 查看详情

2022年最新python大数据之excel基础

文章目录Python大数据之Excel基础数据引用数据清洗数据去重缺失值处理数据加工数据计算数据转换数据排序数据筛选Excel图表类型了解有哪些图表类型Excel图表使用图表的创建方式利用固定数据区域创建图表编辑数据系列添加数据... 查看详情

2022年最新python大数据之python基础面向对象与继承(代码片段)

文章目录1、实例属性的添加和获取2、`__init__()`方法3、带参数的`__init__()`方法4、`__str__()`方法5、`__del__()`方法6、面向对象案例7、单继承8、多继承9、子类中重写父类方法1、实例属性的添加和获... 查看详情

2022年最新python大数据之python基础文件的操作与类(代码片段)

文章目录1、文件的基本操作2、文件的读取操作3、文件的写入操作4、文件的追加操作5、文件读写模式拓展(了解,看到能明白意思即可)6、文件备份案例7、rename和remove8、文件夹的操作9、批量修改文件名案例10、面... 查看详情

2022年最新python大数据之python基础文件的操作与类(代码片段)

文章目录1、文件的基本操作2、文件的读取操作3、文件的写入操作4、文件的追加操作5、文件读写模式拓展(了解,看到能明白意思即可)6、文件备份案例7、rename和remove8、文件夹的操作9、批量修改文件名案例10、面... 查看详情

2022年最新python大数据之python基础参数与管理系统(代码片段)

文章目录1、不定长参数2、函数定义和调用时各类参数的排布顺序3、组包和拆包4、引用5、可变类型和不可变类型6、引用当做参数传递7、学生管理系统8、函数递归9、lambda函数1、不定长参数位置不定长参数(*args):... 查看详情

2022年最新python大数据之python基础参数与管理系统(代码片段)

文章目录1、不定长参数2、函数定义和调用时各类参数的排布顺序3、组包和拆包4、引用5、可变类型和不可变类型6、引用当做参数传递7、学生管理系统8、函数递归9、lambda函数1、不定长参数位置不定长参数(*args):... 查看详情

自然语言处理(nlp)基于gru实现情感分类(代码片段)

【自然语言处理(NLP)】基于GRU实现情感分类@TOC前言任务描述任务描述:本示例教程演示如何在IMDB数据集上用GRU网络完成文本分类的任务。IMDB数据集是一个对电影评论标注为正向评论与负向评论的数据集,共有25000条文本数据... 查看详情

谷歌chromeapp将于2022年6月停用,向pwa应用转型

...ChromeOS的ChromeApp功能,将于2022年6月停用,全面向基于网页的PWA应用转型。这些应用除了谷歌自家的Gmail、GoogleDrive等之外,还包括大量第三方App、小游戏等。谷歌于2020年起,便逐步减少使用传统技术的ChromeApp,... 查看详情

2022年最新python大数据之python基础函数与变量(代码片段)

文章目录1、公共方法2、公共函数3、推导式4、函数介绍5、函数参数6、函数返回值7、函数的嵌套8、局部变量和全局变量9、gloal10、函数参数进阶1、公共方法+加法运算适用于所有的基础数据类型(intfloatbool)加法运算... 查看详情

2019年4月26日最新指数基金估值表(坚持定投终能胜利)

...资者大家庭】。 每天我会给大家分享投资心得,发布最新的指数基金估值。 每天只需五分钟,大家跟随老师一起坚持投资自己。实现财富增值,战胜通货膨胀,共同走向财务自由之路,过上自己真正想要的生活! 我... 查看详情

2022年6月英语六级作文范文

2022年6月英语六级作文范文WritingTowriteanessaythatbeginswiththesentence“nowadaysmoreandmorepeoplechoosetoliveanenvironmentallyfriendlylifestyle.”Nowadaysmoreandmorepeoplechoosetoliveanenvironmentallyfriendlylif 查看详情