实测 《Tensorflow实例:利用LSTM预测股票每日最高价(二)》的结果

近期股市行情牛转熊,大盘一直下探!由3200跌到了2700,想必很多人被深套了。这时想起人工智能能否预测股市趋势?RNN能否起作用?

  这时便从网上找下教程,发现网上有个例子,便拿来一试!Tensorflow实例:利用LSTM预测股票每日最高价(二)

  这个实例大体上没有大问题,只是有些小细节有问题!要想直接复制运行,是会报错的。首先整下代码过程原作者已经写得很清楚了,但对于初学者来讲,有些地方还是不太明白的。我作为一个初学者,先来谈谈我在整个实测中的收获吧!

  实例的思路:通过tushare可以获取股票数据,

import tushare as ts
hist = ts.get_hist_data(‘600804‘)
hist.to_csv(‘f:/py/data/stock-1.csv‘)

然后用pandas进行数据整理,实例中的代码已经有说明了,这里就不再重复。在整例子中,最重要的还是要清楚数据的shape。

在生成训练集和测试集数据时,样本数(batch_size)、时间步(time_step)和(input_size)构成了RNN神经网络的输入数据的shape=[batch_size,time_step,input_size]。我想重点说说这三个参数代表的意思。input_size是数据中最低价、最高价、开盘价、收盘价、交易量、交易额、跌涨幅等因素,共7个;time_step=20,是连续的20条数据。batch_size是将数据分成几部分。举个例子就明白。假设有100天的数据,把第1天到至第20天的数据合在一起作为一条数据,第2天到第21天的数据合在一起作为第2条数据,第3天到第22天的数据合在一起作为第3条数据……如此类推!那么经过这样的处理后,就有100-20+1=81条数据。每条数据里有20天的记录,每天的记录里又有7个数据,那么shape=[81*20*7]。为什么要这样处理?也许是考虑到数据的连续性吧。

对比训练方法和测试方法,都有lstm()方法,当prediction()函数里再次运行lstm()方法时,需要在lstm()方法前通过tf.get_variable_scope().reuse_variables()将变量重用。

也可用with tf.variable_scope(‘scope_name’,reuse=True)来重用变量,在保存变量时,必须也要使用with tf.variable_scope(‘scope_name’)来命名变量空间。为什么需要重用?因为在载入之前保存训练结果的变量时,需要有变量来存储这此结果,在同一文件里,之前的train()函数将结果保存在变量里,这时无法再使用变量。如果保存和载入不在同一个文件,则不存在这些问题。另外,用来接收载入数据的变量必须要和保存的一致!

def prediction(time_step=20):
    X = tf.placeholder(tf.float32, shape=[None,time_step,input_size])
    #Y=tf.placeholder(tf.float32, shape=[None,time_step,1])
    mean,std,test_x,test_y=get_test_data()
    tf.get_variable_scope().reuse_variables()         # 变量重用
    pred,_=lstm(X)
    saver = tf.train.Saver(tf.global_variables())
    with tf.Session() as sess:
        #参数恢复

        #saver = tf.train.import_meta_graph(‘f:/py/data/stock2.model-1800.meta‘)
        saver.restore(sess, ‘./Model/stock.ckpt-100‘)
        test_predict=[]
        for step in range(len(test_x)-1):
            prob=sess.run(pred,feed_dict={X:[test_x[step]]})
            predict=prob.reshape((-1))
            test_predict.extend(predict)
        test_y=np.array(test_y)*std[7]+mean[7]
        test_predict=np.array(test_predict)*std[7]+mean[7]
        acc=np.average(np.abs(test_predict-test_y[:len(test_predict)])/test_y[:len(test_predict)])  #偏差
        print(test_predict)
        print(test_y)
        #以折线图表示结果
        plt.figure()
        plt.plot(list(range(len(test_predict))), test_predict, color=‘b‘)
        plt.plot(list(range(len(test_y))), test_y,  color=‘r‘)
        plt.show()

最后总结一下整个实测结果,代码能完全运行,但并不能预测。因为股市并不仅仅是因为几个价格就能预测出来的。这仅仅是个学习RNN的例子。

原文地址:https://www.cnblogs.com/xinghun85/p/9277970.html

时间: 2024-07-30 01:02:57

实测 《Tensorflow实例:利用LSTM预测股票每日最高价(二)》的结果的相关文章

利用神经网络预测股票收盘价(含源代码)

攒了几天,发一个大的 这是前几天投了一家量化分析职位,他给的题目的是写神经网络择时模型,大概就是用神经网络预测收盘价 database类:该类用于获得新浪网中的数据,并将其放入本地数据库.在本地数据库中建立两个表,分别是Data2012to2015和Data2015to2016,表中都含有日期,当日开盘价.当日收盘价.当日最高价.当日最低价.Data2012to2015为训练数据集,Data2015to2016为测试数据集. package it.cast; import java.io.Buf

