吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1007|回复: 11
收起左侧

[求助] 各位老师,py源码出现如下错误该如何改呢?

[复制链接]
jtwc 发表于 2022-5-21 18:47
各位老师,网上找了个py源码出现如下错误该如何改呢? 谢谢了
[Python] 纯文本查看 复制代码
maotai = pd.read_csv('./SH600519.csv')  # 读取股票文件

training_set = maotai.iloc[0:2426 - 300, 2:3].values  # 前(2426-300=2126)天的开盘价作为训练集,表格从0开始计数,2:3 是提取[2:3)列,前闭后开,故提取出C列开盘价
test_set = maotai.iloc[2426 - 300:, 2:3].values  # 后300天的开盘价作为测试集

# 归一化
sc = MinMaxScaler(feature_range=(0, 1))  # 定义归一化:归一化到(0,1)之间
training_set_scaled = sc.fit_transform(training_set)  # 求得训练集的最大值,最小值这些训练集固有的属性,并在训练集上进行归一化
test_set = sc.transform(test_set)  # 利用训练集的属性对测试集进行归一化

x_train = []
y_train = []

x_test = []
y_test = []

# 测试集:csv表格中前2426-300=2126天数据
# 利用for循环,遍历整个训练集,提取训练集中连续60天的开盘价作为输入特征x_train,第61天的数据作为标签,for循环共构建2426-300-60=2066组数据。
for i in range(60, len(training_set_scaled)):
    x_train.append(training_set_scaled[i - 60:i, 0])
    y_train.append(training_set_scaled[i, 0])
# 对训练集进行打乱
np.random.seed(7)
np.random.shuffle(x_train)
np.random.seed(7)
np.random.shuffle(y_train)
tf.random.set_seed(7)
# 将训练集由list格式变为array格式
x_train, y_train = np.array(x_train), np.array(y_train)

# 使x_train符合RNN输入要求:[送入样本数, 循环核时间展开步数, 每个时间步输入特征个数]。
# 此处整个数据集送入,送入样本数为x_train.shape[0]即2066组数据;输入60个开盘价,预测出第61天的开盘价,循环核时间展开步数为60; 每个时间步送入的特征是某一天的开盘价,只有1个数据,故每个时间步输入特征个数为1
x_train = np.reshape(x_train, (x_train.shape[0], 60, 1))
# 测试集:csv表格中后300天数据
# 利用for循环,遍历整个测试集,提取测试集中连续60天的开盘价作为输入特征x_train,第61天的数据作为标签,for循环共构建300-60=240组数据。
for i in range(60, len(test_set)):
    x_test.append(test_set[i - 60:i, 0])
    y_test.append(test_set[i, 0])
# 测试集变array并reshape为符合RNN输入要求:[送入样本数, 循环核时间展开步数, 每个时间步输入特征个数]
x_test, y_test = np.array(x_test), np.array(y_test)
x_test = np.reshape(x_test, (x_test.shape[0], 60, 1))

model = tf.keras.Sequential([
    SimpleRNN(80, return_sequences=True),
    Dropout(0.2),
    SimpleRNN(100),
    Dropout(0.2),
    Dense(1)
])

model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
              loss='mean_squared_error')  # 损失函数用均方误差
# 该应用只观测loss数值,不观测准确率,所以删去metrics选项,一会在每个epoch迭代显示时只显示loss值

checkpoint_save_path = "./checkpoint/rnn_stock.ckpt"

if os.path.exists(checkpoint_save_path + '.index'):
    print('-------------load the model-----------------')
    model.load_weights(checkpoint_save_path)

cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_save_path,
                                                 save_weights_only=True,
                                                 save_best_only=True,
                                                 monitor='val_loss')

history = model.fit(x_train, y_train, batch_size=64, epochs=50, validation_data=(x_test, y_test), validation_freq=1,
                    callbacks=[cp_callback])

model.summary()
1.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
iperseus 发表于 2022-5-21 18:51
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| jtwc 发表于 2022-5-21 19:04
iperseus 发表于 2022-5-21 18:51
pip install pandas
import pandas as pd

老师,点下面那个输入pip install pandas
import pandas as pd呢?谢谢了
1.png
穹戲 发表于 2022-5-21 19:09
在控制台输入 pip install pandas
然后在代码第一行加一行 import pandas as pd
你用到了pandas库,pip是帮你安装pandas库,import是帮你把库导入到这个代码段上。
 楼主| jtwc 发表于 2022-5-21 19:29
穹戲 发表于 2022-5-21 19:09
在控制台输入 pip install pandas
然后在代码第一行加一行 import pandas as pd
你用到了pandas库,pip是 ...

谢谢老师
xqyqx 发表于 2022-5-21 21:12
本帖最后由 xqyqx 于 2022-5-21 21:22 编辑

楼主的numpy和tensorflow也没导入呢,代码看起来像是截了一半啊,只有训练模型部分,没有预测部分(可能是某个项目的train.py)
我亲自试过,拿深度学习预测的股票数据误差挺大的(可能是神经网络不够深?),建议使用其他模型
我之前的拿LSTM预测的结果:(图片太大了,截取一部分)
Figure_4.jpg
OmegaMolecule 发表于 2022-5-21 21:29
pd没有定义,应该是没有导入pandas库
补一句import pandas as pd 应该就行
OmegaMolecule 发表于 2022-5-21 21:30
xqyqx 发表于 2022-5-21 21:12
楼主的numpy和tensorflow也没导入呢,代码看起来像是截了一半啊,只有训练模型部分,没有预测部分(可能是 ...

感觉是过拟合了?
 楼主| jtwc 发表于 2022-5-22 08:58
xqyqx 发表于 2022-5-21 21:12
楼主的numpy和tensorflow也没导入呢,代码看起来像是截了一半啊,只有训练模型部分,没有预测部分(可能是 ...

老师,能分享一下你的LSTM吗?我只是学习用,谢谢了
xqyqx 发表于 2022-5-22 11:43
Ω分子 发表于 2022-5-21 21:30
感觉是过拟合了?

应该是,看loss曲线有些震荡了,不太会调超参数
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表