MSE (Mean Squared Error)
El Error Cuadrático Medio es similar al MAE, pero con una diferencia clave: eleva los errores al cuadrado antes de promediarlos. Esto hace que los errores grandes "pesen" mucho más que los pequeños.
La fórmula
¿Qué significa cada parte?
- — Número total de observaciones
- — Valor real de la observación
- — Valor predicho por el modelo
- — Error al cuadrado
- — Suma de todos los errores cuadrados
- — Dividimos para obtener el promedio
¿Por qué elevar al cuadrado?
Elevar al cuadrado tiene dos efectos importantes:
- Elimina los signos negativos (igual que el valor absoluto)
- Amplifica los errores grandes: Un error de 10 contribuye 100, pero un error de 20 contribuye 400 (el doble de error, cuatro veces más penalización)
Ejemplo numérico
Usando los mismos datos del ejemplo de MAE:
| Casa | Error | Error al cuadrado |
|---|---|---|
| 1 | 10k | 100M |
| 2 | 20k | 400M |
| 3 | 10k | 100M |
Nota: Las unidades son "al cuadrado", lo cual es poco intuitivo. Por eso existe RMSE.
Implementación
Minerva proporciona el método MSE en la clase RegressionMetrics:
MinervaMSE.java
1
2
3
4
import com.minerva.metrics.RegressionMetrics.RegressionMetrics; RegressionMetrics metrics = new RegressionMetrics();double mse = metrics.MSE(actual, predicted);API Reference
MSE(Vector actual, Vector predicted)
Example.java
1
double mse = metrics.MSE(actual, predicted);| Parámetro | Tipo | Descripción |
|---|---|---|
actual | Vector | Valores reales |
predicted | Vector | Valores predichos |
Retorna: double
Interpretación
| Aspecto | Valor |
|---|---|
| Rango | [0, inf) |
| Mejor valor | 0 |
| Unidades | Cuadrado de las unidades de y |
¿Cuándo usar MSE?
Recomendado:
- Cuando quieres penalizar errores grandes
- Cuando se usa como función de pérdida en entrenamiento
- Cuando necesitas una métrica diferenciable
No recomendado:
- Las unidades son difíciles de interpretar (usa RMSE)