如何预测股票分析--移动平均

近年来,随着全球经济与股市的快速发展,股票投资成为人们最常用的理财方式之一.本文研究的主要目标是利用机器学习技术,应用Python编程语言构建股票预测模型,对我国股票市场进行分析与预测. 今天主要来回顾的是 移动平均 参考机器之心的文章,对代码进行了中文的解释,同时加入了自己的见解 首先来处理一下数据,选用的是来自塔塔饮料的数据集,获取数据的方式可以查看 传送门 #import packages 导入pandas.numpy库 import pandas as pd import numpy a

利用JFreeChart绘制股票K线图完整解决方案

http://blog.sina.com.cn/s/blog_4ad042e50100q7d9.html 利用JFreeChart绘制股票K线图完整解决方案 (2011-04-30 13:27:17) 标签: 绘制 股票 k线 it 分类: 软件_Software 因为工作的需要,接触了一些股票图形绘制类的工作,其中最主要的还是股票K线图的绘制了,如果利用编程语言最底层的图形绘制方法去绘制这类图形,如果对编程语言不是特别熟悉的话,一般是有很大的困难的,通过在网上搜索发现,以自己最熟悉的两门语言为

逻辑回归模型预测股票涨跌

http://www.cnblogs.com/lafengdatascientist/p/5567038.html 逻辑回归模型预测股票涨跌 逻辑回归是一个分类器,其基本思想可以概括为:对于一个二分类(0~1)问题,若P(Y=1/X)>0.5则归为1类,若P(Y=1/X)<0.5,则归为0类. 一.模型概述 1.Sigmoid函数 为了具象化前文的基本思想,这里介绍Sigmoid函数: 函数图像如下: 红色的线条,即x=0处将Sigmoid曲线分成了两部分:当 x < 0,y <

深度神经网络在量化交易里的应用 之二 -- 用深度网络(LSTM)预测5日收盘价格

    距离上一篇文章,正好两个星期. 这边文章9月15日 16:30 开始写. 可能几个小时后就写完了.用一句粗俗的话说, "当你怀孕的时候,别人都知道你怀孕了, 但不知道你被日了多少回 " ,纪念这两周的熬夜,熬夜.  因为某些原因,文章发布的有点仓促,本来应该再整理实验和代码比较合适.文章都是两个主要作用: 对自己的工作总结, 方便自己回顾和分享给有兴趣的朋友. 不说废话了, 进入正题. 本次的课题很简单, 深度神经网络(AI)来预测5日和22日后的走势. (22日尚未整理, 不

(转)干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码)

干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码) 该博客来源自:https://mp.weixin.qq.com/s?__biz=MzA4NzE1NzYyMw==&mid=2247492203&idx=5&sn=3020c3a43bd4dd678782d8aa24996745&chksm=903f1c73a74895652ee688d070fd807771e3fe6a8947f77f3a15a44a65557da0313ac5ad592c

tensorflow实现基于LSTM的文本分类方法

tensorflow实现基于LSTM的文本分类方法 作者:u010223750 引言 学习一段时间的tensor flow之后,想找个项目试试手,然后想起了之前在看Theano教程中的一个文本分类的实例,这个星期就用tensorflow实现了一下,感觉和之前使用的theano还是有很大的区别,有必要总结mark一下 模型说明 这个分类的模型其实也是很简单,主要就是一个单层的LSTM模型,当然也可以实现多层的模型,多层的模型使用Tensorflow尤其简单,下面是这个模型的图  简单解释一下这个图

Jquery Mobile实例--利用优酷JSON接口读取视频数据

本文将介绍,如何利用JqueryMobile调用优酷API JSON接口显示视频数据. (1)注册用户接口. 首页,到 http://open.youku.com 注册一个账户,并通过验证.然后找到API接口 (http://open.youku.com/docs/tech_doc.html) 可以看到优酷提供不少API,本文将演示“通过视频关键词”接口. 点击进去后,会发现client_id和keyword是必填的,因此,未来构造的URL应该类似 https://openapi.youku.c

XSS漏洞实例利用

上一篇说了一下XSS的原理,相信大家对XSS的原理有了一定的了解.今天给大家分享一下XSS漏洞的实例利用. 环境: window 7 64位一台 火狐浏览器就位 外网云服务器一枚(我自己买的...) 可XSS网站一匹 获取Cookie的JS代码一套 好了,以上就是需要准备的东西,没有的外网云服务器(外网IP)的可以百度一下XSS利用的公开平台,自己研究下怎么用(我的服务器就不公开了,太渣了,只是用来做实验没法公开...) 现在我们开始一步一步的进行XSS漏洞利用 0x00  ....biubiu