Hello @aster94, some algorithms require no missing values so we have to fill something in, but XGBoost doesn’t require that (XGBoost FAQ).
As to whether to fill in, if the missingness has something to do with the target variable (e.g. some tests are skipped because of prior diagnosis), then the missingness itself has predictability and so should remain missing. In your example when it is due to forgetting to write it down which is a random event, if it is too often then I would consider to drop the feature, otherwise, I would take advantage of xgboost’s ability to handle missing value and keep it as is. However, if the “forgetting” is biased - e.g. always forget to write down senior patients’ age, then I would still drop the feature.
By now, I think my message is that we would better have a feature-by-feature examination as to how to deal with missing values, and it is particularly important when we have a small dataset so that each missing value’s significance is large.
Cheers!
Raymond