问题:


如图为茅台的股票数据
我们只用c列数据进行预测
用连续60天的开盘价预测第61天的开盘价

分析:

1.import
2.读取文件,划分train、test,归一化,生成整个数据集并乱序
3.model=tf.keras.Sequential(…)
4.model.compile(…)
5.断点续训,保存模型,model.fit(…)
6.model.summary()

代码:

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()

注:本文来自于中国大学mooc中北京大学的人工智能实践:Tensorflow笔记,在此感谢北大的曹健老师

循环神经网络(RNN)预测股票价格,附带例子和完整代码相关推荐

  1. 循环神经网络RNN 2—— attention注意力机制(附代码)

    attention方法是一种注意力机制,很明显,是为了模仿人的观察和思维方式,将注意力集中到关键信息上,虽然还没有像人一样,完全忽略到不重要的信息,但是其效果毋庸置疑,本篇我们来总结注意力机制的不同方 ...

  2. 循环神经网络(RNN)的搭建,附带例子和完整代码——2

    问题: 用RNN实现输入一个字母,预测出下一个字母(字母使用独热编码): 输入abcd,预测出e 输入bcde,预测出a 输入cdea,预测出b 输入deab,预测出c 输入eabc,预测出d 分析: ...

  3. GRU预测股票价格,附带例子和完整代码

    问题: 如图为茅台的股票数据 我们只用c列数据进行预测 用连续60天的开盘价预测第61天的开盘价 分析: 1.import 2.读取文件,划分train.test,归一化,生成整个数据集并乱序 3.m ...

  4. 基于循环神经网络RNN预测彩票开奖结果附完整代码

    一.获取数据 想训练个模型的话,第一步肯定是获取数据啦. 我在网上找了一下,很快从[](https://www.js-lottery.com/Pla yZone/lottoData.html)找到了历 ...

  5. sklearn 神经网络_机器学习100天-Day2404 循环神经网络RNN(预测时间序列)

    说明:本文依据<Sklearn 与 TensorFlow 机器学习实用指南>完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解. 进入第二部分深度学习 第十四章循环神经网络 ...

  6. 通过keras例子理解LSTM 循环神经网络(RNN)

    博文的翻译和实践: Understanding Stateful LSTM Recurrent Neural Networks in Python with Keras 正文 一个强大而流行的循环神经 ...

  7. 循环神经网络RNN、LSTM、GRU实现股票预测

    Tensorflow--循环神经网络RNN 循环核 TensorFlow描述循环核 循环神经网络 TensorFlow描述循环神经网络 循环计算过程 输入一个字母,预测下一个字母 输入四个连续字母,预 ...

  8. tensorflow lstm从隐状态到预测值_机器学习100天-Day2405 循环神经网络RNN(LSTM)

    说明:本文依据<Sklearn 与 TensorFlow 机器学习实用指南>完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解. 进入第二部分深度学习 第十四章循环神经网络 ...

  9. keras 多层lstm_机器学习100天-Day2403 循环神经网络RNN(训练多层RNN)

    说明:本文依据<Sklearn 与 TensorFlow 机器学习实用指南>完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解. 进入第二部分深度学习 第十四章循环神经网络 ...

最新文章

  1. 尝试HTML + JavaScript 编写Windows App
  2. python爬虫案例-陶瓷公司数据爬取
  3. junit 案例(三)
  4. 2020-11-19
  5. 通俗地讲清楚fit_transform()和transform()的区别
  6. python实现杨辉三角形博客园_Python实现杨辉三角
  7. Python库大全(涵盖了Python应用的方方面面),建议收藏留用!
  8. java编程贪心算法背包问题,贪心算法----部分背包问题(java实现)
  9. 玩游戏?或许游戏正在拯救部分人
  10. redis的持久化相关操纵
  11. Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(中)
  12. VC++6.0共享内存技术总结
  13. 网站点击流数据分析项目
  14. The operator ‘SUBTRACT‘ is not supported between objects of type ‘null‘ and ‘java.lang.Integer‘
  15. python求三重积分_python Scipy积分运算大全(一重、二重及三重积分)
  16. 遥感或DEM像素深度如何降为8bit
  17. [高等数学]解析一道关于函数极限的概念考察题(001)
  18. 熵权法、极差法标准化简介与实战
  19. LocalDate、LocalDateTime计算时间差
  20. 2022年国赛建模评估

热门文章

  1. 网络基础应用层--HTTP协议
  2. HTML-网页-3D旋转相册-创意相册
  3. 应用软件 故障隔离_隔离软件工程师生命中的一天
  4. 【GAOPS002】round robin Verilog实现
  5. 2022-2027年中国黑龙江煤炭工业市场竞争态势及行业投资前景预测报告
  6. 温度采集实时上报——客户端
  7. GridControl
  8. 手把手硬件电路详细设计过程
  9. shell 脚本返回上级目录_Linux命令:使用cd和alias命令快速返回上级目录
  10. 如何设计安全可靠的开放接口---之AppId、AppSecret