我有一个数据集,我分成:
- 训练:预测器 X_TR(14 个变量中的 1028 条记录)和 Y_TR(1028 条记录单变量)
- 应用:X_APP (115 x 14), Y_APP (115x1),
其中每条记录是一个时间步长 t。
我的目标是构建一个 NN 模型,该模型使用直到 t 的任何历史信息来预测 Y(t+1),即Y(T+1) = f(X(t),X(t-1),... ,Y(0),X(t),X(t-1),...,Y(0))。请注意,考虑不超过 10 个时间步长的信息是合理的。根据 mathworks.com/help/nnet/gs/neural-network-time-series-prediction-and-modeling.html,我使用 X_T 和 Y_T 训练了一个 NN。
% Cell arrays inputs for NN
X = tonndata(X_TR,false,false);
T = tonndata(Y_TR,false,false); %output volumes
% training function
trainFcn = 'trainlm'; % Levenberg-Marquardt
% Create NARX
% network parameters
lags = 10;
inputDelays = 1:lags;
feedbackDelays = 1:lags;
hiddenLayerSize = 40;
% construct NARX net
net = narxnet(inputDelays,feedbackDelays,hiddenLayerSize,'open',trainFcn);
%prepare time series
[x,xi,ai,t] = preparets(net,X,{},T);
% Training, Validation, Testing
net.divideParam.trainRatio = 60/100;
net.divideParam.valRatio = 20/100;
net.divideParam.testRatio = 20/100;
% Train the Network
[net,tr] = train(net,x,t,xi,ai);
我不知道如何应用经过训练的模型。假设训练成功,我想将模型应用于数据 X_APP 和 Y_APP 的另一部分,以便预测 Y_APP(t+1)。我怎么能做到?
谢谢你。