0

NARX net をトレーニングした後、独立したテスト セット「testX'」でモデルを評価したいのですが、エラーが返されます。forecastLoad = sim(net, testX')' でモデルをテストしています。遅延を追加する必要がありますか?テストセットでも? どこで間違いを犯しているのかわかりません。

%Create training set

trainInd = data.NumDate < datenum('2008-01-01');
trainX = X(trainInd,:);
trainY = data.SYSLoad(trainInd);

% Create test set to test later
testInd = data.NumDate >= datenum('2008-01-01');
testX = X(testInd,:);
testY = data.SYSLoad(testInd);
testDates = dates(testInd);

%Neural network

X = tonndata(trainX,true,false);
T = tonndata(trainY,true,false);

% Choose a Training Function

trainFcn = 'trainlm';  % Levenberg-Marquardt backpropagation.

% Create a Nonlinear Autoregressive Network with External Input
inputDelays = 1:25;
feedbackDelays = 1:25;
hiddenLayerSize = 10;
net = narxnet(inputDelays,feedbackDelays,hiddenLayerSize,'open',trainFcn);

% Prepare the Data for Training and Simulation

[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)

%% Forecast using Neural Network Model
% Once the model is built, perform a forecast on the independent test set. 
load Data\testSet
forecastLoad = sim(net, testX')';
4

0 に答える 0