Как ответить
Логистическая регрессия — это модель бинарной классификации, которая предсказывает вероятность принадлежности объекта к одному из двух классов. В отличие от линейной регрессии, она применяет сигмоидную функцию к линейной комбинации признаков, чтобы получить выход в диапазоне [0, 1]. Основная идея — найти такие веса, чтобы логарифм отношения шансов (log-odds) линейно зависел от признаков.
Математически это выглядит так:
z = w₀ + w₁x₁ + w₂x₂ + ... + wₙxₙ
p = 1 / (1 + e^(-z))Здесь z — линейная комбинация, p — вероятность положительного класса. Граница решений — когда p = 0.5, что соответствует z = 0.
Обучение модели — это поиск весов, минимизирующих функцию потерь. Чаще всего используют логистическую (кросс-энтропийную) функцию потерь:
L = - [y * log(p) + (1 - y) * log(1 - p)]Для минимизации обычно применяют градиентный спуск. Производные по каждому весу считаются аналитически:
∂L/∂wⱼ = (p - y) * xⱼГрадиентный спуск обновляет веса итеративно: wⱼ := wⱼ - α * (1/m) * Σ(pᵢ - yᵢ) * xⱼᵢ, где α — скорость обучения, m — размер батча.
На практике в Python используют готовые реализации из sklearn.linear_model.LogisticRegression. По умолчанию там используется регуляризация L2, а оптимизация — L-BFGS (квазиньютоновский метод, быстрее простого SGD). Параметр C обратно пропорционален силе регуляризации.
Важные моменты:
- Признаки должны быть отмасштабированы (StandardScaler), иначе градиентный спуск сходится медленно или регуляризация работает неравномерно.
- Мультиколлинеарность не так критична, как в линейной регрессии, но сильно коррелированные признаки увеличивают разброс оценок.
- Логистическая регрессия выдаёт калиброванные вероятности, если модель правильно специфицирована — этим она отличается от деревьев или SVM.
- Для многоклассовой классификации используется стратегия «один против всех» (ovr) или мультиномиальная (softmax) регрессия — в sklearn задаётся параметром
multi_class.
Я обычно применяю логистическую регрессию как базовую модель для проверки гипотез: она быстрая, интерпретируемая, и её AUC часто не сильно уступает бустингу при хорошей инженерии признаков.