El Error Cuadrático Medio es el criterio de evaluación más usado para problemas de regresión. Se usa sobre todo cuando usamos aprendizaje automático supervisado. Para cada dato histórico podremos indicar el resultado correcto. Vamos a ver como se calcula.

Cálculo del Error Cuadrático Medio

Calculando el Error Cuadrático Medio
Error en Regresión Lineal

Vamos a calcular el error cuadrático medio con un ejemplo. En la figura vemos que estamos usando una regresión lineal (en azul) para estimar los datos que tenemos (los puntos verdes). El modelo lineal tiene un error (en rojo) que podemos definir con la siguiente fórmula:

$$error \ cuadr\acute{a}tico = (real\ – \ estimado)^2$$

El valor estimado es el valor que nos da el modelo. En este caso, la línea azul.

Calculamos el error al cuadrado, en lugar del error simple, para que el error siempre sea positivo. De esta forma sabemos que el error perfecto es 0. Si no elevásemos el error al cuadrado, unas veces el error sería positivo y otras negativo. Otra posibilidad sería usar el valor absoluto, en lugar de elevarlo al cuadrado. Sin embargo, si usamos el valor absoluto, obtendremos una función no-derivable. Y como ya veremos en otro artículo, tener una función derivable hace posible el uso de algoritmos de optimización muy efectivos (por ejemplo, el gradiente descendiente).

Ahora que sabemos cómo calcular el error en cada punto, podemos calcular cual es el error medio. Para ello, sumamos todos los errores y los dividimos entre el número total de puntos. Si llamamos M al número total de puntos nos queda la fórmula del Error Cuadrático Medio (MSE, por sus siglas en inglés, Mean Squared Error):

$$MSE = \frac{1}{M}\sum_{i=1}^{M}(real_i\ – \ estimado_i)^2$$

Ejemplo del MSE en una Regresión Lineal

Vamos a ver cómo funciona el MSE en un ejemplo. Como técnica de machine learning, vamos a usar una de la más simples, la regresión lineal.

En el gráfico podemos hemos usado una regresión lineal para calcular la línea (en rojo). Esta línea obtiene el menor MSE  posible para los datos que hemos usado (en azul). El MSE (por sus siglas en inglés) es de 0.0332.

Ejemplo de Error Cuadrático Medio
Ejemplo de Error Cuadrático Medio (MSE en inglés)

La forma del error cuadrático medio

Podemos apreciar la forma del MSE en la siguiente gráfica. A la izquierda, vemos el MSE para una variable (en 2D), y a la derecha el MSE para dos variables (en 3D). Es fácil ver que el MSE amplifica los errores mayores ya que calcula el cuadrado del error.

Forma del Error Cuadrático Medio (MSE)

Raíz Cuadrada del Error Cuadrático Medio

El error cuadrático medio no es del todo intuitivo porque nos da el error medio al cuadrado. Así que si nuestro modelo para predecir el valor de bienes inmuebles tiene un error cuadrático medio de 1.000.000 de euros nos daría la impresión de que tiene mucho error. En realidad, el error sería más / menos 1.000 euros en media, porque la raíz cuadrada de 1.000.000 es 1.000. La fórmula sería:

$$RMSE = \sqrt{\frac{1}{M}\sum_{i=1}^{M}(real_i\ – \ estimado_i)^2}$$

Os pongo su nombre también en inglés para que os suene cuando lo uséis en las librerías de machine learning: RMSE (Root Mean Squared Error). Así, en el ejemplo anterior, el RMSE sería 0.1822 (para un MSE de 0.0332).

¿Por qué no usamos la Raíz Cuadrada del Error Cuadrático Medio?

Entonces, si el RMSE es más intuitivo que el MSE, ¿por qué no usamos el RMSE todo el tiempo? Hay dos razones:

  1. Es más costoso computacionalmente. Muchos algoritmos supervisados necesitan calcular el error en cada iteración para aprender de sus errores; así que cuanto más rápido mejor.
  2. La forma del error cuadrático medio hace que cierto tipos de algoritmos de optimización (tales como el gradiente descendiente), encuentre la mejor solución más rápido.

Así que, normalmente, se suele usar el MSE durante el proceso de aprendizaje y su raíz cuadrada al final, para dar una estimación en términos intuitivos de la calidad de la predicción.

Cálculo del Error Cuadrático Medio en python

Vamos a ver dos formas de calcularlo en python

Usando scikit-learn

Lo más fácil es usar la librería de python scikit-learn. El modulo sklearn.metrics implementa la función mean_squared_error. Esta función necesita dos argumentos:

  • y_true: los valores correctos
  • y_pred: nuestra predicción

Por ejemplo:

from sklearn.metrics import mean_squared_error
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
mse = mean_squared_error(y_true, y_pred)
mse
# resultado: 0.375

Usando sólo NumPy

import numpy as np
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
mse = (np.square(y_true - y_pred)).mean()
mse
# resultado: 0.375

Resumen

El error cuadrático medio es el criterio de evaluación más usado para problemas de aprendizaje supervisado de regresión. En este artículo hemos visto cómo se calcula, la posibilidad de usar la raíz cuadrada para obtener un resultado más intuitivo y cómo calcularlo fácilmente con código python.

Recursos

Suscríbete a IArtificial.net

Error Cuadrático Medio para Regresión

1
Deja un comentario

avatar
1 Hilos de comentario
0 Respuestas de hilo
0 Seguidores
 
Comentario más reaccionado
El hilo de comentarios más caliente
1 Autores de comentarios
José David Autores de comentarios recientes
  Suscribir  
el más nuevo el más antiguo el más votado
Notificar de
José David
Invitado
José David

Hola.
Clarísima explicación complementada con ejemplos, gracias.
José David