以下是交通流量预测的,请问各位大神怎么用自己的数据来替代这个从数据库中下载的数据?自己的数据是开始这些数据,求指教!!!
55.5306 0 1000;
55.8821 2 1000;
56.2303 4 1000;
56.5795 6 1000;
56.9285 8 1000;
57.2766 10 1000;
57.626 12 1000;
57.9718 14 1000;
58.3186 16 1000;
58.6652 18 1000;
59.011 20 1000;
59.3566 22 1000;
59.7042 24 1000;
60.0487 26 1000;
60.3942 28 1000;
60.7393 30 1000;
61.0839 32 1000;
61.4298 34 1000;
61.7736 36 1000;
62.1153 38 1000;
62.4581 40 1000;
62.8004 42 1000;
63.1424 44 1000;
63.4855 46 1000;
63.8247 48 1000;
65.5267 58 1000;
64.1652 50 1000;
49.7254 0 900;
50.3483 4 900;
50.6599 6 900;
50.9712 8 900;
51.2802 10 900;
51.5906 12 900;
51.9004 14 900;
52.2082 16 900;
52.5174 18 900;
52.8259 20 900;
53.1325 22 900;
53.4401 24 900;
53.7475 26 900;
54.0542 28 900;
54.3588 30 900;
54.6648 32 900;
54.9717 34 900;
55.2767 36 900;
55.5831 38 900;
55.8888 40 900;
56.1925 42 900;
56.4974 44 900;
56.8018 46 900;
57.1059 48 900;
57.4077 50 900;
57.7108 52 900;
58.0135 54 900;
58.3139 56 900;
58.6155 58 900;
43.9219 0 800;
44.194 2 800;
44.4678 4 800;
44.7405 6 800;
45.0144 8 800;
45.2861 10 800;
45.5576 12 800;
45.8302 14 800;
46.1007 16 800;
46.3726 18 800;
46.6423 20 800;
46.9117 22 800;
47.1822 24 800;
47.4507 26 800;
47.9878 30 800;
48.2549 32 800;
48.5233 34 800;
48.7909 36 800;
49.0602 38 800;
49.3273 40 800;
49.594 42 800;
49.862 44 800;
50.1278 46 800;
50.3949 48 800;
50.6599 50 800;
50.9243 52 800;
51.1902 54 800;
51.4537 56 800;
51.7185 58 800;
%从数据库中下载数据
load traffic_flux input output input_test output_test
%网络结构初始化
M=4;
N=1;
n=6;
%权值和参数学习速率
lr1=0.01;
lr2=0.001;
maxgen=100; %网络迭代学习次数
%网络权值初始化
Wjk=randn(n,M);
Wij=randn(N,n);
a=randn(1,n);
b=randn(1,n);
%权值学习增量初始化
d_Wjk=zeros(n,M);
d_Wij=zeros(N.n);
d_a=zeros(1,n);
d_b=zeros(1,n);
%训练数据归一化
[inputn,inputps]=mapminmax(input');
[outputn,outputps]=mapminmax(output');
inputn=inputn';
outputn=outputn';
%网络训练
for i=1:maxgen
gerror(i)=0;%记录每次误差
%网络训练
for kk=1:size(input,1)
%提取输入输出数据
x=inputn(kk,:);
yqw=outputn(kk,:);
%网络预测输出
for j=1:n
for k=1:M
net(j)=net(j)+Wjk(j,k)*x(k);
net_ab(j)=(net(j)-b(j))/a(j);
end
temp=mymorlet(net_ab(j));
for k=1:N
y(k)=y(k)+Wij(k,j)*temp;
end
end
%误差积累
error(i)=error(i)+sum(abs(yqw-y));
%权值修正
for j=1:n
%计算d_Wij(Wij修正值)
temp=mymorlet(net_ab(j));
for k=1:N
d_Wij(k,j)=d+Wij(k,j)-(yqw(k)-y(k))*temp;
end
%计算d_Wjk(Wjk修正值)
temp=d_mymorlet(net_ab(j));
for k=1:M
for l=1:N
d_Wjk(j,k)=d_Wjk(j,k)+(yqw(l)-y(l))*Wij(l,j);
end
%计算d_b(b修正值)
for k=1:N
d_a(j)=d_a(j)+(yqw(k)-y(k))*Wij(k,j);
end
d_a(j)=d_a(j)*temp*((net(j)-b(j))/b(j))/a(j);
end
%权值参数更新
Wij=Wij-lr1*d_Wij;
Wjk=Wjk-lr1*d_Wjk;
b=b-lr2*d_b;
a=a-lr2*d_a;
d_Wjk=zeros(n,M);
d_Wij=zeros(N,n);
d_a=zeros(1,n);
d_b=zeros(1,n);
y=zeros(1,N);
net=zeros(1,n);
net_ab=zeros(1,n);
end
end
%预测输入归一化
x=mapminmax('apply',input_test',inputps);
x=x';
%网络预测
for i=1:92;
x_test=x(i,:);
for j=1:1:n
for k=1:1:M
net(j)=net(j)+Wjk(j,k)*x_test(k);
net_ab(j)=(net(j)-b(j))/a(j);
end
temp=mymorlet(net_ab(j));
for k=1:N
y(k)=y(k)+Wij(k,j)*temp;
end
end
yuce(i)=y(k); %预测结果记录
y=zeros(1,N); %输出节点初始化
net=zeros(1,n); %隐含节点初始化
net_ab=zeros(1,n); %隐含几点初始化
end
%网络预测反归一化
ynn=mapminmax('reverse',yuce,outputps);
figure(1)
plot(ynn,'r:')
hold on
title('预测交通流量','fontsize',12)
legend('预测交通流量','实际交通流量')
xlabel('时间点')
ylabel('交通流量')