Binary Classification with patternnet - wrong output

5 次查看(过去 30 天)
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 :)

回答(1 个)

Anshika Chaurasia
Anshika Chaurasia 2020-9-28
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
  1 个评论
Vincent Kelber
Vincent Kelber 2020-9-29
编辑:Vincent Kelber 2020-9-29
Hi Anshika,
yes you are absolutely right. And that is one oportunity, yes. But the goal i want to achieve (to simplify the model) is not covered with that. Is there no other possibility to do that inside the model?
Thanks, Vinc

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by