How to obtain additional test result in neural network fitting app by using code?

10 views (last 30 days)
Hi,
I am using the neural network fitting app in MATLAB 2024a version.
I used the code to develop the neural network by adding a hidden layer.
When I use this code, it shows the results for training, but I can't get the results for the additional test set as shown in the neural network fitting app.
How can I get it? (e.g. the name of additional test input is "inputtest" and that of additional test output(target) is "outputtes")
I wrote my code below.
% Solve an Input-Output Fitting problem with a Neural Network
% Script generated by Neural Fitting app
% Created 09-Jun-2024 21:04:21
%
% This script assumes these variables are defined:
%
% bodyfatInputs - input data.
% bodyfatTargets - target data.
x = bodyfatInputs;
t = bodyfatTargets;
% Choose a Training Function
% For a list of all training functions type: help nntrain
% 'trainlm' is usually fastest.
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory. Suitable in low memory situations.
trainFcn = 'trainlm'; % Levenberg-Marquardt backpropagation.
% Create a Fitting Network
hiddenLayer1Size = 10;
hiddenLayer2Size = 10;
net = fitnet([hiddenLayer1Size, hiddenLayer2Size],trainFcn);
% 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);
% Test the Network
y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)
% View the Network
view(net)
% Plots
% Uncomment these lines to enable various plots.
%figure, plotperform(tr)
%figure, plottrainstate(tr)
%figure, ploterrhist(e)
%figure, plotregression(t,y)
%figure, plotfit(net,x,t)

Answers (1)

Ayush Aniket
Ayush Aniket on 10 Jun 2024
You can use the 'net' object i.e your trained neural network to predict the outputs for the additional test data 'inputtest' and compare it with the expected output 'outputts'. The code is as follows:
% Evaluate the Network on Additional Test Set
yTest = net(inputtest); % Compute the network's output on the additional test set
eTest = gsubtract(outputts, yTest); % Compute the error between the actual and predicted outputs
% Compute Performance on the Additional Test Set
% Using the same performance function used during training (e.g., mean squared error)
performanceTest = perform(net, outputts, yTest);
% Display the performance
fprintf('Performance on the additional test set: %f\n', performanceTest);
Refer to the following documentation link to read about the process of 'Testing Network' using code:

Categories

Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange

Products


Release

R2024a

Community Treasure Hunt

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

Start Hunting!