Comment pouvons-nous calculer l'erreur de pourcentage absolu moyen (MAPE) de nos prédictions en utilisant Python et scikit-learn?
De la documentation , nous avons seulement ces 4 fonctions métriques pour les régressions:
- 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
la source
la source
Réponses:
Comme indiqué (par exemple, dans Wikipedia ), MAPE peut être problématique. Plus précisément, il peut provoquer des erreurs de division par zéro. Je suppose que c'est pourquoi il n'est pas inclus dans les métriques sklearn.
Cependant, il est simple à mettre en œuvre.
Utilisez comme toute autre métrique ...:
(Notez que je multiplie par 100 et que je renvoie un pourcentage.)
... mais avec prudence:
la source
y_pred
pary_true
au dénominateur):return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
check_arrays
a été abandonné par scipy. Il y acheck_array
dans le sklearn actuel, mais il ne semble pas que cela fonctionne de la même manière.voici une version mise à jour:
la source