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.
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
- 01
Prepare features
Clean and encode the customer/campaign data.
- 02
Split data
Split the data for training and evaluation.
- 03
Train models
Train baseline and stronger classification models.
- 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.