I have trained my time series NARX NN using 5*7875 inputs and 1*7875 target values. How do I make predictions for 5*10 new input values ?

2 次查看(过去 30 天)
I have trained my time series NARX NN using 5*7875 inputs and 1*7875 target values. How do I make predictions for 5*10 new input values ?

回答(1 个)

the cyclist
the cyclist 2023-7-29
编辑:the cyclist 2023-7-30
You don't describe the code you used in any detail, so it is not possible to be certain, but if you did something like what is described in this documentation page to build your NN, then you can build a closed-loop network with
[netc,Xic,Aic] = closeloop(net,Xf,Af);
and make predictions with that network using
Yc = netc(XPredict,Xic,Aic)
where XPredict stores your new input values.
If that page doesn't help you, I suggest your share your code. Expecting us to guess from a one-sentence description is not the most efficient way to get answers here.
  2 个评论
HABILA
HABILA 2023-7-30
% Inputs - input time series.
% Target - feedback time series.
X = tonndata(Inputs,true,false);
T = tonndata(Target,true,false);
trainFcn = 'trainlm'; % Levenberg-Marquardt backpropagation.
% Create a Nonlinear Autoregressive Network with External Input
inputDelays = 1:2;
feedbackDelays = 1:2;
hiddenLayerSize = 10;
net = narxnet(inputDelays,feedbackDelays,hiddenLayerSize,'open',trainFcn);
[x,xi,ai,t] = preparets(net,X,{},T);
% Setup Division of Data for Training, Validation, Testing
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
% Train the Network
[net,tr] = train(net,x,t,xi,ai);
% Test the Network
y = net(x,xi,ai);
e = gsubtract(t,y);
performance = perform(net,t,y)
% View the Network
view(net)
% Plots
% Closed Loop Network
% Use this network to do multi-step prediction.
% The function CLOSELOOP replaces the feedback input with a direct
% connection from the output layer.
netc = closeloop(net);
netc.name = [net.name ' - Closed Loop'];
view(netc)
[xc,xic,aic,tc] = preparets(netc,X,{},T);
yc = netc(xc,xic,aic);
closedLoopPerformance = perform(net,tc,yc)
% Step-Ahead Prediction Network
nets = removedelay(net);
nets.name = [net.name ' - Predict One Step Ahead'];
view(nets)
[xs,xis,ais,ts] = preparets(nets,X,{},T);
ys = nets(xs,xis,ais);
stepAheadPerformance = perform(nets,ts,ys)
The above is my code where I have trained my NN. Now I want to predict output using new input data
the cyclist
the cyclist 2023-7-30
According to the documentation (specifically the part I quoted in my answer), it looks like
prediction_for_new_input_data = netc(new_input_data,Xic,Aic)
does what you want.
I have not used this toolbox, so I am just quoting the documenation.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by