I want to learn from features that may have some missing informations. The value of the variable that's missing is related to the reason it's missing (MNAR)
To better understand my case, here is an example :
I want to learn a model for voice recognition. When using the model I'll know who will be speaking.
I have training data for those speakers, but I also have other data with speakers that will not use the model.
I don't want to add features for those speakers, only for those that will use the model.
How can I process the inputs before training the neural network without risking to damage the performance of the end users ?
For now I intend to use this method :
Each end user, for wich I know the identity, will have a dedicated feature. When training on speaker without dedicated feature :
- A feature that represent "have dedicated identity feature" will be set to -1.
- All identity features will be put to 0.
For example :
End user 1 → [1 -1 -1 ... 1]
End user 2 → [-1 1 -1 ... 1]
End user 2 → [-1 -1 1 ... 1]
speakers only for training → [0 0 0 ... -1]
Is this the right thing to do ? Is there a better way ?
P.S. - I can only modify the inputs, the neural network's architecture cannot be modified, so I can't use things like dropout.