How do I do classification from feature vector with Deep Network Designer

1 view (last 30 days)
I want to use Deep Network Designer to design a network which inputs a feature vector and outputs a classification. Simple case:
Data: 10000 labeled observations each with 5 features i.e. available
data matrix: X = [observations , features] -> size(X) = [ 10000 , 5 ]
and
label vector: y = [label] -> size(y) = [ 10000 , 1 ].
Classes: A binary classification problem, say class 'A' and class 'B'
What I strugle with is how to use the Deep Network Designer to setup; correct input for the feature vector (only image and sequence input layers are available) and a trainable network with correct output.
Thank you for your time
\P
  2 Comments
Pruthvi Muppavarapu
Pruthvi Muppavarapu on 20 Feb 2019
My understanding is that you want to know how the Deep Network Designer can be used to create a network.
The following documentation might help you understand how the said app works:
Dany
Dany on 20 Feb 2019
@Pruthvi
Thank you for your answer.
Yes, but more specific I want to know how Deep Network Designer can be used to create networks with a vector of features as an input. The designer only has images and sequences as input layers. Maybe the solution is trivial, but it is not for me:).
The image input layer takes inputs of e.g. 28x28x3 - a 28 by 28 RGB image. I have tried to change this input to be 1x1x5 (in correspondance with the example given above), but this gives input/output erros.
\P

Sign in to comment.

Answers (1)

Pruthvi Muppavarapu
Pruthvi Muppavarapu on 21 Feb 2019
Edited: Pruthvi Muppavarapu on 21 Feb 2019
You can use the ImageInputLayer when you have multi dimensional vector of features and the SequenceInputLayer when the vector of features is of single dimension (preferably a row vector).
And it gives error when you try to change the dimensions of a pre-trained model. Otherwise it should work as intended.
Hope this answers your question.
  1 Comment
Dany
Dany on 21 Feb 2019
Again, thank you for your answers!
I have tried to do a small network, but I think that when using the sequenceInputLayer it relates the order of the observations as if they are a time-sequence. at least it wants an LSTM layer after the input layer.
I made this work by setting the output of the LSTM layer to 'last', but I feel this is a hack to make it run, not the actual network I want to build, as this makes it recurrent?.
But as my "sequence" only has one datapoint for each of the 5 features for each observation it might do what I want but it is unclear to me. To make it more clear my input is a
10000X1 cell with each of the 10000 cells containing a
5x1 column vector.
This matches the input in the sequenceInputLayer documentation only there each cell contain a 5x20 cell where the '20' corresponds to 20 timepoints.
If the network is correctly constructed I'm having trouble to get the learning going. When training my network it just stays at 75% accuracy which corresponds to assigning everything to the one class containing 75% of the data.

Sign in to comment.

Categories

Find more on Image Data Workflows in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!