|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
小女子近日蛮头苦学matlab的神经网络编程,好不容易设计出如下程序,用五年一组的旅游人数,去滚动预测下一年的数据,程序如下,训练发现好像学习效率不是太好,哪位大侠可以帮帮看下原因不?事关毕业大计,
不胜感激!
echo on
clc
P=[4175 4289 5624 3568 5440;
4289 5624 3568 5440 7489;
5624 3568 5440 7489 10210;
3568 5440 7489 10210 11679;
5440 7489 10210 11679 18055;
7489 10210 11679 18055 23591;
10210 11679 18055 23591 29184;
11679 18055 23591 29184 34495;
18055 23591 29184 34495 36122;
23591 29184 34495 36122 41009;
29184 34495 36122 41009 51397;
34495 36122 41009 51397 70693;
36122 41009 51397 70693 92763;
41009 51397 70693 92763 87249;
51397 70693 92763 87249 130047]';
%目标向量
T=[7489 10210 11679 18055 23591 29184 34495 36122 41009 51397 70693 92763 87249 130047 171623];
%归一化
[PN,MINP,MAXP,TN,MINT,MAXT]=PREMNMX(P,T); % 将数据归到[-1,1]
%训练
net=newff(minmax(P),[8,1],{'tansig','purelin'},'traingdm')
% 当前输入层权值和阈值
inputWeights=net.IW{1,1}
inputbias=net.b{1}
% 当前网络层权值和阈值
layerWeights=net.LW{2,1}
layerbias=net.b{2}
pause
clc
% 设置训练参数
net.trainParam.show = 50;
net.trainParam.lr = 0.05;
net.trainParam.mc = 0.9;
net.trainParam.epochs = 12500;
net.trainParam.goal = 1e-5;
pause
clc
% 调用 TRAINGDM 算法训练 BP 网络
[net,tr]=train(net,PN,TN);
pause
clc
% 对 BP 网络进行仿真
A = sim(net,P)
% 计算仿真误差
E = T-A
MSE=mse(E)
pause
clc
echo off |
|