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ę.