Clear Filters
Clear Filters

How to handle a special case of missing data in Neural Networks?

2 views (last 30 days)
I need to train a classifier with a dataset composed of events that occur for only a subset of my records. For instance, suppose there are 100 records. Let Event 1 occur for all records, Event 2 occur for records 1:50, and Event 3 occur for records 51:100. Suppose each Event has 1 dimension of data. So I have a dataset of 3 columns with column 2 and 3 have 50 NaNs each. These records are empty because there is no data. I do not want MATALB to attempt to estimate their values. I would like to build a model that allows for these values to be empty.
I have found one option that forces the bias terms for your connections to be zero, in which case I could make all my missing records zero. However, the non-missing values sometimes have a magnitude of zero and so for these cases the bias needs to be non-zero.
Is there a way to make each input to a neural network two-dimensional, the first dimension being the training data and the second value a 0 or 1 indicating whether to overide the output to be 0 and to have the back-propogaiton ignore that branch of the node?
My actual dataset is high-dimensional with a complex collection of overlapping events. I have built a custom MAP classifier that accounts for the particular nature of the data. I want to compare its performance with a deep ANN and with some other clustering technique. Accordingly, I will have this same quesiton for something like KNN.

Accepted Answer

David Willingham
David Willingham on 1 Sep 2021
Hi Miles,
I'd recommend adding additional 2 columns that indicate when Event 2 & 3 are active. I.e. the first column will have a 1 for when Event 2 is active, 0 when it's not. And the next column has the same for Event 3.

More Answers (0)




Community Treasure Hunt

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

Start Hunting!