Предсказание оттока клиентов телеком-компании с акцентом на бизнес-метрики, а не только на accuracy.
Построить модель, которая заранее выявляет клиентов с высокой вероятностью оттока (Churn), чтобы команда retention могла точечно воздействовать на них до потери LTV.
- Источник: Telco Customer Churn (Kaggle)
- Объём: ~7 000 клиентов, 21 признак (демография, тариф, услуги, платежи)
- Целевая переменная:
Churn(Yes / No), дисбаланс классов ~27% оттока
- EDA — очистка
TotalCharges, удаление записей сtenure = 0, анализ категориальных признаков - Feature engineering — One-Hot Encoding категорий, числовые признаки без масштабирования (для tree-based моделей)
- Сравнение моделей — Dummy → Logistic Regression → Random Forest → XGBoost (5-fold Stratified CV)
- Тюнинг — RandomizedSearchCV по ROC-AUC и отдельная модель с оптимизацией по Recall
- Бизнес-оценка — расчёт ожидаемой прибыли при разных порогах и допущениях (LTV, стоимость контакта, вероятность удержания)
- Интерпретация — SHAP для понимания драйверов оттока
| Модель | ROC-AUC (CV) | Accuracy (test) | Recall (test) |
|---|---|---|---|
| Baseline | 0.50 | — | — |
| Logistic Regression | 0.847 | — | — |
| XGBoost (ROC-AUC) | 0.850 | 0.78 | 0.51 |
| XGBoost (Recall) | 0.847 | 0.79 | 0.76 |
Ключевой инсайт: модель с лучшим ROC-AUC давала отрицательную ожидаемую прибыль (−34.89 $/клиент), тогда как recall-оптимизированная модель — +2.12 $/клиент при заданных бизнес-допущениях.
pandas · scikit-learn · XGBoost · SHAP · matplotlib · seaborn
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
jupyter notebook "customer churn prediction.ipynb"| Файл | Описание |
|---|---|
customer churn prediction.ipynb |
Основной ноутбук с EDA, моделями и бизнес-анализом |
WA_Fn-UseC_-Telco-Customer-Churn.csv |
Исходные данные |
requirements.txt |
Зависимости Python |