求助,在用MATLAB做神经网络预测,出现了图中的情况,mes=0,这不科学吧。。求大神指点我在哪里出错了
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
1个回答
展开全部
这根本就还没开始训练,迭代次数还是0呢。看看是不是代码没有写对,参考下面的用法。
%% BP算法
function Out=bpnet(p,t,p_test)
global S1
net=newff(minmax(p),[S1,size(t,1)],{'tansig','purelin'},'trainlm'); %trainlm训练函数最有效
%net=newff(p,t,31,{'tansig','purelin'},'trainlm');%新版用法
net.trainParam.epochs=1000;
net.trainParam.goal=0.00001;
net.trainParam.lr=0.01;
net=train(net,p,t);
Out=sim(net,p_test);
end
%% BP算法
function Out=bpnet(p,t,p_test)
global S1
net=newff(minmax(p),[S1,size(t,1)],{'tansig','purelin'},'trainlm'); %trainlm训练函数最有效
%net=newff(p,t,31,{'tansig','purelin'},'trainlm');%新版用法
net.trainParam.epochs=1000;
net.trainParam.goal=0.00001;
net.trainParam.lr=0.01;
net=train(net,p,t);
Out=sim(net,p_test);
end
追答
可以用旧版的newff函数
试试trainlm这个算法
你的pn矩阵应该很大,怎么最后又用来测试了呢?
还可以看看归一化的方法:
在最新版的matlab里面共有两个归一化函数:mapminmax()和mapstd(),
各自的归一化格式如下:
[pn,ps]=mapminmax(P)或=mapstd(P) %P是输入向量
[tn, ts]=mapminmax(t)或=mapstd(t) %t 是目标向量
在训练完后,对测试样本归一化格式为:
pnt=mapminmax('apply',pt,ps)或=mapstd('apply',pt,ps)
仿真后反归一化格式则为:
out=mapminmax('reverse',An,ts)或=mapstd('reverse',An,ts);其中An为sim函数的输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询