Jak obliczyć mape w pythonie


Do pomiaru dokładności predykcyjnej modeli powszechnie stosuje się średni bezwzględny błąd procentowy (MAPE) . Oblicza się go w następujący sposób:

MAPE = (1/n) * Σ(|rzeczywista – prognoza| / |rzeczywista|) * 100

Złoto:

  • Σ – symbol oznaczający „sumę”
  • n – wielkość próby
  • real – rzeczywista wartość danych
  • predykcja – wartość przewidywanych danych

MAPE jest powszechnie stosowany, ponieważ jest łatwy do interpretacji i wyjaśnienia. Na przykład wartość MAPE wynosząca 11,5% oznacza, że średnia różnica między wartością przewidywaną a wartością rzeczywistą wynosi 11,5%.

Im niższa wartość MAPE, tym lepiej model jest w stanie przewidzieć wartości. Na przykład model z MAPE wynoszącym 5% jest dokładniejszy niż model z MAPE wynoszącym 10%.

Jak obliczyć MAPE w Pythonie

Nie ma wbudowanej funkcji Pythona do obliczania MAPE, ale możemy stworzyć prostą funkcję, która to zrobi:

 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

Możemy następnie użyć tej funkcji do obliczenia MAPE dla dwóch tabel: jednej zawierającej rzeczywiste wartości danych i drugiej zawierającej przewidywane wartości danych.

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

map(actual, pred)

10.8009

Z wyników widać, że średni bezwzględny błąd procentowy dla tego modelu wynosi 10,8009% . Innymi słowy, średnia różnica między wartością przewidywaną a wartością rzeczywistą wynosi 10,8009%.

Środki ostrożności podczas korzystania z MAPE

Chociaż MAPE jest łatwy do obliczenia i interpretacji, jego użycie ma dwie potencjalne wady:

1. Ponieważ wzór na obliczenie bezwzględnego błędu procentowego to |rzeczywista prognoza| / |prawdziwy| oznacza to, że MAPE nie zostanie zdefiniowany, jeśli którakolwiek z rzeczywistych wartości będzie wynosić zero.

2. Nie należy używać MAPE w przypadku małych ilości danych. Na przykład, jeśli rzeczywisty popyt na artykuł wynosi 2, a prognoza wynosi 1, bezwzględna wartość błędu procentowego będzie wynosić |2-1| / |2| = 50%, co sprawia, że błąd prognozy wydaje się dość wysoki, nawet jeśli prognoza różni się tylko o 1 jednostkę.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *