Customer churn is one of the biggest challenges faced by telecom companies. Retaining existing customers is significantly more cost-effective than acquiring new ones.
This project predicts whether a telecom customer is likely to Stay or Churn using Machine Learning.
The project covers the complete Machine Learning lifecycle including:
- Data Cleaning
- Exploratory Data Analysis
- Feature Engineering
- Model Training
- Model Evaluation
- Streamlit Deployment
- Business Recommendation System
- Prediction Report Generation
Dataset: IBM Telco Customer Churn Dataset
The dataset contains customer information such as:
- Gender
- Senior Citizen
- Internet Service
- Contract Type
- Monthly Charges
- Total Charges
- Payment Method
- Online Security
- Streaming Services
Target Variable:
Churn
✔ Data Cleaning
✔ Exploratory Data Analysis
✔ Feature Engineering
✔ Missing Value Handling
✔ One-Hot Encoding
✔ Feature Scaling
✔ Multiple Machine Learning Models
✔ Hyperparameter Tuning
✔ Customer Churn Prediction
✔ Prediction Probability
✔ Business Recommendations
✔ Feature Importance Visualization
✔ Download Prediction Report
✔ Interactive Streamlit Dashboard
| Category | Technology |
|---|---|
| Language | Python |
| Data Analysis | Pandas, NumPy |
| Visualization | Matplotlib, Seaborn |
| Machine Learning | Scikit-Learn |
| Model Saving | Joblib |
| Web Framework | Streamlit |
| IDE | VS Code |
Telecom-Customer-Churn-Prediction/
│
├── models/
│ ├── best_model.pkl
│ ├── scaler.pkl
│ ├── model_columns.pkl
│ └── target_encoder.pkl
│
├── notebooks/
│ ├── EDA.ipynb
│ ├── Preprocessing.ipynb
│ ├── Model_Training.ipynb
│ └── Model_Evaluation.ipynb
│
├── outputs/
│ ├── churn_distribution.png
│ ├── feature_importance.png
│ ├── confusion_matrix.png
│ ├── ROC_curve.png
│ └── ...
│
├── src/
│ ├── load_data.py
│ ├── preprocess.py
│ ├── train_model.py
│ ├── evaluate.py
│ └── predict.py
│
├── streamlit_app/
│ └── app.py
│
├── reports/
│
├── requirements.txt
│
└── README.md
Dataset
↓
Data Cleaning
↓
EDA
↓
Preprocessing
↓
Encoding
↓
Scaling
↓
Train/Test Split
↓
Model Training
↓
Model Evaluation
↓
Model Selection
↓
Save Model
↓
Streamlit Deployment
| Metric | Score |
|---|---|
| Accuracy | 80%+ |
| Precision | High |
| Recall | High |
| F1 Score | High |
The application allows users to:
- Enter customer details
- Predict churn probability
- View Stay vs Churn percentages
- Get business recommendations
- View important features
- Download prediction report
Clone the repository
git clone https://github.com/HarshitKumarModi/Telecom-Customer-Churn-Prediction.gitGo inside project
cd Telecom-Customer-Churn-PredictionInstall dependencies
pip install -r requirements.txtRun Streamlit
streamlit run streamlit_app/app.py- Deep Learning Models
- XGBoost Integration
- Explainable AI (SHAP)
- Docker Deployment
- Cloud Deployment
- Customer Lifetime Value Prediction
Harshit Kumar Modi
B.Tech Computer Science Engineering
VIT Bhopal University
GitHub: https://github.com/HarshitKumarModi
LinkedIn: https://linkedin.com/in/harshitkumarmodi




