Wie können wir den mittleren absoluten prozentualen Fehler (MAPE) unserer Vorhersagen mit Python und Scikit-Learn berechnen?
Aus den Dokumenten haben wir nur diese 4 Metrikfunktionen für Regressionen:
- 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
quelle
quelle
Antworten:
Wie bereits erwähnt (zum Beispiel in Wikipedia ), kann MAPE problematisch sein. Insbesondere kann es zu Fehlern beim Teilen durch Null kommen. Ich vermute, dass dies der Grund ist, warum es nicht in den sklearn-Metriken enthalten ist.
Es ist jedoch einfach zu implementieren.
Verwenden Sie wie jede andere Metrik ...:
(Beachten Sie, dass ich mit 100 multipliziere und einen Prozentsatz zurückgebe.)
... aber mit Vorsicht:
quelle
y_pred
mity_true
im Nenner):return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
check_arrays
wurde von scipy fallen gelassen. Es gibt escheck_array
in der aktuellen Version, aber es sieht nicht so aus, als ob es auf die gleiche Weise funktioniert.Hier ist eine aktualisierte Version:
quelle