Back to research

Tabular MLCompleted

Bank Subscription Prediction

An early classification project that taught me to look past accuracy

An earlier ML project where I predicted whether a bank customer would subscribe after a marketing campaign and learned why accuracy can be a bad metric for imbalanced data.

My role
ML Project Developer
When
2 months
Context
Earlier Kaggle notebook project
01 / THE OVERVIEW

Who is more likely to subscribe after a bank marketing campaign?

The target classes were imbalanced, which meant a model could report a high accuracy while still doing a poor job on the customers the problem actually cared about.

Working with
Customer and campaign variables
Method
Logistic regression baseline and CatBoost comparison

My contribution

  • Prepared and explored the tabular dataset.
  • Built and compared classification models.
  • Worked with class imbalance and model evaluation.
  • Used ROC-AUC as a more useful evaluation signal than plain accuracy.

Problem & approach

I cleaned and prepared the tabular data, compared classification models, and paid more attention to ROC-AUC and class trade-offs rather than simply choosing whichever model had the highest raw accuracy.

How it works

  1. 01

    Prepare features

    Clean and encode the customer/campaign data.

  2. 02

    Split data

    Split the data for training and evaluation.

  3. 03

    Train models

    Train baseline and stronger classification models.

  4. 04

    Compare rankings

    Compare results using ROC-AUC and other class-aware metrics.

Data & evaluation

Data & inputs

Playground Series S5 E8 bank-marketing data, with categorical variables and an imbalanced subscription target.

How it was evaluated

Saved validation ROC AUC: 0.9078 for logistic regression and 0.9489 for CatBoost. The CatBoost comparison uses a stratified split.

Results & progress

0.949
Recorded validation ROC AUC
0.908
Logistic regression baseline

Subscription likelihood rankings

  • Recorded validation ROC AUC of 0.9489 for CatBoost, compared with 0.9078 for logistic regression.

Limits & lessons

Limitations

  • An earlier learning project on an existing dataset, rather than a deployed banking system. Validation was also used during model selection, so these scores do not measure independent test performance or campaign lift.

What I learned

  • This was one of the projects that taught me that the metric has to match the problem. A model can look impressive on paper while barely solving the useful part of the task.

Next steps

  • If I revisit the project, focus on calibration and error analysis.
Another research projectMNIST Digit Classification