Как рассчитать MAPE в Python


Средняя абсолютная процентная ошибка (MAPE) обычно используется для измерения прогностической точности моделей. Он рассчитывается как:

MAPE = (1/n) * Σ(|фактическое значение – прогноз| / |фактическое значение|) * 100

куда:

  • Σ – символ, означающий «сумма»
  • n – размер выборки
  • фактический – фактическое значение данных
  • предсказание – предсказанное значение данных

MAPE обычно используется, потому что его легко интерпретировать и легко объяснить. Например, значение MAPE, равное 11,5%, означает, что средняя разница между прогнозируемым значением и фактическим значением составляет 11,5%.

Чем ниже значение MAPE, тем лучше модель способна предсказывать значения. Например, модель с MAPE 5% более точна, чем модель с MAPE 10%.

Как рассчитать MAPE в Python

В Python нет встроенной функции для вычисления MAPE, но мы можем создать для этого простую функцию:

import numpy as np

def mape( actual , pred ): 
 actual, pred = np.array(actual), np.array(pred)
 return np.mean(np.abs((actual - pred) / actual)) \* 100

Затем мы можем использовать эту функцию для вычисления MAPE для двух массивов: одного, содержащего фактические значения данных, и другого, содержащего прогнозируемые значения данных.

actual = [12, 13, 14, 15, 15,22, 27]
pred = [11, 13, 14, 14, 15, 16, 18]

mape(actual, pred)

10.8009

Из результатов видно, что средняя абсолютная процентная ошибка для этой модели составляет 10,8009%.Другими словами, средняя разница между прогнозируемым значением и фактическим значением составляет 10,8009%.

Предостережения по использованию MAPE

Хотя MAPE легко рассчитать и интерпретировать, его использование имеет два потенциальных недостатка:

1. Поскольку формула для расчета абсолютной процентной ошибки |фактическое предсказание| / |фактическое| это означает, что MAPE будет неопределенным, если какое-либо из фактических значений равно нулю.

2. MAPE не следует использовать с данными небольшого объема. Например, если фактический спрос на какой-либо товар равен 2, а прогноз равен 1, значение абсолютной процентной ошибки будет |2-1| / |2| = 50%, что создает впечатление, что ошибка прогноза довольно высока, несмотря на то, что прогноз отличается всего на одну единицу.

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.