如何用MATLAB的BP神经网络做股票预测?

2024-05-13

1. 如何用MATLAB的BP神经网络做股票预测?

算法选择问题,我觉得3层够了吧,但是多少个节点看数据量了!训练过程算法选择也很重要!主要是这里个关键点吧

如何用MATLAB的BP神经网络做股票预测?

2. 求用matlab编BP神经网络预测程序

P=[。。。];输入T=[。。。];输出

%  创建一个新的前向神经网络 
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')

%  当前输入层权值和阈值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
%  当前网络层权值和阈值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}

%  设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;

%  调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);

%  对 BP 网络进行仿真
A = sim(net_1,P);
%  计算仿真误差 
E = T - A;
MSE=mse(E)

x=[。。。]';%测试
sim(net_1,x) 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
不可能啊 我2009

3. matlab神经网络预测程序一点点小问题

net_1是已经训练好的网络(用的是1988-2003的数据)
从题目知道网络的输入-输出数据是这样产生的
输入P  对应输出T 
1988-2002--->2003
1989-2003--->2004
1990-2004--->2005
…………
1994-2008--->2009
以上构成了1994-1988+1=7组输入输出对。
利用P/T进行训练,训练成功(一般还要设一个确认集进行泛化能力的检测,光是训练误差小是不行的)后。sim(net_1,x)这是对网络进行仿真。在这个仿真函数中,给一个输入,(类似训练时用的输入P,列数可以不同,但行数必须一样),网络就给出你想要的输出。
而这个x就是你最后要进行的预测的输入。由于你预测的是2010年的值,那么输入就是为1995-2009,这样“按道理”,网络就给出了2010年的值
明白没?

matlab神经网络预测程序一点点小问题

4. bp神经网络股票价格预测的MATLAB编程

P=[];‘输入,开盘价,最高价,最低价,收盘价成交量依次5天的数据’
T=[];’输出,即第二日的收盘’
net=newff(minmax(P),[7,1],{'tansig','logsig'},'traingdx'); 
net.trainParam.epochs=1000; ‘最大训练次数,根据需要可自行调节’
net.trainParam.goal=0.01; ‘误差’
net.trainParam.lr=0.01; ‘学习率’
net=train(net,P,T); ‘训练网络’
test=[];‘待预测数据输入’
out=sim(net,test); ‘仿真预测’
我的这个程序没有进行初始化,你还需要先将数据进行初始化后才能算。

5. 求助神经网络MATLAB程序

你用的工具箱函数了吗?用工具箱函数可以简单点,工具箱调用是nntool;在command windows使用,先用import,将数据分别放入 inputs和targets(导入数据)。然后按NEW NETWORK选择结构,选择Feedforward Backprop,确定Number of Layers(网络层数),在下面确定每层节点数,然后选择下函数:logsig ,purelin,tansig。最后,关闭此窗口。单击View,即可显示结构。
然后按train,在 inputs和targets里面填入输入值X和训练的Y,在training parameters中设置你要的参数,比如误差。最后按train就可以开始训练。完了一定记住按网络模型输出(Export),将模型转入command windows。下面调用:如y1=sim(network1,x0);plot(x,y,'o',x0,y0,y1,':')。
如果你要程序,可以这样:
function BP
x=[-1:0.01:1];
y=[-1:0.01:1];
p=[x;y];
T=x.^2+y.^2;
x0=[-1:0.1:1];
y0=[-1:0.1:1];
p0=[x0;y0];
T0=x0.^2+y0.^2;
net=newff(minmax(p),[10,1],{'logsig','purelin'});
net.trainParam.epochs=10000;
net.trainParam.goal=1e-6;
net=train(net,p,T);
figure;
T1=sim(net,p0);
plot(p,T,'o',p0,T0,p0,T1,':');
end

求助神经网络MATLAB程序

6. 求MATLAB的BP神经网络预测程序

%由于数据比较大,我又懒得用归一化,所以直接把数据降了3个数量级,
%不过我觉得应该没问题,但用归一化结果应该更准确些。。
%由于初始权值和阀值均是随机给的,所以每次仿真都有点点不同,这是正常的。
p=[1183 1303 1278;1303 1278 1284;1278 1284 1187 ;...
    1284 1187 1154;1187 1154 1267;1154 1267 1241;...
    1267 1241 1302;1241 1302 1195;1302 1195 1256]'*0.001;
t=[ 1284 1187 1154 1267 1241 1302 1195 1256 1348]*0.001;
net=newff(minmax(p),[3,1],{'tansig','purelin'},'traingda');
net.trainParam.goal=0.001;
net.trainParam.show=20;
net.trainParam.epochs=1000;
net.trainParam.min_grad=1e-10;
net.trainParam.mc=0.95;
[net,tr]=train(net,p,t);
t1=sim(net,[1302 1195 1256]'*0.001);
t2013=t1*1000%2013 的 预测 数据
运行结果:
t2013 =
       1301.9

7. 求神经网络程序(matlab)解答!!!

net.trainParam.show = 10,每十次显示一下误差变化情况
net.trainParam.lr = 0.05学习速率
net.trainParam.goal = 1e-10误差要求
net.trainParam.epochs = 50000最大训练次数
x是测试样本
y=sim(net,x)测试X的输出是否符合要求

求神经网络程序(matlab)解答!!!

8. 关于BP神经网络MATLAB程序

1,我用的是matlab R2008,一列代表一个样本。其他版本的不知道
2,matlab中神经网络工具箱就已经很方便了,调用函数和修改参数就可以用了。
3,net_1.trainParam.lr代表学习速率,net_1.trainParam.mc则是动量系数。至于参数的确定,要看具体情况。