Binary Classification with patternnet - wrong output
5 views (last 30 days)
Show older comments
Hi together,
what i want to do, is to train a neural network (patternnet) classificator. Inputs are the size 10000x7, so 10.000 samples and 7 inputs.
Output is logical (10.000x1).
My problem is, if i use the patternnet function with a HiddenLayerSize > [], my output is no longer binary, than in a range between [0,1].
Here is my code:
hiddenLayerSize = [10,10,10];
net = patternnet(hiddenLayerSize, method);
net = configure(net, in_train', out_train');
net.input.processFcns = {'removeconstantrows','mapminmax'};
net.output.processFcns = {'removeconstantrows','mapminmax'};
net.trainParam.goal = gl;
net.divideFcn = divider; % Divide data randomly
net.divideMode = divMod; % Divide up every sample
net.divideParam.trainRatio = x/100;
net.divideParam.valRatio = y/100;
net.divideParam.testRatio = z/100;
net.performFcn = pfFcn;
net.trainParam.epochs = epoch;
net.Layers{:}.transferFcn = transfer;
net = train(net,in_train',out_train'
What can i do?
Thanks :)
0 Comments
Answers (1)
Anshika Chaurasia
on 28 Sep 2020
Hello Vincent,
It is my understanding that after training the neural network, the ouput is in range between [0,1] and you want output as logical i.e., {0,1}.
For getting logical output you could apply threshold i.e., if output >= 0.5 then output = 1 or else output = 0.
% Train the Network
[net,tr] = train(net,inputs,targets);
% Test the Network
outputs = net(inputs);
logical_output = zeros(1,10000);
logical_output(outputs >= 0.5) = 1; % applying threshold
See Also
Categories
Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!