神经网络(NeuralNetworks)是一种用训练数据拟合目标函数的黑箱模型,只要数据量足够大,它可以拟合出输入到输出之间的任意函数关系。

本篇教程我们将使用神经网络进行股市的预测,利用数据样本学习,得到相关因素预测股票走势。

01

问题描述

1)数据

首先我们预设一组数据,下图为股票上证指数2019年07月到2019年09月的30天开盘价格和收盘价格。

▍股票开盘和收盘价格

2)网络结构

设计三层神经网络,隐含层包括25个节点,利用所设计的神经网络来预测股票的收盘均价。

3)可视化

可建立一个30行2列的矩阵存储股票数据,矩阵的第一列输入上列数据中的股票开盘价格,第二列输入股票的收盘价格,如果股票的收盘价格高于开盘价格则用红色显示,反之则用绿色显示,可视化股票数据如下图所示。采用本实例所设计的神经网络预测股票收盘均价,并可视化预测结果。

▍股票价格柱形图

02

实现代码

Python实现代码如下所示:

importtensorflow as tf

importnumpy as np

importmatplotlib.pyplot as plt

date = np.linspace(1,30,30)

beginPrice = np.array([2923.19,2928.06,2943.92,2946.26,2944.40,2920.85,2861.33,2854.58,2776.69,2789.02,

2784.18,2805.59,2781.98,2798.05,2824.49,2762.34,2817.57,2835.52,2879.08,2875.47,

2887.66,2885.15,2851.02,2879.52,2901.63,2896.00,2907.38,2886.94,2925.94,2927.75])

endPrice = np.array([2937.36,2944.54,2941.01,2952.34,2932.51,2908.77,2867.84,2821.50,2777.56,2768.68,

2794.55,2774.75,2814.99,2797.26,2808.91,2815.80,2823.82,2883.10,2880.00,2880.33,

2883.44,2897.43,2863.57,2902.19,2893.76,2890.92,2886.24,2924.11,2930.15,2957.41])

for i in range(0,30): #画柱状图

dateOne = np.zeros([2])

dateOne[0] = i;

dateOne[1] = i;

priceOne = np.zeros([2])

priceOne[0] = beginPrice[i]

priceOne[1] = endPrice[i]

ifendPrice[i]>beginPrice[i]:

plt.plot(dateOne,priceOne,'r',lw=6)

else:

plt.plot(dateOne,priceOne,'g',lw=6)

plt.xlabel("date")

plt.ylabel("price")

# 网络结构:X(30x1)*w1(1x25)+b1(1*25) = hidden_layer(30x25)

# hidden_layer(30x25)*w2(25x1)+b2(30x1) = output(30x1)

# X->hidden_layer->output

dateNormal = np.zeros([30,1])

priceNormal = np.zeros([30,1])

#归一化

for i in range(0,30):

dateNormal[i,0] = i/29.0;

priceNormal[i,0] = endPrice[i]/3000.0;

x = tf.placeholder(tf.float32,[None,1])

y = tf.placeholder(tf.float32,[None,1])

# X->hidden_layer

w1 = tf.Variable(tf.random_uniform([1,25],0,1))

b1 = tf.Variable(tf.zeros([1,25]))

wb1 = tf.matmul(x,w1)+b1

layer1 = tf.nn.relu(wb1) # 激励函数

# hidden_layer->output

w2 = tf.Variable(tf.random_uniform([25,1],0,1))

b2 = tf.Variable(tf.zeros([30,1]))

wb2 = tf.matmul(layer1,w2)+b2

layer2 = tf.nn.relu(wb2)

loss = tf.reduce_mean(tf.square(y-layer2)) #y为真实数据, layer2为网络预测结果

#梯度下降

train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

withtf.Session() as sess:

sess.run(tf.global_variables_initializer())

for i in range(0,20000):

sess.run(train_step,feed_dict={x:dateNormal,y:priceNormal})

#预测, X w1w2 b1b2 -->layer2

pred = sess.run(layer2,feed_dict={x:dateNormal})

predPrice = np.zeros([30,1])

for i in range(0,30):

predPrice[i,0]=(pred*3000)[i,0]

plt.plot(date,predPrice,'b',lw=1)

plt.show()

03

运行结果

运行以上代码可视化神经网络的预测结果如下图所示。

▍可视化股票价格预测结果

04

扫码,微店限时优惠

