Missing means something
Missingness carries information. The pattern of which rows have missing values often correlates with the target. Adding a binary was_missing indicator beside the imputed value preserves that signal.
Imputation strategies, ranked by lift
- Domain-specific fill (zero for "never bought", -1 for "unknown").
- Median or mode imputation with a missingness indicator.
- Iterative or KNN imputation for tabular with strong feature correlations.
- Native missing-handling in tree models (lightgbm, xgboost) — let them split on missing.
Outliers as evidence
Outliers are sometimes data-entry bugs and sometimes the most important rows in the dataset. Decide per column whether to clip, log-transform, model-as-is, or split into a separate model. Removing outliers blindly throws away the customers who matter most.