Why I picked Random Forest over XGBoost for the churn model
2026-04
Gradient boosting almost always wins the leaderboard conversation, so picking Random Forest for the churn model needs justifying. The dataset was 10,000 rows of banking data — not small, but not big enough that boosting's extra capacity was going to matter more than how easy the result was to explain.
The whole point of the project was surfacing which signals predict churn, for an audience that cares about the 'why' as much as the accuracy number. Random Forest's feature importances are simple to compute and simple to defend in a conversation — you can point at age, product count, and balance and say 'these three move the needle,' without hedging about interaction effects buried in a boosted ensemble.
I also wanted a model that wouldn't need careful early-stopping and learning-rate tuning to avoid overfitting on a dataset this size. Random Forest's bagging is comparatively forgiving — with a proper train/validation/test split and feature scaling, it got to a 0.86 ROC-AUC without much hyperparameter babysitting.
That's a deliberate trade, not a claim that Random Forest is universally better. If this were a live pipeline with millions of rows and a pure accuracy mandate, I'd reach for XGBoost or LightGBM and spend the tuning budget. For a one-shot analysis meant to hand stakeholders a clear, defensible story, the simpler model was the right call.
Next time I revisit this dataset, the interesting experiment is running both models side by side and quantifying exactly how much AUC the added complexity buys — right now that's an assumption, not a measured trade-off.
/Related project
Bank Customer Churn Prediction (Personal Project, April 2026)