MAE (Mean Absolute Error)

El Error Absoluto Medio es la forma más intuitiva de medir el error de un modelo. Responde a la pregunta: "En promedio, ¿por cuánto se equivoca mi modelo?"

La fórmula

MAE=1ni=1nyiy^iMAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|

¿Qué significa cada parte?

  • nn — Número total de observaciones (cuántos datos tienes)
  • yiy_i — Valor real de la observación ii
  • y^i\hat{y}_i — Valor predicho por el modelo para la observación ii
  • yiy^i|y_i - \hat{y}_i| — Error absoluto (diferencia sin signo)
  • \sum — Suma de todos los errores
  • 1n\frac{1}{n} — Dividimos para obtener el promedio

Ejemplo numérico

Si tienes 3 casas con precios reales de $100k, $200k, $150k y tu modelo predice $110k, $180k, $160k:

CasaReal (y)Predicho (y hat)Error absoluto
1100k110k10k
2200k180k20k
3150k160k10k

MAE=10+20+103=40313.33kMAE = \frac{10 + 20 + 10}{3} = \frac{40}{3} \approx 13.33k

Tu modelo se equivoca, en promedio, por $13,330.


Implementación

Minerva proporciona el método MAE en la clase RegressionMetrics. Si vienes de Python con scikit-learn, la equivalencia es directa:

MinervaMAE.java
1
2
3
4
import com.minerva.metrics.RegressionMetrics.RegressionMetrics;
RegressionMetrics metrics = new RegressionMetrics();
double mae = metrics.MAE(actual, predicted);

API Reference

MAE(Vector actual, Vector predicted)

Example.java
1
double mae = metrics.MAE(actual, predicted);
ParámetroTipoDescripción
actualVectorValores reales
predictedVectorValores predichos

Retorna: double

Interpretación

AspectoValor
Rango[0, inf)
Mejor valor0
UnidadesLas mismas que y

¿Cuándo usar MAE?

Recomendado:

  • Cuando quieres un error fácil de interpretar
  • Cuando los outliers no son tan importantes
  • Cuando necesitas comunicar el error a no-técnicos

No recomendado:

  • Cuando quieres penalizar más los errores grandes (usa MSE o RMSE)