Suppose we have a MLP to be trained with a set of feature vectors, such that some of those vectors contain unknown values. How should I handle that? Is the MLP capable of this?
Suppose the training vectors are :
(1.0, 3.4, unknown, 2.0), (3.1, unknown, 1.2, 0.1), (2.1,3.4,1.2,4.5), ...
I'm using FANN.
You are referring to the missing data problem (Little. and Rubin 1987). This is not something the neural network classifier can handle well on its own. You should preprocess your data and try to fill in the missing data either by a simple statistically estimated value based conditionally on the known instance variable values (1) or a more advanced algorithm (2).
instance1 = 0, 0, 1, 0, 1
instance2 = 0, 0, 1, 0, 1
instance3 = 1, 1, 1, 0, 0
instanceX = 1, 1, 1, 0, ?
# The statistical approach
We can see that instanceX shares a lot of instance3's features,
thus we will set the unknown variable accoring to instance3's defined value: 0
# The mean
We could calculate the dataset's mean value for this variable and
use the calculated value: 1
This is a more sophisticated algorithm for finding approximate estimates for the missing data. Read a introduction to the algorithm here.