Диагностика Mock-интервью
Главная · Основы машинного обучения

Логистическая регрессия и классификация

Первая модель классификации, которую спрашивают на каждом собеседовании: сигмоида, вероятности, кросс-энтропия и линейная решающая граница. Несмотря на слово «регрессия» в названии, это рабочая лошадка классификации — от кредитного скоринга до CTR-моделей.

Почему не линейная регрессия

Пусть задача — предсказать класс: вернёт клиент кредит (1) или нет (0). Первая мысль — обучить линейную регрессию на метки 0/1 и ставить порог. Но у прямой выход не ограничен: она легко выдаст «вероятность» 3.7 или −1.2. Хуже того, MSE-лосс начнёт штрафовать модель за «слишком уверенные» правильные ответы, а далёкие от границы точки будут перетягивать прямую и двигать порог. Нужна модель, которая честно выдаёт число от 0 до 1.

Как это работает: сигмоида

Логистическая регрессия (logistic regression) считает тот же линейный score z = w·x + b, но затем пропускает его через сигмоиду (sigmoid):

σ(z) = 1 / (1 + e−z)

Сигмоида — гладкая «ступенька»: любое число из (−∞, +∞) она сжимает в интервал (0, 1). Получившееся значение интерпретируется как вероятность класса 1: P(y=1|x) = σ(w·x + b). При z = 0 сигмоида даёт ровно 0.5 — это и есть решающая граница (decision boundary). Заметь: условие w·x + b = 0 задаёт прямую (в общем случае гиперплоскость), поэтому граница логистической регрессии всегда линейна, хотя сама сигмоида нелинейна. Чем больше норма весов |w|, тем круче ступенька — тем «увереннее» модель вблизи границы.

Лосс: почему кросс-энтропия, а не MSE

Обучают модель, максимизируя правдоподобие данных, что эквивалентно минимизации логистической потери (log loss, она же бинарная кросс-энтропия, cross-entropy):

L = −(1/n) · Σ [ yi·ln(pi) + (1−yi)·ln(1−pi) ]

Почему не привычный MSE? Две причины. Во-первых, MSE в паре с сигмоидой даёт невыпуклую функцию потерь — градиентный спуск может застрять; кросс-энтропия с сигмоидой выпукла, минимум один. Во-вторых, у MSE при насыщенной сигмоиде (уверенный, но неправильный ответ) градиент почти нулевой — модель «не чувствует» свою грубую ошибку. Кросс-энтропия, наоборот, наказывает уверенные ошибки почти бесконечно: −ln(p) → ∞ при p → 0. Оптимизируется всё тем же градиентным спуском, причём градиент получается изящным: ∂L/∂w = (1/n)·Σ (pi − yi)·xi.

💡 Ключевая мысль Логистическая регрессия = линейная модель + сигмоида + кросс-энтропия. Она предсказывает не класс, а вероятность; класс появляется только после выбора порога.

Попробуй сначала подобрать границу руками, глядя на log loss, а затем нажми «Обучить» — градиентный спуск найдёт положение получше. Обрати внимание: с ростом числа шагов |w| растёт, ступенька становится круче, и фон вблизи границы окрашивается контрастнее — модель становится увереннее.

Порог 0.5 — не догма

Модель выдаёт вероятность, а бизнес-решение принимается по порогу (threshold). По умолчанию берут 0.5, но это осмысленно только при равной цене ошибок. В медицинском скрининге пропустить болезнь дороже, чем перестраховаться, — порог опускают (растёт полнота, recall). В спам-фильтре дороже потерять важное письмо — порог поднимают (растёт точность, precision). Выбор порога — продуктовое решение поверх модели; подробнее — в теме про метрики.

Softmax: больше двух классов

Когда классов K > 2, для каждого класса заводят свой вектор весов и считают K score-ов z1 … zK, а сигмоиду заменяют её обобщением — softmax:

P(y = k | x) = ezk / Σj ezj

Softmax превращает произвольные числа в распределение вероятностей: все положительные, сумма равна 1. При K = 2 softmax сводится к сигмоиде. Эта же конструкция стоит в выходном слое любой нейросети-классификатора и в LLM, где softmax по десяткам тысяч логитов выдаёт распределение следующего токена.

⚠️ Подводный камень Если классы линейно разделимы идеально, у логистической регрессии без регуляризации нет конечного оптимума: увеличение |w| бесконечно уменьшает лосс, веса раздуваются, а вероятности вырождаются в 0 и 1. Поэтому в библиотеках L2-регуляризация включена по умолчанию (в sklearn — параметр C), и её отключение — частая причина странных чисел.
🎤 На собеседовании
  • «Почему для классификации не годится линейная регрессия с порогом?» — выход не ограничен [0, 1], MSE неверно штрафует уверенные правильные ответы, далёкие точки двигают границу.
  • «Почему кросс-энтропия, а не MSE?» — с сигмоидой MSE невыпукла и даёт исчезающие градиенты при уверенных ошибках; кросс-энтропия выпукла и сильно наказывает уверенные ошибки.
  • «Граница логистической регрессии линейна или нет?» — линейна: σ монотонна, условие p = 0.5 эквивалентно w·x + b = 0. Нелинейность достигается добавлением признаков (x², произведения).
  • «Как связаны сигмоида и softmax?» — softmax для двух классов вырождается в сигмоиду; сигмоида — частный случай.