The Expresso Churn Prediction App is a machine learning-based web application designed to predict customer churn for Expresso, a telecommunications service provider in Africa. This project demonstrates proficiency in data preprocessing, machine learning model training, and deploying interactive web applications using Streamlit.
# Expresso Churn Prediction
## Overview
This repository predicts customer churn for Expresso telecom customers and serves predictions through a Streamlit UI.
The project has been revamped for portfolio quality with a focus on:
- Reproducible training and evaluation
- Leakage-safe preprocessing using a scikit-learn pipeline
- Local trusted model artifact loading in the app
- Clear metrics export for reporting
## Project Structure
```
EXPRESSO_CHURN_PREDICTION_APP/
├── requirements.txt # Root-level pinned dependencies
├── training_code.py # Root-level shortcut to run training
├── APP/
│ ├── app.py # Streamlit inference app
│ └── requirements.txt # App-level pinned dependencies
├── DATA/
│ ├── dataset # Contains dataset download link
│ └── Expresso_churn_dataset.csv # Raw dataset (download separately)
├── MODEL/
│ ├── churn_model_bundle.joblib # Generated by training script
│ └── metrics.json # Generated by training script
├── SCRIPTS/
│ ├── data_cleaning.py # Optional data cleaning step
│ └── training_code.py # Full training pipeline
└── README.md
```
## Dataset
**Important:** Before running the training pipeline, you must download the Expresso dataset.
1. Download the dataset from this link:
Expresso Churn Dataset (Google Drive)
2. Save the downloaded file as:
```
DATA/Expresso_churn_dataset.csv
```
3. Verify the file exists in the DATA folder before running the training script.
## Installation
### 1. Download Dataset First (Required)
Before installing or running anything, **download the dataset**:
- Go to: Expresso Churn Dataset (Google Drive)
- Save the file as: `DATA/Expresso_churn_dataset.csv`
### 2. Install Dependencies
From the repository root, choose one:
**Option A (Recommended):**
```bash
pip install -r requirements.txt
```
**Option B (Alternative):**
```bash
pip install -r APP/requirements.txt
``` …