TGViewer
ML for Value / Ваня Максимов ML for Value / Ваня Максимов @ml4value · 5.69K subscribers
Post #145 2.94K
Продолжаем серию постов про метрики регрессии
Предыдущие посты - часть 1 про MAE и RMSE, часть 2 про MALE и RMSLE

Часть 3. Первая относительная метрика: MAPE

Абсолютные метрики (RMSE, RMSLE, ...) хороши своей простотой, но имеют ряд недостатков:
- Сложно интерепретировать и презентовать бизнесу ("у модели MAE = 307"; - "И что я должен с этим делать? Хороша ли модель-то?")
- Проблемы при обучении на разнородных обьектах (у одного товара 1к продаж в неделю, у другого - 5. Если усреднить RMSE этих товаров, то получится нечто странное)

Поэтому придумали относительные метрики!
Note:
- Macro average = считаем метрику по каждому обьекту, затем усредняем. Дальше речь пойдет именно о таком усреднении
- Micro average = считаем числители и знаменатели по каждому обьекту. Складываем все числители, все знаменатели. Делим один суммарный числитель на суммарный знаменатель. Это полный аналог MAE: macro MAPE = MAE / mean(y_true)

MAPE (Mean Absolute Percentage Error) = MEAN(|y_true - y_pred| / y_true)

Это простая и интуитивно понятная метрика, но есть нюансы:
- Может быть > 1
- Не симметрична: по-разному штрафует недопрогноз или перепрогноз
- Плохо работает при маленьких y_true. На практике можно делать так: MEAN(|y_true - y_pred| / (y_true + offset)). Это частично решает проблему

При обучении некоторых ml-моделей можно указать MAPE как лосс. Но у него неприятная производная. Поэтому на практике MAPE аппроксимируют через MALE, потому что:
1. ln(1 + f(x)) ~ f(x) при f(x) --> 0
2. ln(1 + |y_true - y_pred| / y_pred) --> |y_true - y_pred| / y_pred = MAPE при -//-
3. ln(y_pred + |y_true - y_pred|) - ln(y_true) --> MAPE при --//--
4. Сильное предположение, но на практике выполняется: |y_true - y_pred| --> 0 при |y_true - y_pred| / y_pred --> 0
5. ln(y_pred + |y_true - y_pred|) - ln(y_true) --> ln(y_pred) - ln(y_true) --> MAPE при -//-
6. Не забудьте взять модуль у первого выражения и получите, что MALE --> MAPE при небольших разницах в |y_true - y_pred|

Хороший рецепт: Loss = MALE, Метрика на валидации/тесте = MAPE

#metrics
Telegram ML for Value Метрики ML-моделей регрессии Часть 1. Простые метрики регрессии: RMSE, MAE RMSE и MAE - пожалуй, самые простые и самые неверно используемые метрики, оторые я видел Обычно в лекциях по DS про эти метрики говорят следующее: Лучше использовать MAE, чем RMSE…
  • 🔥 20
  • 👍 7
  • ❤ 1
More from @ml4value
  1. Sep 17, 2026Post #496
  2. Sep 14, 2026ML вообще работает? (эпизод 1) Давно не писал в канал. Понял, что сейчас сфокусирован на д…
  3. Jun 12, 2026The art of a strong baseline За последнее время все чаще понимаю, что создать сильный бейз…
  4. May 2, 2026Начинать писать после перерыва всегда непросто, поэтому пока легкий пост про мои новости)…
  5. Mar 29, 2026LLM - велосипед в новой обертке Холиварный пост выходного дня) Доля правды в этом есть - и…
  6. Mar 27, 2026LLM долгосрочные интересы пользователя Понемногу LLM-ки находят полезное применение в реко…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →