Логистическая регрессия называется регрессией, хотя решает задачу классификации
Интуитивно логистическую регрессию удобно воспринимать как модель, которая взвешивает признаки, суммирует их влияние и потом отвечает не жестким классом, а вероятностью принадлежности к положительному классу. Это очень важный шаг. Вместо того чтобы сразу говорить «да» или «нет», модель сначала говорит: «по моим текущим основаниям вероятность положительного класса равна 0.83». А уже после этого мы можем выбрать порог и превратить вероятность в окончательное решение.
Именно поэтому логистическая регрессия полезна не как формальный учебный шаг, а как первая модель, в которой сразу соединяются признаки, вероятность, порог решения и интерпретируемость.
Почему линейной формулы недостаточно для классификации
Если взять обычную линейную комбинацию признаков, мы получим любое вещественное число: отрицательное, положительное, очень большое, очень маленькое. Для регрессии это нормально. Для вероятности — нет. Вероятность должна лежать в диапазоне от 0 до 1. Значит, нужна функция, которая берет любое число на входе и сжимает его в этот интервал. Именно такую роль играет сигмоида. Она делает из линейной модели вероятностную.
(z = w_1 x_1 + w_2 x_2 + \dots + w_p x_p + b)
Раздел математики: линейная алгебра.
Что означает каждый символ:(z) — линейный отклик модели до преобразования в вероятность;(x_1, x_2, \dots, x_p) — признаки объекта;(w_1, w_2, \dots, w_p) — веса, которые показывают вклад признаков;(b) — свободный член, или bias;(p) — число признаков.
Численный пример: пусть (x_1 = 2), (x_2 = 3), (w_1 = 1.5), (w_2 = -0.5), (b = 0.2). Тогда (z = 1.5 \cdot 2 + (-0.5) \cdot 3 + 0.2 = 1.7). Это пока не вероятность, а только промежуточный линейный сигнал.
Как сигмоида превращает число в вероятность
Следующий шаг — применение логистической функции. Именно она и дает модели название. Сигмоида ведет себя интуитивно: большие положительные значения почти превращает в 1, большие отрицательные почти в 0, а значения около нуля переводит в область неопределенности около 0.5. Поэтому логистическая регрессия особенно удобна там, где важна не только классификация, но и сама вероятность.
(\hat{p} = \sigma(z) = \frac{1}{1 + e^{-z}})
Раздел математики: математический анализ и теория вероятностей.
Что означает каждый символ:(\hat{p}) — предсказанная вероятность положительного класса;(\sigma) — сигмоидная функция;(z) — линейный отклик модели;(e) — число Эйлера, основание натурального логарифма.
Если подставить наш пример (z = 1.7), получим (\hat{p} = \frac{1}{1 + e^{-1.7}} \approx 0.85). Это означает, что модель оценивает вероятность положительного класса примерно в 85 процентов.
Где здесь геометрия и почему граница решения остается линейной
Хотя сигмоида нелинейна, геометрия модели в пространстве признаков остается линейной на уровне границы решения. Если мы берем порог 0.5, то это эквивалентно условию (z = 0). А это уже обычная гиперплоскость. В двумерном случае — прямая, в трехмерном — плоскость, в многомерном — гиперплоскость. Это очень полезная интуиция: логистическая регрессия строит линейную разделяющую границу, но переводит расстояние до этой границы в вероятность.
Поэтому модель хорошо работает там, где классы хотя бы приблизительно разделимы линейно. Если реальная граница сложная и сильно изогнутая, одной логистической регрессии может быть недостаточно. Но именно как baseline, как интерпретируемая и быстрая модель, она остается очень сильным инструментом.
Из-за этого логистическую регрессию особенно полезно понимать рядом с более общим разговором о том, чем классификация отличается от регрессии. Тогда становится яснее, почему одна и та же линейная интуиция приводит к разным типам задач и разным способам читать ответ модели.
Почему модель обучается не по accuracy, а по log loss
Это важный момент, который часто упускают. В отчете мы можем смотреть на accuracy, F1 или ROC AUC, но сама модель обычно обучается не по этим метрикам. Логистическая регрессия минимизирует log loss, потому что эта функция хорошо согласуется с вероятностной природой задачи и удобна для оптимизации. Она сильно штрафует уверенные, но неверные вероятностные ответы.
(L = -\frac{1}{n}\sum_{i=1}^{n}\left[y_i \log(\hat{p}_i) + (1-y_i)\log(1-\hat{p}_i)\right])
Раздел математики: теория вероятностей, математическая статистика и оптимизация.
Что означает каждый символ:(L) — средняя функция потерь по выборке;(n) — число объектов;(y_i) — истинный класс объекта, обычно 0 или 1;(\hat{p}_i) — предсказанная вероятность положительного класса для объекта (i).
Численный пример: если для положительного объекта (y = 1) модель дала (\hat{p} = 0.9), то вклад в loss равен (-\log(0.9) \approx 0.105). Если же для того же объекта модель уверенно ошиблась и дала (\hat{p} = 0.1), то вклад уже равен (-\log(0.1) \approx 2.303). Разница огромна. Именно так log loss наказывает чрезмерно уверенные неправильные решения.
Где логистическая регрессия особенно полезна в Data Science
Эта модель очень сильна как baseline. Если задача табличная, данных не слишком мало, а признаки уже более-менее очищены, логистическая регрессия часто дает удивительно крепкий старт. Она хорошо работает в кредитном скоринге, churn prediction, медицинских бинарных задачах, маркетинговом отклике, antifraud-системах на раннем этапе эксперимента. Ее любят не за универсальность, а за сочетание скорости, интерпретируемости и стабильности.
Именно поэтому рядом логично держать и материал про baseline-модель. Он помогает увидеть, почему логистическая регрессия так часто оказывается не «слишком простой», а наоборот правильной отправной точкой для честного сравнения более сложных алгоритмов.
Кроме того, логистическая регрессия позволяет смотреть на коэффициенты и понимать направление влияния признаков. Если вес положителен, рост признака увеличивает log-odds положительного класса. Если отрицателен — уменьшает. Это не полное объяснение мира, но в прикладной аналитике такой уровень интерпретации часто чрезвычайно полезен.
Но окончательная ценность такой модели проявляется уже в том, как мы читаем её ошибки. Поэтому рядом полезно держать и confusion matrix, чтобы видеть не только коэффициенты, но и реальную структуру промахов на положительном и отрицательном классе.
Почему масштабирование и регуляризация здесь важны
Логистическая регрессия чувствительна к масштабу признаков и к мультиколлинеарности. Если один признак измеряется в тысячах, а другой в долях, оптимизация может идти неустойчиво. Поэтому масштабирование часто улучшает обучение. Регуляризация тоже важна: она защищает модель от переобучения и стабилизирует веса, особенно если признаков много или они коррелируют. На практике именно поэтому в библиотеках логистическая регрессия почти всегда идет не в «чистом» виде, а уже с регуляризацией по умолчанию.
Здесь снова видно, как соединяются математика и инженерная практика. Сигмоида и log loss дают вероятностную модель, а регуляризация и preprocessing делают ее пригодной для реальных данных.
Как это выглядит в Python
import pandas as pd # Подключаем pandas для работы с таблицей.
from sklearn.model_selection import train_test_split # Импортируем разбиение данных.
from sklearn.preprocessing import StandardScaler # Импортируем масштабирование признаков.
from sklearn.pipeline import Pipeline # Импортируем pipeline для аккуратной сборки шагов.
from sklearn.linear_model import LogisticRegression # Импортируем логистическую регрессию.
from sklearn.metrics import roc_auc_score # Импортируем метрику ROC AUC.
# Загружаем датасет.
df = pd.read_csv("customers.csv")
# Отделяем признаки от целевой переменной churn.
X = df.drop(columns=["churn"])
y = df["churn"]
# Делим данные на train и test.
X_train, X_test, y_train, y_test = train_test_split(
X, y,
test_size=0.2,
random_state=42,
stratify=y
)
# Собираем pipeline: сначала масштабирование, потом модель.
model = Pipeline([
("scaler", StandardScaler()),
("clf", LogisticRegression(max_iter=1000))
])
# Обучаем модель только на train-части.
model.fit(X_train, y_train)
# Получаем вероятности положительного класса на test-части.
y_prob = model.predict_proba(X_test)[:, 1]
# Считаем ROC AUC по отложенной выборке.
print(roc_auc_score(y_test, y_prob))Построчно здесь происходит следующее. Мы загружаем таблицу, разделяем признаки и целевую переменную, затем откладываем test-часть для честной оценки. После этого собираем pipeline, где сначала признаки масштабируются, а затем логистическая регрессия обучается на train. Метод (predict_proba) возвращает вероятности классов, и именно они особенно ценны в логистической регрессии. В конце мы считаем ROC AUC, потому что эта метрика хорошо показывает качество ранжирования вероятностей.
Здесь важно отдельно видеть и дисциплину проверки. Поэтому такой пример полезно читать вместе с материалом про train/test split: сама модель может быть простой, но без честного разделения данных даже она очень быстро начинает создавать иллюзию надежного качества.
Что важно запомнить
Логистическая регрессия — это не просто старый учебный алгоритм. Это модель, которая учит очень важной идее: классификация может быть вероятностной. Она соединяет линейную структуру признаков, сигмоидное преобразование, вероятностную интерпретацию и оптимизацию через log loss. Именно поэтому она остается одной из лучших моделей для понимания базовой логики Machine Learning.
Если студент Data Science по-настоящему понял логистическую регрессию, ему становится проще понимать и более сложные алгоритмы. Потому что в ней уже есть почти все важные элементы современной практики: признаки, веса, вероятность, функция потерь, регуляризация, метрика и честная валидация. А значит, это не просто очередная тема курса, а один из самых полезных входов в профессию.
А когда возникает вопрос, как именно читать качество такой вероятностной классификации, естественным продолжением становятся и precision, recall и F1. Там уже видно, почему одной accuracy для логистической регрессии почти никогда недостаточно.
Kaggle Notebook по теме статьи: https://www.kaggle.com/code/albertobircoci/multinomial-logistic-regression/notebook