Challenge Framing
Churn modeling often starts in notebooks and becomes difficult to reproduce, compare, or operationalize once preprocessing and training logic spread across experiments.
This project emphasizes engineering discipline as much as model quality. The core work was not just fitting a classifier, but structuring the pipeline so preprocessing, evaluation, and inference all remain inspectable.

Case Study
Project Overview
Reworked exploratory notebook experimentation into a cleaner pipeline architecture that separates data preparation, model training, inference, and artifact tracking while preserving reproducibility and reviewability.
Challenge Framing
Churn modeling often starts in notebooks and becomes difficult to reproduce, compare, or operationalize once preprocessing and training logic spread across experiments.
Solution Strategy
I centralized configuration, separated data and training stages, used PySpark for scalable preparation, and logged experiments plus artifacts with MLflow.
Project Highlights
Gallery
Selected screens show the visible product experience and the operational surfaces behind each project. Projects without captured assets keep a structured placeholder until real screenshots are available.
The architecture separates data ingestion, preparation, training, experiment tracking, artifact storage, and inference telemetry into clear workflow layers.
The data pipeline turns raw telco records into model-ready inputs through repeatable cleaning, transformation, and split-generation steps.
The preparation flow normalizes the telco dataset, records schema-level metadata, and produces reusable train and test artifacts.
Training outputs are saved as reproducible artifacts so model runs, preprocessing assets, and evaluation results can be inspected after execution.
Tracked runs keep model parameters, metrics, and artifacts visible across experiments instead of leaving comparison work inside notebooks.
Serialized model outputs and supporting files make the best-performing workflow easier to rerun, review, and promote toward deployment.
Feature importance keeps the strongest churn drivers visible so model behavior can be reviewed beside classification metrics.
The confusion matrix exposes class-level errors, making churn recall and false positives easier to reason about.
ROC analysis adds another model-quality view alongside F1, precision, recall, and holdout classification results.
Tech Stack
ML pipeline engineering, traceability, artifact lineage, experiment management, and model evaluation for imbalanced classification.
Key Features
Cleaning, encoding, scaling, and split generation are orchestrated as pipeline code rather than notebook cells.
Multiple classical baselines stay comparable through consistent evaluation and shared artifact outputs.
MLflow captures model parameters, metrics, processed datasets, and serialized artifacts.
Prediction latency and batch-level analytics are surfaced through a streaming-style inference wrapper.
Architecture
Each layer stays explicit so reviewers can quickly understand where interface, orchestration, persistence, and service responsibilities live.
Raw telco data is transformed into consistent train/test artifacts with PySpark-backed cleaning and feature prep.
Classifiers are trained, evaluated, and versioned with a shared experiment workflow.
Saved models and preprocessing assets are reused for prediction and telemetry logging.
System Flow
The pipeline section keeps the most important engineering steps visible without collapsing them into generic bullet lists.
Load the telco churn dataset and normalize schema-level issues such as incomplete numeric values.
Handle missing values, remove outliers, encode categoricals, and scale key numeric features.
Benchmark classical ML baselines and log metrics, parameters, and artifacts into MLflow.
Load serialized assets for downstream prediction while recording latency and batch-level telemetry.
Timeline
This timeline keeps the implementation story concise: what was framed first, what was hardened next, and what ultimately made the project production-ready.
Moved scattered preparation and evaluation logic into a coherent repository structure.
Created modular data, training, and inference stages with shared configuration.
Added MLflow-based lineage so metrics and model artifacts remain reviewable across runs.
Challenges
Each challenge is tied to a concrete design choice and a specific outcome.
Solution
Centralized logic under scriptable modules and orchestrated pipelines with shared config.
Outcome
Reduced manual repetition and improved auditability.
Solution
Used PySpark for deterministic transformation, then converted to pandas for estimator compatibility.
Outcome
Kept the system scalable without sacrificing model tooling.
Solution
Elevated F1, precision, and recall beside raw accuracy during evaluation and reporting.
Outcome
Made the model evaluation more transparent and technically defensible.
Results
The emphasis here is signal, not decoration: key numbers, verifiable outcomes, and the context needed to interpret them responsibly.
0.845
Best CV F1
Random Forest baseline during notebook benchmarking.
0.735
Holdout Recall
Kept churn detection visible instead of hiding behind accuracy.
80/20
Train/Test Split
Consistent split strategy for reproducible evaluation.
4stages
Pipeline Scope
Data prep, training, evaluation, and inference telemetry.
Key Results
Business Impact
Supports retention-risk analysis with a pipeline that can evolve into batch scoring or service-based predictions.
Shows ML systems maturity through configuration, artifacts, reproducibility, and observability rather than just raw metrics.
Continue