¿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_pred
cony_true
denominador):return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
check_arrays
fue abandonado por scipy. Existecheck_array
en el sklearn actual, pero no parece que funcione de la misma manera.Aquí hay una versión actualizada:
fuente