Jak obliczyć średni bezwzględny błąd procentowy (MAPE) naszych prognoz za pomocą Pythona i scikit-learn?
Z dokumentów mamy tylko te 4 funkcje metryczne dla Regresji:
- metrics.explained_variance_score (y_true, y_pred)
- metrics.mean_absolute_error (y_true, y_pred)
- metrics.mean_squared_error (y_true, y_pred)
- metrics.r2_score (y_true, y_pred)
predictive-models
python
scikit-learn
mape
Nyxynyx
źródło
źródło
Odpowiedzi:
Jak wspomniano (na przykład w Wikipedii ), MAPE może powodować problemy. Przede wszystkim może powodować błędy dzielenia przez zero. Domyślam się, że właśnie dlatego nie jest uwzględniony w metrykach sklearn.
Jest jednak prosty do wdrożenia.
Używaj jak każdej innej metryki ...:
(Pamiętaj, że mnożę przez 100 i zwracam wartość procentową).
... ale ostrożnie:
źródło
y_pred
zey_true
w mianowniku):return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
check_arrays
został porzucony przez Scipy. Jestcheck_array
w obecnej sklearn, ale nie wygląda na to, żeby działało w ten sam sposób.oto zaktualizowana wersja:
źródło