%--用神经网络进行时间序列建模与预测程序
%-(1)预处理
clc;
clear;
%--(2)产生训练样本数据
%--数据来自文件
p=load('郑州pm2.5-4.20.txt')
P=p';
for j=1:543
y(j)=(P(j)-min(P))/(max(P)-min(P)) ; %归一化处理
end
for i=1:529
P1(:,i)=[y(i),y(i+1),y(i+2),y(i+3),y(i+4),y(i+5),y(i+6)]';
T1(i)=y(i+7)
end
net=newff([0 1;0 1;0 1;0 1;0 1;0 1;0 1],[5,1],{'tansig','logsig'},'trainlngd');
net.trainParam.epochs=200;%迭代步数设置为200
net.trainParam.goal=0.001;%训练精度目标设置为0.001
net.trainParam.lr=0.05;%迭代速度设置为0.05
net=train(net,P1,T1);
%---------------------------------RBF网络训练语句
%net=newrb(P1,T1,0,1,350);
%---(4)神经网络计算
t1=sim(net,P1);
%---(5)计算残差
e1=T1-t1;
mse(e1)
%------