Какие метрики регрессии вы знаете?

Ответ

Выбор метрики зависит от цели модели и природы ошибок. Вот ключевые метрики с их применением:

  1. MAE (Mean Absolute Error) / L1-норма:

    • Формула: (MAE = frac{1}{n}sum|y_i - hat{y}_i|)
    • Когда использовать: Когда все ошибки одинаково важны. Робастна к выбросам. Интерпретируема в единицах целевой переменной.
      from sklearn.metrics import mean_absolute_error
      mae = mean_absolute_error(y_true, y_pred)
  2. MSE (Mean Squared Error) / L2-норма и RMSE (Root MSE):

    • Формула: (MSE = frac{1}{n}sum(y_i - hat{y}_i)^2), (RMSE = sqrt{MSE})
    • Когда использовать: Когда большие ошибки недопустимы и должны штрафоваться сильнее (например, прогнозирование спроса). RMSE имеет ту же размерность, что и целевая переменная.
      from sklearn.metrics import mean_squared_error
      mse = mean_squared_error(y_true, y_pred)
      rmse = np.sqrt(mse)
  3. R² (Коэффициент детерминации):

    • Формула: (R^2 = 1 - frac{SS{res}}{SS{tot}}), где (SS{res}) — сумма квадратов остатков, (SS{tot}) — общая сумма квадратов.
    • Когда использовать: Для сравнения моделей на одном наборе данных. Показывает, какую долю дисперсии целевой переменной объясняет модель. Может быть отрицательным для плохих моделей.
  4. MAPE (Mean Absolute Percentage Error):

    • Когда использовать: Для бизнес-отчетности, где ошибку нужно выражать в процентах. Нестабилен при значениях, близких к нулю.
  5. MSLE (Mean Squared Logarithmic Error):

    • Когда использовать: Когда целевая переменная имеет большой диапазон (например, прогнозирование цен), и мы хотим одинаково учитывать относительные ошибки для малых и больших значений.

На практике я часто отслеживаю несколько метрик: например, RMSE как основную и для сравнения с бейзлайном.

Ответ 18+ 🔞

Слушай, ну вот объясняю, как в баре после третьей кружки. Выбор метрики — это как выбрать, чем мерить свой успех: в сантиметрах, в килограммах или в количестве выпитого пива. Всё зависит от того, что ты вообще делаешь и какие косяки тебя больше всего бесят.

Вот, смотри, основные штуки, которые все используют:

  1. MAE (Средняя абсолютная ошибка) / Норма L1:

    • Что это: По-простому — берёшь все свои ошибки по модулю, складываешь и делишь на количество. Получается средний размер косяка в понятных единицах (рубли, штуки, литры).
    • Когда юзать: Когда тебе похуй на редкие, но дикие выбросы. Все ошибки для тебя одинаково противны. Метрика простая и надёжная, как кирпич.
      from sklearn.metrics import mean_absolute_error
      mae = mean_absolute_error(y_true, y_pred)  # Посчитал и сразу понял, на сколько в среднем облажался
  2. MSE (Среднеквадратичная ошибка) / Норма L2 и её корень RMSE:

    • Что это: А вот тут уже хитрее. Ошибки сначала возводятся в квадрат, потом усредняются. А RMSE — это просто корень из этой хуйни.
    • Когда юзать: Когда тебя ебёт именно большие, жирные промахи. Квадрат их так раздувает, что модель начинает их бояться как огня. Например, если ты предсказываешь нагрузку на сервер, и один пиздец-скачок важнее десяти мелких косяков. RMSE удобнее, потому что он обратно в нормальных единицах.
      from sklearn.metrics import mean_squared_error
      mse = mean_squared_error(y_true, y_pred)  # Тут ошибки уже в квадрате, овердохуища получаются
      rmse = np.sqrt(mse)  # А тут обратно к человеческому виду приводим
  3. R² (Коэффициент детерминации):

    • Что это: Вообще ёперный театр с формулой, но смысл простой. Показывает, какую долю бардака в твоих данных твоя модель смогла объяснить. 1 — идеально, 0 — как базарная гадалка, а отрицательный — это просто пиздопроебибна, модель хуже, чем просто предсказывать среднее значение.
    • Когда юзать: Чтобы быстро сравнить две модели на одних и тех же данных. Сказать заказчику: «Смотри, моя модель объясняет 85% всего, что тут происходит». Звучит солидно.
  4. MAPE (Средняя абсолютная процентная ошибка):

    • Когда использовать: Для начальства, которое мыслит процентами. «Ошибка модели — всего 5%!». Но осторожно, сука: если у тебя в данных есть нули или близкие к нулю значения, эта метрика сходит с ума и начинает делить на ноль. Доверия к ней — ноль ебать в таких случаях.
  5. MSLE (Среднеквадратичная логарифмическая ошибка):

    • Когда использовать: Когда твои целевые значения — от копеек до миллионов (например, цены на квартиры). Она штрафует за процентную ошибку, а не за абсолютную. То есть ошибиться на 10% на дешёвой халупе так же плохо, как на 10% на вилле. Удобная штука.

По жизни я обычно гоняю RMSE как основную метрику, чтобы видеть масштаб пиздеца в нормальных цифрах, и заодно смотрю на , чтобы понять, не мудю ли я вообще или модель хоть что-то полезное делает.