Null values as useful information for feature engineering I'm preparing features for a neural network which I'll run in Keras and TensorFlow. The features are generated in Oracle. There I also replace null values. I'm not doing normalization on the database because this depends on the chosen sample. Normalization will be done in Python. For my use case, which is a binary classification problem (fraud detection), the presence of null values also correlates with the target variable. Therefore, I would like to preserve this information for the model.

My proposal would be to create an additional binary column called varName_isnull which encodes the presence of a Null in the varName column. In other aggregated features, this binary column would also be used for example to calculate the number of Null values for a particular grouping (i.e. credit card) per unit of time.

Is my proposal reasonable? Are there any alternative representations and if yes what would be their advantages?
It would depend on the type of model you want to train.
If you are doing a classification model ( Yes/No, 0/1 type of class) then I suggest you use dummy variable generation functions in python. 

I would also recommend that you convert all your other categorical variables into dummy variables in order for your model to take every bit of information into account.

one popular technique in feature engineering is one-hot-encoding to change the nature of your data.

So generally you would create a new variables ( as you have mentionned) that has 2 values :


1 if the variable is NULL
0 if the variable has a non-Null value
Below are some links with nice examples:


https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html

https://jamesrledoux.com/code/dummies

Good luck !