Карты мира - mape
MAPE (Mean Absolute Percentage Error)
MAPE - это метрика, которая используется для оценки точности прогнозных моделей и регулярно применяется в области машинного обучения и эконометрики. Она измеряет процент отклонения между фактическими и прогнозируемыми значениями.
Формула MAPE выглядит следующим образом:
MAPE = (1/n) · Σ(|(y - y_hat)|/|y|) · 100,
где:
- n - общее количество наблюдений,
- y - фактическое значение,
- y_hat - прогнозируемое значение.
MAPE представляет собой среднюю абсолютную процентную ошибку по всем наблюдениям. Чем меньше MAPE, тем точнее модель.
Давайте рассмотрим пример использования MAPE на практике. Предположим, у нас есть данные о продажах определенного товара за последние 10 дней. Нашей задачей будет построить модель, предсказывающую продажи на следующий день.
| День | Фактические продажи (y) | Прогноз (y_hat) |
|---|---|---|
| День 1 | 100 | 90 |
| День 2 | 80 | 85 |
| День 3 | 120 | 110 |
| День 4 | 90 | 100 |
| День 5 | 110 | 105 |
| День 6 | 95 | 92 |
| День 7 | 105 | 98 |
| День 8 | 100 | 105 |
| День 9 | 115 | 120 |
| День 10 | 90 | 95 |
Сначала мы рассчитываем абсолютную процентную ошибку для каждого дня, применяя формулу MAPE. Затем мы берем среднее значение этих ошибок, чтобы получить значение MAPE.
1. День 1: |(100 - 90)|/|100| = 10%
2. День 2: |(80 - 85)|/|80| = 6.25%
3. День 3: |(120 - 110)|/|120| = 8.33%
4. День 4: |(90 - 100)|/|90| = 11.11%
5. День 5: |(110 - 105)|/|110| = 4.55%
6. День 6: |(95 - 92)|/|95| = 3.16%
7. День 7: |(105 - 98)|/|105| = 6.67%
8. День 8: |(100 - 105)|/|100| = 5%
9. День 9: |(115 - 120)|/|115| = 4.35%
10. День 10: |(90 - 95)|/|90| = 5.56%
MAPE = (10% + 6.25% + 8.33% + 11.11% + 4.55% + 3.16% + 6.67% + 5% + 4.35% + 5.56%)/10 · 100 = 6.08%
Таким образом, MAPE для этой модели составляет 6.08%. Чем ближе значение MAPE к 0, тем более точная модель.
Теперь давайте рассмотрим пример на языке Python, где мы вычислим MAPE с использованием списка фактических значений и списка прогнозируемых значений:
def calculate_mape(actual, predicted):
n = len(actual)
error = [abs((actual[i] - predicted[i])/actual[i]) for i in range(n)]
mape = (sum(error)/n) * 100
return mape
actual_sales = [100, 80, 120, 90, 110, 95, 105, 100, 115, 90]
predicted_sales = [90, 85, 110, 100, 105, 92, 98, 105, 120, 95]
mape = calculate_mape(actual_sales, predicted_sales)
print("MAPE:", mape)
Этот код рассчитывает MAPE для заданных списков фактических и прогнозируемых значений и выводит результат в консоль. Результат будет совпадать с вычисленным ранее MAPE для данного примера.
В заключение, MAPE - это полезная метрика для оценки точности прогнозных моделей. Ее использование позволяет оценить процент отклонения между фактическими и прогнозируемыми значениями и определить, насколько точно модель предсказывает будущие значения. Это особенно полезно при прогнозировании тенденций, продаж и других временных рядов.