利用动态神经网络(NAR)做预测时,利用nnstart界面建立好网络后,但不知道怎么做预测,麻烦解读一下。

这是只有输出的网络,训练完后。在我想做预测,不知道接下来该如何编写。:

% Solve an Autoregression Time-Series Problem with a NAR Neural Network

% Script generated by NTSTOOL

% Created Wed Dec 02 17:31:17 CST 2015

%

% This script assumes this variable is defined:

%

%   x0 - feedback time series.

targetSeries = tonndata(x0,false,false);

% Create a Nonlinear Autoregressive Network

feedbackDelays = 1:2;

hiddenLayerSize = 10;

net = narnet(feedbackDelays,hiddenLayerSize);

% Prepare the Data for Training and Simulation

% The function PREPARETS prepares timeseries data for a particular network,

% shifting time by the minimum amount to fill input states and layer states.

% Using PREPARETS allows you to keep your original time series data unchanged, while

% easily customizing it for networks with differing numbers of delays, with

% open loop or closed loop feedback modes.

[inputs,inputStates,layerStates,targets] = preparets(net,{},{},targetSeries);

% 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,inputs,targets,inputStates,layerStates);

% Test the Network

outputs = net(inputs,inputStates,layerStates);

errors = gsubtract(targets,outputs);

performance = perform(net,targets,outputs)

% View the Network

view(net)

% Plots

% Uncomment these lines to enable various plots.

%figure, plotperform(tr)

%figure, plottrainstate(tr)

%figure, plotresponse(targets,outputs)

%figure, ploterrcorr(errors)

%figure, plotinerrcorr(inputs,errors)

% Closed Loop Network

% Use this network to do multi-step prediction.

% The function CLOSELOOP replaces the feedback input with a direct

% connection from the outout layer.

netc = closeloop(net);

[xc,xic,aic,tc] = preparets(netc,{},{},targetSeries);

yc = netc(xc,xic,aic);

perfc = perform(net,tc,yc)

% Early Prediction Network

% For some applications it helps to get the prediction a timestep early.

% The original network returns predicted y(t+1) at the same time it is given y(t+1).

% For some applications such as decision making, it would help to have predicted

% y(t+1) once y(t) is available, but before the actual y(t+1) occurs.

% The network can be made to return its output a timestep early by removing one delay

% so that its minimal tap delay is now 0 instead of 1.  The new network returns the

% same outputs as the original network, but outputs are shifted left one timestep.

nets = removedelay(net);

[xs,xis,ais,ts] = preparets(nets,{},{},targetSeries);

ys = nets(xs,xis,ais);

closedLoopPerformance = perform(net,tc,yc)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