MAPE (Mean Absolute Percentage Error)
El Error Porcentual Absoluto Medio expresa el error como porcentaje. Es la métrica más fácil de comunicar: "El modelo se equivoca en promedio un 5%".
La fórmula
¿Qué significa cada parte?
- — Número total de observaciones
- — Valor real de la observación
- — Valor predicho por el modelo
- — Error relativo (como fracción del valor real)
- — Valor absoluto
- — Convierte a porcentaje
Ejemplo numérico
| Casa | Real | Predicho | Error relativo |
|---|---|---|---|
| 1 | 100k | 110k | 10/100 = 10% |
| 2 | 200k | 180k | 20/200 = 10% |
| 3 | 150k | 160k | 10/150 = 6.67% |
El modelo se equivoca, en promedio, un 8.89%.
Cuidado con valores cercanos a cero
MAPE divide por el valor real (y). Si tienes valores cercanos a 0, el error porcentual puede explotar a infinito. Minerva ignora observaciones donde y = 0.
Implementación
Minerva retorna el valor directamente como porcentaje. scikit-learn lo retorna como fracción:
MinervaMAPE.java
1
2
3
4
5
import com.minerva.metrics.RegressionMetrics.RegressionMetrics; RegressionMetrics metrics = new RegressionMetrics();double mape = metrics.MAPE(actual, predicted);// Retorna 5.0 (ya en porcentaje)API Reference
MAPE(Vector actual, Vector predicted)
Example.java
1
double mape = metrics.MAPE(actual, predicted);| Parámetro | Tipo | Descripción |
|---|---|---|
actual | Vector | Valores reales |
predicted | Vector | Valores predichos |
Retorna: double (porcentaje)
Interpretación
| Aspecto | Valor |
|---|---|
| Rango | [0, inf) |
| Mejor valor | 0% |
| Unidades | Porcentaje |
¿Cuándo usar MAPE?
Recomendado:
- Cuando necesitas comunicar el error a no-técnicos
- Cuando quieres comparar modelos de diferentes escalas
No recomendado:
- Cuando tus datos tienen valores cercanos a 0
- Cuando 0 es un valor válido en tus datos