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

> Логистическая регрессия и классификация: сигмоида, кросс-энтропия, решающая граница и разбор типичных вопросов на ML-интервью.

Раздел: [Основы машинного обучения](https://ml-book.com/s/ml-basics/) · Страница темы: https://ml-book.com/t/logistic-regression/ · Обновлено: 2026-09-16 · Источник: ml-book.com, учебник делается сообществом

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

Пусть задача — предсказать класс: вернёт клиент кредит (1) или нет (0). Первая мысль — обучить [линейную регрессию](https://ml-book.com/t/linear-regression/) на метки 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) · Σ [ y_i·ln(p_i) + (1−y_i)·ln(1−p_i) ]`

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

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

> 🎛 Интерактивная визуализация — на странице темы: https://ml-book.com/t/logistic-regression/

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

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

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

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

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

`P(y = k | x) = e^{zk} / Σ_j e^{zj}`

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 для двух классов вырождается в сигмоиду; сигмоида — частный случай.

## Связанные темы

- [Метрики качества](https://ml-book.com/t/metrics/)
- [Линейная регрессия](https://ml-book.com/t/linear-regression/)
- [Градиентный спуск](https://ml-book.com/t/gradient-descent/)
- [Кросс-валидация и подбор гиперпараметров](https://ml-book.com/t/cross-validation-tuning/)

---

Интерактив, тест из 12 вопросов и карточки терминов — на странице темы: https://ml-book.com/t/logistic-regression/
Весь учебник в markdown: https://ml-book.com/llms-full.txt · Оглавление для агентов: https://ml-book.com/llms.txt
