ML Fundamentals

Регрессия (ML)

Задача машинного обучения, где модель предсказывает непрерывное число: цену, нагрузку, температуру, время отклика.

Что такое регрессия

Регрессия — задача машинного обучения, в которой модель предсказывает непрерывную величину: цену квартиры, завтрашнюю нагрузку на сервер, время доставки, температуру. Ответом служит число из бесконечного диапазона, а не метка из заранее заданного списка.

Этим регрессия отличается от классификации — второй базовой задачи обучения с учителем. «Сколько будет стоить эта машина?» — регрессия. «Это седан или внедорожник?» — классификация.

Регрессия vs классификация

Регрессия Классификация
Что предсказывает Число Метку класса
Ответ 3 427.50 ₽ «спам» / «не спам»
Типичный lossMSE, MAE Cross-entropy
Метрики качества MAE, RMSE, R² Accuracy, precision, recall
Выход модели Одно число Логитыsoftmax

Ловушка именования. Логистическая регрессия, вопреки названию, решает задачу классификации — она предсказывает вероятность класса, а не произвольное число. Название историческое: внутри действительно линейная регрессия, но её выход прогоняют через сигмоиду.

Задача регрессии формально

Есть набор объектов с признаками и известным правильным ответом — датасет. Нужно подобрать функцию, которая по признакам выдаёт число, максимально близкое к правильному:

Признаки (X)                    Целевая переменная (y)
площадь, этаж, район       →    цена
CPU, RSS, число запросов   →    время отклика

Обучение — это подбор параметров модели так, чтобы минимизировать ошибку на обучающих данных. Ошибку измеряет функция потерь, а сам подбор идёт по градиенту — шаг за шагом в сторону уменьшения ошибки.

Виды регрессионных моделей

Модель Когда применима Особенность
Линейная Зависимость близка к прямой Интерпретируема, быстрая, базовый ориентир
Полиномиальная Гладкая нелинейная зависимость Легко переобучается на высоких степенях
Ridge / Lasso Много признаков, есть шум Линейная + регуляризация; Lasso обнуляет лишние признаки
Дерево решений Разрывы и пороги в данных Не требует масштабирования признаков
Градиентный бустинг Табличные данные Практический выбор по умолчанию для таблиц
Нейросеть Много данных, сложная структура Нужен GPU, хуже интерпретируется

На табличных данных градиентный бустинг (XGBoost, LightGBM, CatBoost) обычно обыгрывает нейросети. Нейросети выигрывают там, где признаки не таблица, а сырой сигнал — изображение, звук, текст.

Метрики качества

  • MAE — средняя абсолютная ошибка. В единицах целевой переменной: «в среднем ошибаемся на 12 минут». Устойчива к выбросам.
  • MSE — средний квадрат ошибки. Штрафует крупные промахи сильнее мелких.
  • RMSE — корень из MSE. Как MSE, но снова в исходных единицах.
  • — доля объяснённой дисперсии. 1 — идеально, 0 — не лучше предсказания средним, отрицательное значение — хуже среднего.

Выбор метрики — это решение о том, что считать ошибкой. Если один промах на 100 хуже, чем сто промахов по 1, берите RMSE; если все ошибки равнозначны — MAE.

Пример на scikit-learn

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, r2_score

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = LinearRegression().fit(X_train, y_train)
pred = model.predict(X_test)

print(mean_absolute_error(y_test, pred))  # средняя ошибка в единицах y
print(r2_score(y_test, pred))             # доля объяснённой дисперсии

Метрики всегда считают на отложенной выборке. Хорошее качество на обучающих данных при плохом на тестовых — переобучение: модель запомнила выборку вместо того, чтобы уловить закономерность.

Регрессия и инфраструктура

Регрессионные модели редко требуют GPU: линейная модель или бустинг на миллионах строк обучаются на CPU за минуты. GPU нужен, когда регрессия — это «голова» нейросети: предсказание глубины по картинке, оценка возраста по лицу, прогноз по временным рядам.

Прикладной сценарий для хостинга — прогноз нагрузки: модель предсказывает число запросов на час вперёд, а autoscaling поднимает реплики заранее, а не по факту роста.

Ещё одно значение. В тестировании «регрессия» означает совсем другое — возврат ранее исправленной ошибки, и регрессионные тесты проверяют, что старая функциональность не сломалась. С ML это слово не связано никак.

Связанные термины

  • loss — то, что минимизируют при обучении регрессии
  • gradient — направление, по которому идёт подбор параметров
  • параметр модели — то, что подбирается в процессе обучения
  • overfitting — главный риск при усложнении модели
  • regularization — способ его ограничить
  • датасет — данные с известными ответами

Готовы запустить GPU-задачу?

Запустить GPU-сервер