问题描述:
求助检查BP神经网络预测程序
clear,clc
P=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=newff(minmax(P),[150,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 = 10;
net_1.trainParam.lr = 0.01;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-10;
% 调用 TRAINGDM算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
% 对 BP 网络进行仿真
A = sim(net_1,P);
figure(1)
plot(P,T,'b+',P,A,'r');
legend('真实值','预测值'),title('训练效果');
% 计算仿真误差
E = T - A;
MSE=mse(E)
x=1989:2004;%测试
y=sim(net_1,x);
y(end)
figure(2)
plot(P,T,'b+',x,y,'r');
legend('真实值','预测值'),title('下一年预测');
请问2004的预测结果为何与2003的一样啊?
clear,clc
P=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=newff(minmax(P),[150,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 = 10;
net_1.trainParam.lr = 0.01;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-10;
% 调用 TRAINGDM算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
% 对 BP 网络进行仿真
A = sim(net_1,P);
figure(1)
plot(P,T,'b+',P,A,'r');
legend('真实值','预测值'),title('训练效果');
% 计算仿真误差
E = T - A;
MSE=mse(E)
x=1989:2004;%测试
y=sim(net_1,x);
y(end)
figure(2)
plot(P,T,'b+',x,y,'r');
legend('真实值','预测值'),title('下一年预测');
请问2004的预测结果为何与2003的一样啊?
问题解答:
我来补答展开全文阅读