MAPE больше штрафует за недопрогноз или перепрогноз?
На первый взгляд, кажется, что одинаково штрафует = MAPE симметричен. Обычно это доказывают логикой из самой формулы
MAPE = |y_true - x| / |y_true|
= |y_true + x| / |y_true|,
т.к |y_true - x| = |y_true + x|
Но на практике все несколько сложнее. Обычно мы используем MAPE для прогноза продаж и цен. То есть кейсов, где таргет >= 0.
В таком случае для недопрогноза mape не может быть > 100%, потому что минимальный прогноз = 0 --> |y_true - 0| / y_true = 100%
А вот для перепрогноза mape может уходить в бесконечность. Например, |1 - 8| / 1 = 700%
Поэтому для большинства боевых задач MAPE больше штрафует за перепрогноз --> ML-модели оптимально недопрогнозировать
Забавный факт
Чтобы исправить проблему несимметричности MAPE придумали Symmetric MAPE (SMAPE) = |y_true - y_pred| / (y_true + y_pred) / 2
Забавно то, что Symmetric MAPE не симметричный!)
#metrics
На первый взгляд, кажется, что одинаково штрафует = MAPE симметричен. Обычно это доказывают логикой из самой формулы
MAPE = |y_true - x| / |y_true|
= |y_true + x| / |y_true|,
т.к |y_true - x| = |y_true + x|
Но на практике все несколько сложнее. Обычно мы используем MAPE для прогноза продаж и цен. То есть кейсов, где таргет >= 0.
В таком случае для недопрогноза mape не может быть > 100%, потому что минимальный прогноз = 0 --> |y_true - 0| / y_true = 100%
А вот для перепрогноза mape может уходить в бесконечность. Например, |1 - 8| / 1 = 700%
Поэтому для большинства боевых задач MAPE больше штрафует за перепрогноз --> ML-модели оптимально недопрогнозировать
Забавный факт
Чтобы исправить проблему несимметричности MAPE придумали Symmetric MAPE (SMAPE) = |y_true - y_pred| / (y_true + y_pred) / 2
Забавно то, что Symmetric MAPE не симметричный!)
#metrics