А почему мы делим на 2?!

sMAPE часто используется вместо MAPE, чтобы избежать работы с неограниченной метрикой. Это преимущество достигается ценой интерпретируемости. Но это не всегда так: в некоторых ситуациях мы все еще можем интерпретировать sMAPE точно так же, как процентные ошибки, создаваемые MAPE.

Почему sMAPE?

В реальных проектах машинного обучения выбор подходящей основной метрики часто является сложной задачей.

Когда дело доходит до измерения точности по отношению к фактическим значениям, наиболее популярным показателем
является MAPE, средняя абсолютная ошибка в процентах.

Будучи очень интуитивно понятным, MAPE вырождается в положительную бесконечность, как только любое из фактических значений равно нулю. Даже относительно небольшие фактические значения могут легко взорвать MAPE до бесконечности.

Таким образом, фактически MAPE имеет смысл только в том случае, если все наблюдения имеют относительно большие фактические значения. Если это не так, вместо него можно использовать аналог MAPE, sMAPE — симметричную среднюю абсолютную процентную ошибку.

Два определения sMAPE

Как ни странно, существует два определения sMAPE.

В своем первом определении sMAPE нормализует относительные ошибки путем деления как на фактические, так и на предсказанные значения. Это заставляет метрику находиться в диапазоне от 0% до 100%.

Второе определение идентично первому, за исключением деления на 2 в знаменателе. Это расширяет диапазон до 200%.

Как интерпретировать sMAPE так же, как MAPE

Заманчиво интерпретировать sMAPE так же, как процент ошибок, создаваемых MAPE. К сожалению, это не так.

Имея ошибки, определенные между 0% и 100%, sMAPE⁰⁻¹⁰⁰ немного более интуитивно понятен и знаком. Однако sMAPE⁰⁻²⁰⁰ обладает неочевидным свойством, которое позволяет нам интерпретировать его так же, как мы интерпретируем MAPE.

Чтобы лучше понять это, мы можем построить эти метрики для различных уровней ошибок.

Оба определения sMAPE совпадают с MAPE, когда процентная ошибка равна 0%. Однако второе определение, sMAPE⁰⁻²⁰⁰, аппроксимирует MAPE также около 0%, то есть когда шкала фактических и прогнозируемых значений аналогична.

В частности, sMAPE⁰⁻²⁰⁰ слегка завышает в случае отрицательных процентных ошибок и слегка занижает в случае положительных процентных ошибок.

Мы можем построить дельты между двумя показателями sMAPE и MAPE, чтобы отточить это.

sMAPE⁰⁻²⁰⁰ очень близко аппроксимирует MAPE для процентных ошибок от −30% до +30%, при этом дельта остается менее ~ 5pp (процентных пунктов).

sMAPE⁰⁻²⁰⁰ продолжает довольно хорошо приближаться к MAPE даже после ±30%: разрыв остается в пределах ~10pp между −40% и +50%.

Что, если все, что у нас есть, — это sMAPE, вычисленный с использованием первого определения? Нам повезло, потому что две метрики эквивалентны с коэффициентом 2: мы можем просто умножить значения метрик на 2 на лету, чтобы получить значения sMAPE⁰⁻²⁰⁰, которые могут удвоиться как MAPE!

Заключение

sMAPE может быть более интерпретируемым, чем ожидалось. Достаточно малые значения sMAPE⁰⁻²⁰⁰ — особенно менее 30% — можно интерпретировать так же, как значения MAPE. Это также относится к значениям sMAPE⁰⁻¹⁰⁰ после преобразования их в значения sMAPE⁰⁻²⁰⁰ путем умножения их на 2.