Лекция 9: Логистическая регрессия. Регуляризация и ROC-AUC
Цели лекции
- Понять, как превратить Линейную регрессию в Классификатор (магия Сигмоиды).
- Научиться интерпретировать вероятности, а не просто метки классов.
- Освоить Регуляризацию (L1 и L2): как заставить модель быть проще и не переобучаться.
- Разобраться с метрикой ROC-AUC, которая оценивает качество модели “в целом”, независимо от порога.
Часть 1: Логистическая регрессия — Это не то, чем кажется
В прошлый раз мы предсказывали цену дома (число). Теперь мы хотим предсказать: “Вернет ли клиент кредит?” (Да/Нет, 1/0).
1.1. Почему Линейная регрессия не подходит?
Если мы попробуем провести прямую линию через точки классов 0 и 1:
- Выход за границы: Линия уходит в и . Что значит “Вероятность возврата кредита = 150%”? Или “-20%”? Это бред.
- Чувствительность к выбросам: Один миллионер-клиент сдвинет линию так, что классификация обычных людей сломается.
1.2. Сигмоида (Sigmoid Function)
Нам нужно “сжать” выход линейной модели в диапазон . Для этого используется логистическая функция (сигмоида):
где (выход линейной регрессии).
- Если очень большое положительное -> .
- Если очень большое отрицательное -> .
- Если -> .
1.3. Граница решений (Decision Boundary)
По умолчанию модель работает так:
- Вычисляем вероятность .
- Если -> Класс 1.
- Если -> Класс 0.
Внутри модели граница решений — это всё ещё прямая линия (или гиперплоскость). Поэтому Логистическая регрессия — это линейный классификатор. Она не сможет разделить классы, расположенные “бубликом” (без feature engineering).
Часть 2: Регуляризация — Укрощение весов
Часто модель слишком сильно подстраивается под обучающие данные, делая веса признаков огромными (например, ). Это Переобучение (Overfitting). Решение: добавить “штраф” за большие веса в функцию потерь.
2.3. Параметр C в Scikit-Learn
Внимание на параметр C
В sklearn используется параметр C, который равен . Он работает “наоборот”:
- Маленькое C (0.01) = Сильная регуляризация (простая модель, веса мелкие).
- Большое C (1000) = Слабая регуляризация (модель доверяет данным, риск переобучения).
Часть 3: ROC-AUC — Оценка вероятностей
Accuracy зависит от порога (0.5). Но кто сказал, что 0.5 — лучший порог? Если мы ловим террористов, мы готовы бить тревогу уже при вероятности 10% (порог 0.1). Accuracy при этом изменится. Как оценить модель “вообще”, при всех возможных порогах?
3.1. ROC Curve (Кривая ошибок)
Мы берем все возможные пороги от 0 до 1 и для каждого считаем:
- TPR (True Positive Rate, Recall): Сколько врагов поймали? (по оси Y).
- FPR (False Positive Rate): Сколько раз зря подняли тревогу? (по оси X).
Рисуем график. Идеальная модель идет в левый верхний угол (TPR=1, FPR=0). Случайная модель идет по диагонали.
3.2. AUC (Area Under Curve)
Это площадь под ROC-кривой.
- AUC = 0.5: Модель гадает на кофейной гуще (случайная).
- AUC = 1.0: Идеальная модель.
- AUC = 0.85: Хорошая рабочая модель.
Физический смысл AUC: Если мы возьмем случайного “больного” и случайного “здорового”, какова вероятность, что модель даст “больному” скор выше, чем “здоровому”?
Часть 4: Интерпретация весов в Логистической регрессии
В отличие от обычной регрессии, здесь зависимость нелинейная.
Инженерное правило
Если , это НЕ значит, что “увеличение возраста на 1 год повышает вероятность на 50%”. Это значит, что увеличивается лог-шанс (log-odds).
- Положительный вес -> признак повышает вероятность класса 1.
- Отрицательный вес -> признак понижает вероятность.
- Чем больше модуль веса (при масштабированных данных!), тем важнее признак.