¿Cómo podemos calcular el error porcentual absoluto medio (MAPE) de nuestras predicciones usando Python y scikit-learn?
De los documentos , solo tenemos estas 4 funciones métricas para Regresiones:
- 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
fuente
fuente

Respuestas:
Como se señaló (por ejemplo, en Wikipedia ), MAPE puede ser problemático. Lo más significativo es que puede causar errores de división por cero. Supongo que es por eso que no está incluido en las métricas de sklearn.
Sin embargo, es simple de implementar.
Use como cualquier otra métrica ...:
(Tenga en cuenta que estoy multiplicando por 100 y devolviendo un porcentaje).
... pero con precaución:
fuente
y_predcony_truedenominador):return np.mean(np.abs((y_true - y_pred) / y_true)) * 100check_arraysfue abandonado por scipy. Existecheck_arrayen el sklearn actual, pero no parece que funcione de la misma manera.Aquí hay una versión actualizada:
fuente