求助检查BP神经网络预测程序clear,clcP=1988:2003;%输入T=[ 0.1093 0

发布时间:2021-02-25 09:09:31

求助检查BP神经网络预测程序clear,clcP=1988:2003;%输入T=[ 0.1093 0.1110 0.1127 0.1141 0.1154 0.1164 0.1171 0.1175 0.1178 0.1179 0.1179 0.1178 0.1179 0.1180 0.1182 0.1186];%输出% 创建一个新的前向神经网络 net

网友回答

问题:  1:隐含层的节点数应该小于训练样本数(你这里et_1=newff(minmax(P),[150,1],{'tansig','purelin'},'traingdm')中的150远远大于训练样本数10个(1989:2003))
  2:如果把时间当做样本输入的话,这是不太合适的.如果那样还不如用时间序列求解.而且在现在的这个程序中还会会出现ynhj88311说的那种情况.(这里还应该做归一化处理更好)
clcclear   
date=1988:2003; 
P0=[ 0.1093 0.1110 0.1127 0.1141 0.1154 0.1164 0.1171 0.1175  0.1178 0.1179 0.1179 0.1178 0.1179 0.1180 0.1182 0.1186];% 样本数据这里数据在0~1之间就不用归一化处理了
plot(date,P0,'b+'); %原数据随时间变化的曲线
hold on 
title('原数据曲线图')
for i=1:13
     P(:,i)=P0(i:i+2);
     T(:,i)=P0(i+3);end%  创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')%  设置训练参数net_1.trainParam.show = 1;net_1.trainParam.lr = 0.2;net_1.trainParam.mc = 0.9;net_1.trainParam.epochs=10000000;net_1.trainParam.goal = 1e-10;%  调用 TRAINGDM算法训练 BP 网络[net_1,tr]=train(net_1,P,T);
%  对 BP 网络进行仿真A = sim(net_1,P)E = T - A;MSE=mse(E)
P2001=sim(net_1,[0.1179 0.1178 0.1179 ]');P2002=sim(net_1,[0.1178 0.1179 0.1180 ]&#
以上问题属网友观点,不代表本站立场,仅供参考!