Best approach for dealing with continuous predictors with missing data in random forests I was thinking about a problem I'm facing: I have wage data that I want to add to my model, but it's incomplete (data for about 70% of my observations). So, I was thinking about two approaches:


*

*Turn it into a categorical variable, based on  intervals, and add a "No information" category.

*Keep it as a continuous variable, fill missings with -100 and add a dummy variable that takes value "1" if there's no information.


Ideally I would like to implement the latter, so I lose less information. My intuition tells me RF might be able to infer between the negative values and the dummy that those observations are different, but I'm not quite sure.
This has arisen several times while developing models, so I'd really appreciate any answers.
Thanks
 A: Your second approach is a good one assuming that there are no true zeroes in the data. What matters is to give the missing values a number more extreme than exists in the dataset; whether that is zero, negative, or positive, all that matters is that it falls outside the data range. 
(Edit: Actually, you can even skip the dummy variable here, it's not actually contributing additional information.
The first approach is inferior in that it needlessly bins the data and thereby throws away potentially useful information. 
A third option is imputation (h/t to rolando2 for the suggestion), which some implementations of random forests can do for you automatically. How useful this is will partly depend on how well wage can be predicted by the other variables in your dataset.
A: What about imputing the missing values? There are various strategies: mean, random values, train a model to predict the missing values, ... In case this is a suitable option for your use case, I recommend reading this scikit-learn documentation page about the imputation of missing values.
A: Another option is possible if you scale/normalize your data before passing it to your model. If you scale your data to be between say 0-1, then you could fill missing values with something like -1. This would allow you to avoid adding another column, but should probably only be done if you are also normalizing all of your other continuous features.
