I want to know if neural network (specifically BP network) can handle data with considerable missing attributes (like 50% of the attributes are lost). For instance, I have a set of samples. Each of them has 100 dimensions. However, due to some reason, some dimensions of attribute are missing, and simply has 0.0 values, and each sample has different dimensions lost. I would like to know is it possible to train a neural network on this type of data samples? Additionally, once after a network has been trained, is it possible to generate correct prediction on the testing samples (also has attributes lost as the training samples)? If NN can not deal with this type of data, is there any alternative way can handle this naturally, Thanks.
You can of course train on any data you want. The thing is that the network will learn what you show it.
That is a very important thing to have present: You may want to train a network using measurements or not, using complete or missing data. It doesn't matter, as long as you know what you are doing. I try to give some examples:
Say, you have some noisy data. You want a network to give you a function that resembles (predicts) that function. You may profit from filtering the noisy data first (which may include replacing missing values!), and then train the ANN on it. It will not(!) give you the noisy data after training, but it might give you something better: An approximation of the function without noise.
Let's say you want to classify things. You have a number of features that you think may separate the classes. If there are some samples where a feature has a missing value, you may try to A) Drop that feature at all (if all missing values miss the same feature), B) Drop those particular samples, C) Replace the value by a value that is typical (care!) to the class it belongs to (in which case the ANN would rely on the other features to assign a class.
Depending on the task (you didn't say if you want to classify, approximate a function or something else...) and the amount of data you have, you could think on training only with the complete samples and test with the incomplete ones. This, of course, depends on what exactly is missing.
Depending on the nature of the missing variables, there are techniques for dealing with missing data. I have good experiences with interpolation of continuous variables, for instance.
Also have in mind that backpropagation does not let you train after training: Once you're done with the training, you do not incorporate more examples to improve the performance.