美文网首页大学生活程序员神经网络算法
基于BP神经网络的股票预测模型

基于BP神经网络的股票预测模型

作者: 缠禅可禅 | 来源:发表于2017-01-12 21:23 被阅读0次

对于很多人人为,股票预测是一个很难的问题。其实不然,运用今天这种数学工具你可以大概预测出股票的短期走势。因为长期走势受很多因素的影响。

运用MATLAB神经网络工具箱,快速建立BP网络结构。那么你会问什么是神经网络,那么我下面就给大家简单的介绍一下:

人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。

人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。

所以网络学习的准则应该是:如果网络作出错误的的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。

如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够作出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。

如图所示拓扑结构的单隐层前馈网络,一般称为三层前馈网或三层感知器,即:输入层、中间层(也称隐层)和输出层。它的特点是:各层神经元仅与相邻层神经元之间相互全连接,同层内神经元之间无连接,各层神经元之间无反馈连接,构成具有层次结构的前馈型神经网络系统。单计算层前馈神经网络只能求解线性可分问题,能够求解非线性问题的网络必须是具有隐层的多层神经网络。

BP神经网络结构

​​言归正传,那么接下来就看看我对运用神经网络对股票的预测模型吧。以前五日的交易数据,作为输入,预测明天的股票价格。​​

mtlab代码:

%bp.m​

%处理数据

clear

close all

echo on  %窗口响应执行过程

clc

pause

a=xlsread('learn.xls',1,'A2:A301');%样本时间序号

a1=xlsread('learn.xls',1,'A7:A301');%预测时间序号

b=xlsread('learn.xls',1,'C2:C301');%读取指数

for i=1:1:295

y(i)=b(i+5);%理想输出

end

for i=1:1:295

for j=1:1:5

x(j,i)=b(i+j-1);%输入

end

end

a

x    %以前五日预测明天的大盘指数的输入矩阵

y    %理想的输出

%pause

[xn,minx,maxx,yn,miny,maxy]=premnmx(x,y) %数据归一化处理

xn

yn

%pause

tic;

%建立神经网络

net=newff(minmax(xn),[11,1],{'tansig','purelin'},'trainlm');

net.trainparam.show=50;    %显示迭代过程

net.trainparam.lr=0.5;    %学习率

net.trainparam.epochs=1000; %最大训练次数

net.trainparam.goal=1e-3;  %训练要求精度

net.trainparam.mc=0;     %动量因子

[net,tr]=train(net ,xn,yn); %训练bp网络

t = toc;

t

pause

inputWeights=net.iw{1,1} %输入层权值

inputbias=net.b{1}      %输入层阈值

layerWeights=net.lw{2,1} %输出层权值

layerbias=net.b{2}       %输出层阈值

%对网络仿真预测

On = sim (net ,xn);

E=On-yn %计算误差

M=sse(E)

N=mse(E)

%pause

a2=postmnmx(On,miny,maxy)

plot(a1,xn)

title('归一化处理后的样本','FontSize',12);

xlabel('统计时间2014.9.6-2015.11.10','FontSize',10);

ylabel('归一化后的上证指数','FontSize',10);

figure;

plot(a1,yn)

plot(a,b,'*');

title('上证指数预测收盘价格','FontSize',12);

xlabel('统计时间2014.9.1-2015.11.10','FontSize',10);

ylabel('上证指数','FontSize',10);

hold on

plot(a1,a2,'r+');

legend('实际值','r预测值');

echo off

pause

clc

训练神经网络、预测

BP网络验证图像

相关文章

  • 基于BP神经网络的股票预测模型

    对于很多人人为,股票预测是一个很难的问题。其实不然,运用今天这种数学工具你可以大概预测出股票的短期走势。因为长期走...

  • 股票预测者模型stocker

    stocker是基于google时间序列预测模型 - 预测者实现的股票预测。 因为项目要求股票分析,所以使用了该库...

  • 基于BP神经网络的股票预测系统(matlab实现)

    最终用的是第一季度和第二季度的浦发银行的100组数据进行训练和模拟的。其中蓝色是预测的,红色是实际的。

  • BP神经网络

    BP神经网络 一、BP神经网络 神经网络能很好地解决不同的机器学习问题。神经网络模型是许多逻辑单元按照不同层级组织...

  • 循环神经网络脉络

    循环神经网络 下图展示了如何基于循环神经网络实现语言模型。我们的目的是基于当前的输入与过去的输入序列,预测序列的下...

  • 基于遗传算法的BP神经网络

    基于遗传算法的BP神经网络 源码地址:https://github.com/Grootzz/GA-BP介绍:利用遗...

  • BP神经网络的梳理

    一 BP 神经网络简介 (1)BP神经网络在深度学习的地位 BP神经网络被称为“深度学习之旅的开端”,是神经网络的...

  • 人工神经网络及其MATLAB实现

    前言 这里只记录BP神经网络 1.人工神经网络基本理论 1.1人工神经网络模型拓扑结构 人工神经网络是由大量简单的...

  • 神经网络

    单层神经元模型 激活函数 BP神经网络(误差逆向传播) 示意图 其他常见神经网络 1.RBF 深度学习

  • RNN循环神经网络

    用RNN(循环神经网络)实现连续数据的预测(以股票预测为例) 回顾卷积神经网络 卷积就是特征提取器,就是C(卷积)...

网友评论

    本文标题:基于BP神经网络的股票预测模型

    本文链接:https://www.haomeiwen.com/subject/zejjbttx.html