关于BP神经网络预测
本帖最后由 hanyunxiang 于 2010-5-25 17:03 编辑关于BP神经网络预测
注:里面的笑脸代表冒号(不知道会出现笑脸)
关于BP时间序列预测
程序中x是已知的运输量数值(2000年-2009年),以4个数据为一组,前三个数据作为输入,第四个作为输出,共分7组,前六组训练,隐层节点为7,最后一组检验:
x=[13369.2 14873.7 17137.3 17432.5 24193.5 28435.1....
33197.3 38758.6 40576.2 48606.3];
X(1,:)=(x(1,:)-min(x(1,:)))/(max(x(1,:))-min(x(1,:)));(归一化)
for i=1:7
X1(i,:)=;
end
X2=(X1(:,1:3))';
T2=(X1(:,4))';
X3=X2(:,1:6);
T3=T2(:,1:6);
net=newff(minmax(X3),,{'logsig','tansig'},'trainlm');
net.trainParam.epochs=1000;
net.trainParam.goal=0.000001;
LP.lr=0.1;
net=train(net,X3,T3);
y1=sim(net,X3);
以下是检验:
x_test=X2(:,7);
y_test=sim(net,x_test)
Y_test=y_test*(max(x(1,:))-min(x(1,:)))+min(x(1,:))(反归一化)
检验效果还不错;
但运用以下命令在预测2010年运输量时,向量yc1为2007、2008、2009年运输量归一化的数值;
为什么反归一化输出和2009年数值一样,怎么回事呢???初学者盼解答??
yc1=';
jg1_test=sim(net,yc1(:,1))
Jg1_test=jg1_test*(max(x(1,:))-min(x(1,:)))+min(x(1,:))(反归一化)
感谢楼主,很不错的说。。。。。 y1=sim(net,X3); X3不是你的训练数据吗,前面的网络是根据X3和目标输出来训练的,结果你又把X3作为最后的网络输出,结果肯定是目标输出啊(已知的2009的值)与归不归一没有关系。 这是什么啊?楼主 改改参数应该就不一样了,神经网络的结果就是有点蛋疼…… {:3_48:}{:3_48:} {:3_41:}{:3_41:} {:3_64:}{:3_64:}
页:
[1]
2