Главная
#Python и инструменты #Data Science #ML

Логистическая регрессия в Data Science с нуля в 2026 году

Это одна из первых вещей, которые сбивают с толку новичка. В названии есть слово regression, но модель чаще всего используют там, где нужно ответить на вопрос yes or no: уйдет клиент или останется, есть заболевание или нет, транзакция мошенническая или обычная. Причина названия историческая и математическая. Внутри логистическая регрессия действительно строит линейную комбинацию признаков, как классическая линейная модель. Но на выходе она не оставляет этот результат в сыром виде, а переводит его в вероятность. Именно поэтому логистическая регрессия оказывается одной из самых понятных моделей для входа в Machine Learning: она стоит на границе между линейной алгеброй, вероятностным мышлением и практикой классификации.

Содержание
  1. Логистическая регрессия называется регрессией, хотя решает задачу классификации
  2. Почему линейной формулы недостаточно для классификации
  3. Как сигмоида превращает число в вероятность
  4. Где здесь геометрия и почему граница решения остается линейной
  5. Почему модель обучается не по accuracy, а по log loss
  6. Где логистическая регрессия особенно полезна в Data Science
  7. Почему масштабирование и регуляризация здесь важны
  8. Как это выглядит в Python
  9. Что важно запомнить

Логистическая регрессия называется регрессией, хотя решает задачу классификации

Интуитивно логистическую регрессию удобно воспринимать как модель, которая взвешивает признаки, суммирует их влияние и потом отвечает не жестким классом, а вероятностью принадлежности к положительному классу. Это очень важный шаг. Вместо того чтобы сразу говорить «да» или «нет», модель сначала говорит: «по моим текущим основаниям вероятность положительного класса равна 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

Что читать дальше

Связанные статьи по этой теме

Инструменты Python в 2026 году: современный стек для профессиональной разработки Что должен знать Junior Data Scientist в 2026 году? Как собрать GitHub-портфолио для Data Science
Вернуться в блог