1. 【神经网络时间序列】请教NAR网络预测问题,谢谢
NAR网络是只有y(t),NARX网络是有x(t)和y(t).
对于NAR网络来说,其只能够输出相对于延迟向量的下一个值。故需要用循环不断更新集合,把时间步往前推进。
T=tonndata(force,false,false); %输入和输出矩阵须为cell类型的矩阵,且不能用num2cell来转换,如果使用二维cell矩阵,将会被认为是两个输入从而不能训练.假设force数据集只有50个(一行)。
force_raw=T(1:30); %创造一个1*30的Xi,与延迟向量1:30对应起来。为已知矩阵。
for j=1:50 %y1的前20个是对照着force里面第31个到50个,加上可以预测后面30个数据。
y1(j)=net(T(10),force_raw); %这里还需要大神指教,T(10)里面是当前矩阵,数字可以任意取,结果都一样。只是为了输出一维矩阵
force_raw=[force_raw(2:end),y1(j)]; %更新得到新的已知矩阵,为2,3~,30,31,下一步第一行应该是得到第43个。 不断更新即可得到预测值。