How to determine input and target data for classification in neural network

2 views (last 30 days)
Hi,
I'm working on gait recognition problem, the aim of this study is to be used for user authentication (i.e. authenticate the authorised user of a mobile device and reject the imposters)
I have data of 36 users
I've successfully extracted features which are (36 rows and 143 columns) for each user and store it in a matrix called All_Feat.
(by the way, column represents the number of the extracted features and row represents the number of samples for each feature).
Then, for each user, I divided the matrix (All_Feat) into two matrixes ( Training matrix, and Test matrix ).
The training matrix contains ( 25 rows and 143 columns) while the testing matrix has (11 rows and 143 columns).
In order to differentiate between User1 and the remaining 35 users, User 2 and remaining 35 users, and so on ..... , I'd like to use Neural Network.
Based on what I have read, training Neural Network requires two classes, the first class contains all the training data of genuine user (e.g. User1) and labelled with 1 , while the second class has the training data of imposters labelled as 0 (which is binary classification, 1 for the authorised user and 0 for imposters).
now my question is:
1- i dont know how to create these classes!
2- For example, if I want to train Neural Network for User1, I have these variables, input and target. what should I assign to these variables? should input= Training matrix of User1? Target=Training matrix of all the remaining Users (35 Users)?
I really appreciate any help!

Accepted Answer

Walter Roberson
Walter Roberson on 6 Feb 2017
input should be the features for all of the samples.
target should be 0 for the samples with the genuine user, and 1 for the samples for imposters.
However, for some kinds of neural network, instead target should be [1 0] for the samples for the genuine user, and [0 1] for the samples for imposters.
  13 Comments
Walter Roberson
Walter Roberson on 17 Feb 2017
The resulting target matrix is not all 1. The resulting target matrix is sparse, so it only shows the non-zero entries. You can use
full(target)
to see the 0's and 1's in context.
"does that mean what I have done (in my code) to creat the Target Matrix is wrong"
Given that the first 14 entries belong to one class and the next 144 entries belong to another class, all you need for the target matrix is
target = ind2vec( [ones(1,14),2*ones(1,144)] );
No loops, no "if".
If this gives poor results then either you are not correct about which samples belong to which class, or else your classes are not well separated.
It might help to do feature selection such as pca.
neamah al-naffakh
neamah al-naffakh on 17 Feb 2017
I see :( thank you so much, ok the output of neural network will be two rows and N number of columns!. in order to calculte the Equal Error Rate, which one should I take the first row of the second?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!