Customer Churn & Financial Retention Platform

An end-to-end customer churn prediction system for banking/retail, built around one central idea: a churn model isn't worth its AUC, it's worth how much money the business stops losing when it's used to decide who to contact.

This page shows the project's results. The methodology, the design decisions and the limitations are documented in the repository's README.

Customer Churn & Financial Retention Platform

Streamlit ROI simulator

Phase 5 — Model comparison: logistic regression vs. XGBoost vs. PyTorch MLP

Model comparison
The animated version below draws each activation's real loss curve frame by frame, with a floating label tracking its current value.
Confusion matrices
The animated version below draws each activation's real loss curve frame by frame, with a floating label tracking its current value.
MLP activation loss curves animated
Metrics for all 3 model families and all 3 activations are persisted to reports/model_comparison.duckdb (tables model_comparison_metrics and mlp_activation_comparison) — a lightweight, SQL-queryable complement to the MLflow tracking/registry that train.py already uses for the production model.
MLP activation loss curves
Metrics for all 3 model families and all 3 activations are persisted to reports/model_comparison.duckdb (tables model_comparison_metrics and mlp_activation_comparison) — a lightweight, SQL-queryable complement to the MLflow tracking/registry that train.py already uses for the production model.
MLP activation metric comparison
Metrics for all 3 model families and all 3 activations are persisted to reports/model_comparison.duckdb (tables model_comparison_metrics and mlp_activation_comparison) — a lightweight, SQL-queryable complement to the MLflow tracking/registry that train.py already uses for the production model.