How to read result of sim using Patternnet ?

I created neural network for binary classification , i have 2 classes and 9 features using an input matrix with a size of [9 981] and target matrix [1 981] . This is my code :
rng(0);
inputs = patientInputs;
targets = patientTargets;
[x,ps] = mapminmax(inputs);
t=targets;
trainFcn = 'trainbr';
% Create a Pattern Recognition Network
hiddenLayerSize =8;
net = patternnet(hiddenLayerSize,trainFcn);
net.divideFcn = 'dividerand'; % Divide data randomly
net.divideMode = 'sample'; % Divide up every sample
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
net.performFcn = 'mse';
net.trainParam.max_fail=6;
% Choose Plot Functions
% For a list of all plot functions type: help nnplot
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ...
'plotconfusion', 'plotroc'};
% Train the Network
net= configure(net,x,t);
[net,tr] = train(net,x,t);
y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)
tind = vec2ind(t);
yind = vec2ind(y);
percentErrors = sum(tind ~= yind)/numel(tind);
% Recalculate Training, Validation and Test Performance
trainTargets = t .* tr.trainMask{1};
valTargets = t .* tr.valMask{1};
testTargets = t .* tr.testMask{1};
trainPerformance = perform(net,trainTargets,y)
valPerformance = perform(net,valTargets,y)
testPerformance = perform(net,testTargets,y)
% View the Network
view(net)
and when i tried to test the neural network with new data using
ptst2 = mapminmax('apply',tst2,ps);
bnewn = sim(net,ptst2);
I don't get the same values like the target i mean 0 or 1 however if i put test data with target 0 i have as a result of bnewn= 0.1835 and with data test having target 1 i got cnewn= 0.816. How can i read this results ? as i understand if it is >0.5 so target=1 else target=0

4 Comments

Why are you making things complicated by including all of those statements that do nothing except replace default values with the same values ???
If you look at the help and doc documentation examples and the modifications I have made (Search the newsgroup using GREG QUICKIE), you will see how uncomplicated it can be.
For more detailed work you can find examples of mine in both the NEWSGROUP and ANSWERS.
Search
greg patternnet
and
greg patternnet tutorial
in particular, for classification/pattern-recognition with c distinct classes, use a target with dimensions [ c N ] where the columns are columns of the unit matrix eye(c) and sum(target) = ones(1,N).
When c=2 you can use [c-1 N ]. However, you just make it a special case and have to use different code.
Make life easy(er)! Check out my tutorials and posts.
Good Luck
Greg !
why did i make it complicated i just made target matrix [1 981] like yo just said When c=2 you can use [c-1 N ]. isn't? and because i have only 2 classes so as i read in matlab doc Classification problems involving only two classes can be represented using either format. The targets can consist of either scalar 1/0 elements or two-element vectors, with one element being 1 and the other element being 0. so as i understand from this it can be like this
[1 1 1 1 1 0 0 0 0]
or like this
[1 1 1 1 0 0 0
0 0 0 0 1 1 1]
and for this part
and when i tried to test the neural network with new data using
ptst2 = mapminmax('apply',tst2,ps);
bnewn = sim(net,ptst2);
Because i applied mapminmax for the input i shouuld apply it for the new data before using sim
You don't need the first equation.
net(newinput) and sim(net,newinput)
AUTOMATICALLY use MAPMINMAX as a default.
Hope this helps.
Greg

Sign in to comment.

 Accepted Answer

Greg Heath
Greg Heath on 29 Jun 2017
Edited: Greg Heath on 30 Jun 2017
For two class classifiers with scalar 0/1 targets
1. Use LOGSIG as the output function
2. The output class index is given by
outputclassindex = round(output)
or
outputclassindex = round(net(input))
3. You can use PURELIN as the output function.
However, that allows output to escape
the [ 0,1] constraint
Hope this helps.
Thank you for formally accepting this answer
Greg

2 Comments

what's the use of this ?
See the revision of my answer.
Hope this helps.
Greg

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Asked:

on 28 Jun 2017

Commented:

on 3 Jul 2017

Community Treasure Hunt

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

Start Hunting!