Customer churn prediction for a telecom client , AnalystLab Africa ML internship project.
# Telco Customer Churn Prediction
Machine learning project completed as part of the **AnalystLab Africa Machine Learning Internship Programme**.
## Business problem
ABC Communications Ltd (client scenario) wants to predict which customers are likely to churn — cancel their service — *before* they actually leave, so the business can step in with a retention offer while there's still time. Keeping an existing customer is far cheaper than replacing a lost one, which is why this prediction has real business value.
## Dataset
Telco Customer Churn — 7,043 customers, 21 features. Originally an IBM sample dataset, distributed via Kaggle.
## Project scope — Week 1: Problem Framing & Data Understanding
This week's objective is **not** to build a model. The goal is to understand the business problem, inspect the dataset, and prepare for model development in later weeks.
### What's in this repository so far
| File | Description |
|---|---|
| `Week1_Customer_Churn_Analysis.ipynb` | Dataset inspection notebook — structure, missing values, duplicates, target distribution, descriptive statistics |
| `Telco-Customer-Churn.csv` | The raw dataset |
### Key findings so far
- 7,043 rows, 21 columns, zero duplicate records
- `TotalCharges` is stored as text and hides 11 blank entries — all belong to brand-new customers (0 months tenure) who haven't been billed yet, not a data error
- Target variable `Churn` is imbalanced: 73.5% No / 26.5% Yes, meaning plain accuracy won't be a fair evaluation metric later
- Problem type: **binary classification** (`Churn`: Yes / No)
## Tech stack
Python, pandas, Jupyter Notebook
## Author
Marie Claire Niyomugenga — Mastercard Foundation Scholar, University of Rwanda (Electronics & Telecommunication Engineering)
---
*This repository will grow as the remaining parts of the Week 1 assignment — business research, exploratory analysis, and model planning — are completed.*