『壹』 用matlab编BP神经网络预测程序
这个程序有问题的,输入数据有10列,输出数据
『贰』 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); ‘仿真预测’
我的这个程序没有进行初始化,你还需要先将数据进行初始化后才能算。
『叁』 关于bp人工神经网络matlab编程预测问题,求大神帮忙,谢谢!
我电脑上运行正常,会不会是因为你没清空工作空间,clc,clear运行一下
『肆』 求用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
『伍』 求一个bp神经网络预测模型的MATLAB程序
BP神经网络预测的步骤:
1、输入和输出数据。
2、创建网络。fitnet()
3、划分训练,测试和验证数据的比例。net.divideParam.trainRatio;net.divideParam.valRatio;net.divideParam.testRatio
4、训练网络。train()
5、根据图表判断拟合好坏。ploterrcorr();parcorr();plotresponse()
6、预测往后数据。net()
7、画出预测图。plot()
执行下列命令
BP_prediction
得到结果:
[ 2016, 14749.003045557066798210144042969]
[ 2017, 15092.847215188667178153991699219]
[ 2018, 15382.150005970150232315063476562]
[ 2019, 15398.85769711434841156005859375]
[ 2020, 15491.935150090605020523071289062]
『陆』 用matlab实现bp算法,对样本进行预测
来的:
lc;
P=[110 0.807 240 0.2 15 1 18 2 1.5;
110 2.865 240 0.1 15 2 12 1 2;
110 2.59 240 0.1 12 4 24 1 1.5;
220 0.6 240 0.3 12 3 18 2 1;
220 3 240 0.3 25 3 21 1 1.5;
110 1.562 240 0.3 15 3 18 1 1.5;
110 0.547 240 0.3 15 1 9 2 1.5];
%110 1.318 300 0.1 15 2 18 1 2];
T=[54248 162787 168380 314797;
28614 63958 69637 82898;
86002 402710 644415 328084;
230802 445102 362823 335913;
60257 127892 76753 73541;
34615 93532 80762 110049;
56783 172907 164548 144040];
%40907 117437 120368 130179];
m=max(max(P));
n=max(max(T));
P=P'/m;
T=T'/n;
%-------------------------------------------------------------------------%
pr(1:9,1)=0; %输入矢量的取值范围矩阵
pr(1:9,2)=1;
bpnet=newff(pr,[12 4],, 'traingdx', 'learngdm');
%建立BP神经网络, 12个隐层神经元,4个输尺告出神经元
%tranferFcn属性 'logsig' 隐层采用Sigmoid传输函数
%tranferFcn属性 'logsig' 输出层采用Sigmoid传输函数
%trainFcn属性 'traingdx' 自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数
%learn属性 'learngdm' 附加动量因子的梯度下降学习函数
net.trainParam.epochs=1000;%允许最大训练步数2000步陵悉明
net.trainParam.goal=0.001; %训练目标最小陆晌误差0.001
net.trainParam.show=10; %每间隔100步显示一次训练结果
net.trainParam.lr=0.05; %学习速率0.05
bpnet=train(bpnet,P,T);
%-------------------------------------------------------------------------
p=[110 1.318 300 0.1 15 2 18 1 2];
p=p'/m;
r=sim(bpnet,p);
R=r'*n;
display(R);
『柒』 求大神帮忙用matlab程序做BP神经网络预测
1、样本数据太少,用BP网络预测可能并非好选择。说不定用一般的回归分析效果更好。
2、要对Y进行预测,需要知道2015年的影响因素X1~X7才行吧?
BP神经网络的参考程序:
data=[...
20092102.13108.691104.99888.45700.664.288204.517502.1
2010旦升此2701.61132.741456.641121.64839.0299.58910020760.52
20113636.62208.222002.11426.291111.12123.0910086.8829286.8
20124164.32229.052303.91631.371293.62176.4212005.11533720.1
20134672.91247.212583.751841.951480.84181.913136.7739131
20145157.97257.632872.012028.331666.75200.871511042194
];
year=data(:,1);
p=data(:,2:8).';
t=data(:,9).';
net=newff(p,t,10);
net=train(net,p,t);
y1=sim(net,p(:,end))
由于没有2015年的X1~X7数据,最后一句用2014年的数据进行测试。
如果用多元线性回归:
c=regress(t',p')
y2=c'*p(:,end)
由于样本数量太笑谨少(少于影响因素的数量),这种情况下,实际上回归的结果可以几乎没有误差(只有数值误差)。当然,用于预测是否准确要另当模迅别论。
『捌』 GA-BP神经网络模型预测的MATLAB程序问题
Matlab神经网络工具箱提供了一系列用于建立和训练bp神经网络模型的函数命令,很难一时讲全。下面仅以一个例子列举部分函数的部分用法。更多的函数和用法请仔细查阅Neural Network Toolbox的帮助文档。 例子:利用bp神经网络模型建立z=sin(x+y)的模型并检验效果 %第1步。随机生成200个采样点用于训练 x=unifrnd(-5,5,1,200); y=unifrnd(-5,5,1,200); z=sin(x+y); %第2步。建立神经网络模型。其中参数一是输入数据的范围,参数二是各层神经元数量,参数三是各层传递函数类型。 N=newff([-5 5;-5 5],[5,5,1],{'tansig','tansig','purelin'}); %第3步。训练。这里用批训练函数train。也可用adapt函数进行增长训练。 N=train(N,[x;y],z); %第4步。检验训练成果。 [X,Y]=meshgrid(linspace(-5,5)); Z=sim(N,[X(:),Y(:)]'); figure mesh(X,Y,reshape(Z,100,100)); hold on; plot3(x,y,z,'.')