简介

import pandas as pd
import numpy as np
data = pd.read_csv('zgpa_train.csv')
data.head() price = data.loc[:,'close']
price.head() # 归一化处理
price_norm = price/max(price)
print(price_norm) from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(8,5))
plt.plot(price)
plt.title('close price')
plt.xlabel('time')
plt.ylabel('price')
plt.show() # define X and y
# define method to extract X and y
def extract_data(data,time_step):
X=[]
y=[]
# 0,1,2...9:10个样本: time_step=8;0,1...7;1,2...8;2,3
for i in range(len(data) - time_step):
X.append([a for a in data[i:i+time_step]])
y.append(data[i+time_step])
X=np.array(X)
X=X.reshape(X.shape[0],X.shape[1],1)
return X,y time_step=8 # define X and y
X,y = extract_data(price_norm,time_step)
print(X) # set up the model
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, SimpleRNN
model = Sequential()
#input_shape 训练长度 每个数据的维度
model.add(SimpleRNN(units=5,input_shape=(time_step,1),activation="relu"))
#输出层
#输出数值 units =1 1个神经元 "linear"线性模型
model.add(Dense(units=1, activation="linear"))
#配置模型 回归模型y
model.compile(optimizer="adam",loss="mean_squared_error")
model.summary() y = np.array(y) # train the model
model.fit(X,y,batch_size=30,epochs=200) # make prediction based on the training data
y_train_predict = model.predict(X)*max(price)
y_train = y*max(price)
print(y_train_predict,y_train) fig2 = plt.figure(figsize=(10,5))
plt.plot(y_train,label = "real price")
plt.plot(y_train_predict,label = "predict price")
plt.title("price")
plt.xlabel("time")
plt.ylabel("price")
plt.legend()
plt.show() data_test = pd.read_csv('zgpa_test.csv')
data_test.head()
price_test=data_test.loc[:,'close']
price_test.head()
price_test_norm = price_test/max(price)
#extract X_test and y_test
X_test_norm,y_test_norm = extract_data(price_test_norm,time_step)
print(X_test_norm.shape,len(y_test_norm)) # make prediction based on the test data
y_test_predict = model.predict(X_test_norm)*max(price)
y_test = [i*max(price) for i in y_test_norm] fig3 = plt.figure(figsize=(10,5))
plt.plot(y_test,label = "real price test")
plt.plot(y_test_predict,label = "predict price test")
plt.title("price")
plt.xlabel("time")
plt.ylabel("price")
plt.legend()
plt.show() # result_y_test = y_test.reshap(-1,1)
result_y_test = np.array(y_test).reshape(-1,1)
result_y_test_predict = np.array(y_test_predict).reshape(-1,1)
print(result_y_test.shape,result_y_test_predict.shape)
result = np.concatenate((result_y_test,result_y_test_predict),axis=1)
print(result.shape)
reslut = pd.DataFrame(result,columns=['real_price_test','predict_price_test'])
reslut.to_csv('zgpa_predict_test.csv')

image

参考链接

https://gitee.com/nickdlk/python_machine_learning

