Обязательно

Метрики регрессии (MAE, MSE, RMSE, R²)

Разбираемся как оценивать качество предсказаний — без метрик непонятно, хорошая модель или нет.

Время изучения: 15 мин

Зачем нужны метрики регрессии

Модель регрессии предсказывает числа — цену квартиры, температуру, выручку. Но насколько точно? Метрики регрессии отвечают на этот вопрос. Каждая метрика «видит» ошибки по-своему: одни штрафуют большие промахи, другие устойчивы к выбросам, третьи показывают долю объяснённой дисперсии.

MAE — Mean Absolute Error

MAE=1ni=1nyiy^i\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|

Средняя абсолютная ошибка

MAE — самая интуитивная метрика: «в среднем модель ошибается на X единиц». Если MAE = 5000₽ для модели цены квартир, значит в среднем предсказание отличается от реальности на 5000₽.

  • В тех же единицах, что и целевая переменная — легко интерпретировать
  • Робастна к выбросам — один большой промах не испортит всю картину
  • Все ошибки одинаково важны: промах на 100 и промах на 1 «стоят» одинаково (по модулю)

MSE — Mean Squared Error

MSE=1ni=1n(yiy^i)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

Средняя квадратичная ошибка

MSE возводит ошибки в квадрат → большие ошибки штрафуются непропорционально сильнее. Промах на 10 «стоит» в 100 раз больше, чем промах на 1.

  • Штрафует большие ошибки сильнее — если для вас важно избегать крупных промахов, используйте MSE
  • Дифференцируема — удобна для оптимизации (градиентный спуск любит MSE)
  • Единицы — квадрат единиц целевой переменной (₽² — не очень интуитивно)
  • Чувствительна к выбросам — один гигантский промах может доминировать

RMSE — Root Mean Squared Error

RMSE=1ni=1n(yiy^i)2\text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}

Корень из MSE — в тех же единицах, что и target

RMSE — это просто корень из MSE. Зачем? Чтобы вернуться к тем же единицам, что и целевая переменная. RMSE = 5000₽ — понятнее, чем MSE = 25 000 000 ₽².

RMSE ≥ MAE всегда (следствие неравенства Коши-Шварца). Чем больше разрыв RMSE − MAE, тем больше «разброс» ошибок: есть и маленькие, и большие промахи.

R² — Коэффициент детерминации

R2=1SSresSStot=1i(yiy^i)2i(yiyˉ)2R^2 = 1 - \frac{SS_{\text{res}}}{SS_{\text{tot}}} = 1 - \frac{\sum_{i}(y_i - \hat{y}_i)^2}{\sum_{i}(y_i - \bar{y})^2}

Доля дисперсии, объяснённая моделью

R² показывает, какую долю «разброса» целевой переменной объясняет модель. R² = 0.85 означает: модель объясняет 85% дисперсии, оставшиеся 15% — необъяснённый шум.

  • R² = 1 — идеальная модель, все предсказания точны
  • R² = 0 — модель не лучше, чем просто предсказывать среднее
  • R² < 0 — модель хуже среднего (да, такое бывает!)
  • Безразмерная метрика — можно сравнивать модели на разных данных

R² может быть отрицательным!

R² < 0 означает, что модель предсказывает хуже, чем «всегда предсказывать среднее». Это случается, когда модель сильно ошибается — например, при неправильном выборе признаков, отсутствии обучения или грубом data leakage. Если видите R² < 0 — что-то серьёзно не так.

Adjusted R²

Radj2=1(1R2)(n1)np1R^2_{\text{adj}} = 1 - \frac{(1 - R^2)(n - 1)}{n - p - 1}

n — число объектов, p — число признаков

Проблема обычного R²: при добавлении новых признаков R² никогда не уменьшается (даже если признак — шум). Adjusted R² штрафует за количество признаков. Если новый признак не улучшает модель значимо — Adjusted R² уменьшится.

Используйте Adjusted R² при сравнении моделей с разным числом признаков — он честнее покажет, стоит ли добавлять ещё одну фичу.

MAPE — Mean Absolute Percentage Error

MAPE=1ni=1nyiy^iyi100%\text{MAPE} = \frac{1}{n} \sum_{i=1}^{n} \left| \frac{y_i - \hat{y}_i}{y_i} \right| \cdot 100\%

Средняя абсолютная процентная ошибка

MAPE выражает ошибку в процентах — удобно, когда масштаб целевой переменной сильно варьируется. MAPE = 10% значит «в среднем ошибаемся на 10% от реального значения».

  • Интуитивна для бизнеса: «ошибка 5%» понятнее, чем «MAE = 3.2»
  • Не определена при y_i = 0 — делим на ноль
  • Асимметрична: завышение и занижение штрафуются по-разному
  • Для малых значений y_i — процентная ошибка раздувается

Когда какую метрику использовать

  • MAE — когда все ошибки одинаково важны и нужна робастность к выбросам
  • MSE/RMSE — когда большие ошибки неприемлемы (стоимость ошибки растёт квадратично)
  • MSE — как функция потерь для оптимизации (гладкая, дифференцируемая)
  • RMSE — для отчётов: те же единицы, что и target, при этом штрафует большие ошибки
  • R² — для общего понимания «объясняющей силы» модели
  • Adjusted R² — при сравнении моделей с разным числом признаков
  • MAPE — когда бизнесу нужна ошибка в процентах (но осторожно с нулями)

Итого

  • MAE — средняя ошибка «в лоб», робастна к выбросам
  • MSE — штрафует большие ошибки, удобна для оптимизации
  • RMSE = √MSE — в единицах target, стандарт для отчётов
  • R² — доля объяснённой дисперсии (может быть < 0!)
  • Adjusted R² — честнее при сравнении моделей разной сложности
  • MAPE — ошибка в процентах, интуитивна для бизнеса
  • Выбор метрики зависит от задачи: что дороже — много мелких или одна большая ошибка?