Case study

AnalysisPythonPandasscikit-learnSQLMatplotlib

Customer Churn Analysis & Model

End-to-end churn analysis on 90K telecom customers: EDA, feature engineering, and a gradient-boosted model reaching 0.86 ROC-AUC — plus the 'why' behind who leaves.

Case study
Variation 1/3
Question

What would a rigorous second look at customer churn & actually uncover?

Approach

Using Python, Pandas, scikit-learn, SQL, and Matplotlib, the data was explored and analyzed in depth — end-to-end churn analysis on 90K telecom customers: EDA, feature engineering, and a gradient-boosted model reaching 0.86 ROC-AUC —…

Result

End-to-end churn analysis on 90K telecom customers: EDA, feature engineering, and a gradient-boosted model reaching 0.86 ROC-AUC — plus the 'why' behind who leaves.

Hover a row to edit · changes save to your portfolio

Question

Which customers are about to leave, and what actually drives it?

Approach

  • Cleaned and joined 3 source tables in SQL
  • Engineered tenure, contract, and support-ticket features
  • Compared logistic regression vs. XGBoost with stratified CV

Result

XGBoost hit 0.86 ROC-AUC. SHAP showed month-to-month contracts and early support tickets were the strongest churn signals — feeding a targeted retention offer that the CS team piloted.