RNN实现股价预测的更多相关文章

  1. 基于 Keras 的 LSTM 时间序列分析——以苹果股价预测为例

    简介 时间序列简单的说就是各时间点上形成的数值序列,时间序列分析就是通过观察历史数据预测未来的值.预测未来股价走势是一个再好不过的例子了.在本文中,我们将看到如何在递归神经网络的帮助下执行时间序列分析 ...

  2. 深度学习RNN实现股票预测实战(附数据、代码)

    背景知识 最近再看一些量化交易相关的材料,偶然在网上看到了一个关于用RNN实现股票预测的文章,出于好奇心把文章中介绍的代码在本地跑了一遍,发现可以work.于是就花了两个晚上的时间学习了下代码,顺便把 ...

  3. 【python量化】将Transformer模型用于股票价格预测

    本篇文章主要教大家如何搭建一个基于Transformer的简单预测模型,并将其用于股票价格预测当中.原代码在文末进行获取.小熊猫的python第二世界 1.Transformer模型 Transfor ...

  4. 学习笔记TF020:序列标注、手写小写字母OCR数据集、双向RNN

    序列标注(sequence labelling),输入序列每一帧预测一个类别.OCR(Optical Character Recognition 光学字符识别). MIT口语系统研究组Rob Kass ...

  5. RNN入门(二)识别验证码

    介绍   作为RNN的第二个demo,笔者将会介绍RNN模型在识别验证码方面的应用.   我们的验证码及样本数据集来自于博客: CNN大战验证码,在这篇博客中,我们已经准备好了所需的样本数据集,不需要 ...

  6. 跟我学算法- tensorflow 实现RNN操作

    对一张图片实现rnn操作,主要是通过先得到一个整体,然后进行切分,得到的最后input结果输出*_w[‘out’] + _b['out']  = 最终输出结果 第一步: 数据载入 import ten ...

  7. 吴恩达deepLearning.ai循环神经网络RNN学习笔记_看图就懂了!!!(理论篇)

    前言 目录: RNN提出的背景 - 一个问题 - 为什么不用标准神经网络 - RNN模型怎么解决这个问题 - RNN模型适用的数据特征 - RNN几种类型 RNN模型结构 - RNN block - ...

  8. 吴恩达deepLearning.ai循环神经网络RNN学习笔记_没有复杂数学公式,看图就懂了!!!(理论篇)

    本篇文章被Google中国社区组织人转发,评价: 条理清晰,写的很详细! 被阿里算法工程师点在看! 所以很值得一看! 前言 目录: RNN提出的背景 - 一个问题 - 为什么不用标准神经网络 - RN ...

  9. 文献阅读报告 - Context-Based Cyclist Path Prediction using RNN

    原文引用 Pool, Ewoud & Kooij, Julian & Gavrila, Dariu. (2019). Context-based cyclist path predic ...

  10. Pytorch基础——使用 RNN 生成简单序列

    一.介绍 内容 使用 RNN 进行序列预测 今天我们就从一个基本的使用 RNN 生成简单序列的例子中,来窥探神经网络生成符号序列的秘密. 我们首先让神经网络模型学习形如 0^n 1^n 形式的上下文无 ...

随机推荐

  1. 游戏开发之Cocos3着色器/shader快速入门

    本文为学习笔记,不排除有谬误,但确保都是亲测.另外,傻狗百度收不收录的无所谓,我来博客园就是为了记记笔记. 对于新人,首先明确一点:shader需要通过材质的方式作用于模型上 所以有个很关键的步骤,c ...

  2. CF1424G题解

    思路 这个题意思很显然,是求 nnn 个区间重叠最多的地方和值. 那么我们能想到用差分数组,在扫一遍的过程中维护最大值和 pospospos. 但是需要注意的是,区间最大会到 10910^9109,直 ...

  3. Vue相关笔记

    Promise基本使用 Promise是异步编程的一种解决方案,用于一个异步操作的最终完成(或失败)及其结果值的表示,比传统的回调函数方案更加合理. var promise = new Promise ...

  4. maven配置jdk版本

    修改默认的jdk版本 在maven安装目录 apache-maven-3.6.1\conf\setting.xml 添加 <profile> <id>jdk18</id& ...

  5. 【代码】Processing笔触手写板笔刷代码合集(包含流速、毛笔笔触、压感笔触等多种)

    代码来源于openprocessing,考虑到国内不是很好访问,我把我找到的比较好的搬运过来! @ 目录 合集1 笔触4(流速笔触,速写) 笔触5(流速笔触,晕染) 笔触6(流速笔触,毛笔) 合集2 ...

  6. AT_arc168_e [ARC168E] Subsegments with Large Sums 题解

    题意: \[\begin{aligned} &\text{给定长度为 } n \text{ 的数列 } \{a_i\} \text{ 和两个参数 } k, s \text{,将 } \{a_i ...

  7. Web前端入门第 50 问:CSS 内容溢出怎么处理?

    溢出:盒模型装不下内容的时候,超出盒子大小的内容就称之为内容溢出,这里的内容又分为盒模型和文本,所以 CSS 在处理溢出时候也分为文本和盒模型两种情况. 正常情况内容溢出应该换行自动撑开盒子大小,但某 ...

  8. ASP.NET Core中对开放泛型(Open Generic)的依赖注入

    public interface IRepository<T> { void Add(T entity); List<T> Get(); } public class Repo ...

  9. RocketMQ源码详解(消息存储、Consumer)

    消息存储 消息存储核心类 private final MessageStoreConfig messageStoreConfig; //消息配置属性 private final CommitLog c ...

  10. 一文速通 Python 并行计算:12 Python 多进程编程-进程池 Pool

    一文速通 Python 并行计算:12 Python 多进程编程-进程池 Pool 摘要: 在Python多进程编程中,Pool类用于创建进程池,可并行执行多个任务.通过map.apply等方法,将函 ...