我正在尝试使用 Matlab 提供的 NARX 神经网络解决方案来解决时间序列问题。我试图了解如何预测实际值,但我得到的结果几乎是完美的!错误是如此之小,以至于我不确定我是否真的在预测。我只是想确保我做的一切都是正确的!
基本上,我使用 GUI 解决方案用一些样本训练网络。然后我使用以下脚本用新样本测试神经网络:
X = num2cell(open2(1:end))'; % input
T = num2cell(close2(1:end))'; % this is the output I should get
net = removedelay(net);
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T);
Y = net(Xs,Xi,Ai);
plotresponse(Ts,Y)
view(net)
Y = cell2mat(Y);
T = cell2mat(T);
sizey = length(Y);
sizet = length(T);
T = T(1:sizey);
figure
plot(1:sizey,T,1:sizey,Y)
我得到的图表几乎与原始目标时间序列函数相同。误差非常小,唯一的区别是图 (Y) 向左移动了 2 个样本。但是,我真的在预测吗?
这是图表的一部分:
提前致谢!
更新:实际的预测图向右而不是向左移动。preparets 函数(蓝色)提供的目标发生在之前!所以它并没有表明它实际上是在预测。