← Selected workCase study /02

Predictive analytics · Python

Turning churn predictions into business decisions.

Can a churn model produce a useful retention strategy instead of another probability score?

Role

Analysis, feature engineering, and model evaluation

Format

Independent project

Tools

Python · Pandas · scikit-learn · LightGBM · PyCaret

10,000Customers analysed
~20%Churn rate
6Models compared
0.63Best F1 score

01 / The problem

I analyzed 10,000 retail-banking customers with a churn rate of roughly 20%. The project connected model performance to specific retention actions instead of stopping at a ranked model table.

The business needed enough recall to find at-risk customers, but low precision would waste outreach. No single metric could decide that trade-off without the campaign context.

02 / The approach

Build the evaluation around the decision.

  1. 01

    Explored churn patterns across age, geography, balance, activity, and product use.

  2. 02

    Compared six classification models with five-fold cross-validation.

  3. 03

    Created behavioural features such as product usage, engagement, and balance-to-salary ratio.

  4. 04

    Used PyCaret as a second check on the manually built pipeline.

03 / The result

0.63Random Forest F1
0.68Recall on the test set
6Models compared

Age, number of products, activity, and balance were the strongest signals. The practical output was a set of targeted retention ideas and a plan for ranking customers by intervention priority.

04 / What I would do next

  • Tune the threshold around campaign cost and retention value.
  • Add recent activity trends instead of relying on a static snapshot.
  • Track whether outreach changes churn, not only whether the model predicts it.
Next case studyOAS retirement strategy simulation