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 関数 (青) によって提供されるターゲットは、前に発生します! したがって、実際に予測していることを示しているわけではありません。