利用神经网络实现股票预测 | 附Pyhon代码相关推荐

  1. 【BP预测】基于猫群算法优化BP神经网络实现数据预测附matlab代码

    1 简介 由于影响岩爆因素的复杂性,以及岩爆的极强灾害性.本文通过选择影响岩爆程度的四项物理力学指标,最后运算组合以后变成三项输入因子.应用BP神经网络对16组国内外岩爆实际工程案例进行训练,得到最优 ...

  2. 【BP预测】基于头脑风暴算法优化BP神经网络实现数据预测附matlab代码

    ​1 简介 针对基于传统BP神经网络的海水水质评价模型存在易陷入局部极小等问题,提出了一种新的利用头脑风暴优化算法(BSO)优化BP神经网络的海水水质评价模型(BSO-BP).该模型引入具有全局寻优特 ...

  3. 【BP预测】基于鸟群算法优化BP神经网络实现数据预测附Matlab代码

    1 简介 热舒适度是室内环境舒适性的评价指标,由于热舒适度的计算是一个复杂的非线性迭代过程,不便应用于空调实时控制系统中,为解决这一问题,可利用BP神经网络算法对热舒适度进行预测.但为了改善传统BP神 ...

  4. 【预测模型】基于布谷鸟算法改进BP神经网络实现数据预测附matlab代码

    一. BP神经网络预测算法简介 BP网络(Back-ProPagation Network)又称反向传播神经网络, 通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出. ...

  5. 基于ANFIS的股票价格预测附Python代码

    基于ANFIS的股票价格预测附Python代码 在金融领域,股票价格预测一直是一个重要的问题.随着机器学习技术的发展,人们开始尝试使用神经网络等方法进行股票价格的预测. ANFIS(自适应网络基石推理 ...

  6. TensorFlow神经网络实现股票预测

    目录 1.数据来源 2.数据可视化 3.神经网络设计 神经网络(NeuralNetworks)是一种用训练数据拟合目标函数的黑箱模型,只要数据量足够大,它可以拟合出输入到输出之间的任意函数关系. 本篇 ...

  7. 【遗传优化BP网络】基于自适应遗传算法的BP神经网络的股票预测MATLAB仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 通过MATLAB对BP神经网络,基于遗传优化的BP神经网络,基于改进遗传优化的BP神经网络以及基于改进遗传优化的组合BP神经网络等多种算法的股 ...

  8. Python Tensorflow神经网络实现股票预测

    神经网络(NN)它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型.这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的.在提供数据量足够大情 ...

  9. LSTM 长短期记忆神经网络及股票预测实现

    一.介绍 我们知道RNN(循环神经网络)可以通过时间序列预测输出,LSTM也具有同样的功能,那么为什么需要LSTM呢? 由于RNN在参数更新过程中参数矩阵更新可能会造成梯度消失的问题,这才演化出了具有 ...

最新文章

  1. strict aliasing
  2. WeeklyBlogging_20100722
  3. 安装64位Oracle 10g超详细教程
  4. tf.trainable_variables() and tf.all_variables()
  5. python3 下的文件输入输出特性以及如何覆盖文件内容和接下去输入
  6. BASIS--Client 锁定和解锁
  7. EOS 帐户权限操作--你找不到的干货 (原创) 续集-EOS 3.0
  8. javascript之变量
  9. 记录centos7下tomcat部署war包过程
  10. OpenGL编程指南学习 之一 源码环境运行
  11. 计算机专业保研面试备考:计算机算法(必看)
  12. dota5显示正在连接协调服务器,win10系统打开dota2提示已连接至DOTA2游戏协调服务器正在登陆中如何解决...
  13. Uploadifive上传
  14. Python入门刷题第三天(类和对象和继承)
  15. 给Android手机设置的壁纸应该是多大尺寸
  16. android adb 分析,android adb shell常用脚本分析课件.ppt
  17. 解决QQ识图后复制文字然后将其粘贴到文件重命名中,总是显示重命名不成功
  18. SQL Compliance Manager Crack
  19. 天下文章一大抄,前人的成果不要跑
  20. mac电脑解压缩报错:错误22 无效的参数

热门文章

  1. MyBatis Plus的非主流用法
  2. matlab 根据顶点坐标绘制三维立方体(当部分边有权值时)
  3. php读取word格式,php读取word格式 phpword 读取word内容
  4. [DP]Cow Frisbee Team S
  5. 动态规划之最大K乘积问题
  6. AI图形算法之一:液位计识别
  7. java去除emoji表情等特殊字符。
  8. 2021-10-22 ACML概念与应用
  9. 《网络营销实战密码》第3次印刷
  10. 2020年全国职业院校技能大赛改革试点赛(中职组)