Введение в ML: Логистическая регрессия и ROC-AUC
Цель: Решить задачу бинарной классификации (предсказание оттока клиентов). Мы разберем работу Логистической регрессии, увидим на практике разницу между L1 и L2 регуляризацией (как L1 обнуляет веса ненужных признаков) и научимся оценивать качество модели с помощью кривой ROC-AUC.
Инструменты:
sklearn.linear_model: LogisticRegression.sklearn.preprocessing: StandardScaler (обязателен!), OneHotEncoder.sklearn.metrics: roc_auc_score, roc_curve.
Данные: Telecom Churn Dataset. Данные оператора связи о клиентах: сколько говорят, какие тарифы подключены и ушел ли клиент (Churn).
Часть 1: Подготовка данных (Preprocessing)
Логистическая регрессия — это математическая модель (уравнение плоскости). Она требует:
- Чисел: Все категории ("Yes"/"No", "Kansas") должны быть закодированы.
- Масштаба: Признаки должны быть в одном диапазоне (StandardScaler), иначе регуляризация будет работать неправильно.
Задание 1.1:
- Загрузите датасет.
- Превратите бинарные признаки (
International plan,Voice mail plan) в числа (0 и 1).- Подсказка: Можно использовать
.map({'Yes': 1, 'No': 0})илиastype(int)если там булевы значения.
- Подсказка: Можно использовать
- Удалите "мусорные" признаки, которые не влияют на физику процесса:
State,Area code,Phone number. - Целевая переменная:
Churn.
Часть 2: Логистическая Регрессия и L1/L2 Регуляризация
В sklearn параметр penalty отвечает за тип регуляризации, а C — за её силу (обратная величина: чем меньше C, тем сильнее штраф).
Задание 2.1: L2 Регуляризация — Стандарт
Обучите модель с penalty='l2'. Это стандартное поведение.
Задание 2.3: Визуализация весов (Инсайт)
Сравним веса двух моделей. Посмотрите, сколько весов занулила L1 модель.
Часть 3: ROC-AUC и Вероятности
Логистическая регрессия предсказывает не просто класс, а вероятность (predict_proba).
Задание 3.1: ROC-кривая
Постройте график ROC-кривой для L2-модели.
- Получите вероятности положительного класса (колонка с индексом 1).
- Используйте
roc_curve. - Посчитайте площадь
roc_auc_score.
Задание 3.2: Интерпретация
Если AUC = 0.82, это хорошо или плохо? В задаче оттока мы хотим найти всех, кто уйдет. Какой порог вероятности выбрать?
Бизнес-логика
Представьте, что мы удерживаем клиентов скидкой.
- Скидка стоит денег -> нельзя давать всем подряд (нужен низкий False Positive).
- Ушедший клиент — это потеря денег -> нужно найти всех (высокий True Positive).
Посмотрите на вероятности первых 10 клиентов из теста.