Logo Lanfrica

ajilatosin/Churn-prediction

Domain:

socioeconomic

Record type:

software
Creator:
aji
Host:
This project presents an end-to-end machine learning pipeline to predict customer churn for Expresso, a telecommunications company in Senegal. # Customer Churn Prediction for Expresso Telecom --- ## Project Overview This project presents an end-to-end machine learning pipeline to predict customer churn for Expresso, a telecommunications company in Senegal. The goal is to identify customers who are likely to churn, enabling the business to take proactive retention actions. The workflow includes: - Data preprocessing - Exploratory Data Analysis (EDA) - Handling severe class imbalance - Training a Decision Tree classifier - Deploying predictions through a Streamlit dashboard The model achieved **99.94% accuracy** on the balanced test set after oversampling the minority class. --- ## Table of Contents - Project Overview - Dataset - Workflow - Data Loading & Initial Inspection - Data Preprocessing - Exploratory Data Analysis (EDA) - Feature Engineering & Encoding - Handling Class Imbalance - Model Training & Evaluation - Model Serialization - Streamlit Dashboard - Installation & Usage - Results - Future Improvements --- ## Dataset The dataset (`Expresso_churn_dataset.csv`) contains **2,154,048 rows** and **19 columns** from the Expresso Churn Prediction challenge. After removing missing values and irrelevant columns, **10,839 records** remained for modeling. ### Key Features | Feature | Description | |---|---| | `TENURE` | Customer loyalty period | | `MONTANT` | Top-up amount | | `REVENUE` | Total customer revenue | | `FREQUENCE_RECH` | Frequency of recharge | | `DATA_VOLUME` | Data volume consumed | | `ON_NET` / `ORANGE` | On-net and off-net calls | | `REGION` | Customer geographic region | | `MRG` | Migration flag | | `TOP_PACK` | Most used telecom package | ### Target Variable ```python CHURN ``` - `1` = churned - `0` = not churned --- ## Workflow The complete pipeline is implemented in a Jupyter Notebook. --- ## 1. Data Loading & Initial Inspection ### Steps Performed - Load dataset using `pandas` - Inspect: - Data types - Missing values - Dataset dimensions - Memory usage - D …