Ответ
MAPE и sMAPE — это метрики для оценки точности прогнозов, выраженные в процентах, но они по-разному рассчитывают ошибку.
-
MAPE (Mean Absolute Percentage Error) — Средняя абсолютная процентная ошибка.
- Формула:
MAPE = (100% / n) * Σ |(Факт - Прогноз) / Факт| - Интерпретация: Показывает, в среднем на сколько процентов наши прогнозы отклоняются от фактических значений.
- Недостатки:
- Асимметрия: Сильнее штрафует заниженные прогнозы, чем завышенные (так как знаменатель — фактическое значение).
- Проблема с нулями: Не может быть вычислен, если какое-либо фактическое значение равно нулю.
- Формула:
-
sMAPE (Symmetric Mean Absolute Percentage Error) — Симметричная средняя абсолютная процентная ошибка.
- Формула:
sMAPE = (200% / n) * Σ |Прогноз - Факт| / (|Прогноз| + |Факт|) - Идея: Учитывает ошибку относительно суммы фактического и прогнозируемого значений, что делает метрику симметричной.
- Преимущество: Устраняет асимметрию MAPE, одинаково обрабатывая завышение и занижение.
- Недостаток: Может давать завышенные значения ошибки, когда и факт, и прогноз близки к нулю.
- Формула:
Пример расчета на Python:
import numpy as np
y_true = np.array([100, 200, 300])
y_pred = np.array([110, 190, 280])
# MAPE
mape = np.mean(np.abs((y_true - y_pred) / y_true)) * 100
print(f"MAPE: {mape:.2f}%")
# sMAPE
smape = np.mean(2 * np.abs(y_pred - y_true) / (np.abs(y_true) + np.abs(y_pred))) * 100
print(f"sMAPE: {smape:.2f}%")
Вывод: MAPE более интуитивно понятен (ошибка в % от факта), но имеет серьезные ограничения. sMAPE часто используется как более сбалансированная альтернатива, особенно в задачах прогнозирования, где нет явного перекоса в сторону занижения или завышения.