Sobreajuste

Sobreajuste: Se refiere a la creación de un modelo que coincida (memorice) con el conjunto de entrenamiento de tal manera que no pueda realizar predicciones correctas con datos nuevos. Un modelo sobreajustado es análogo a un invento que funciona bien en el laboratorio, pero que no tiene valor en el mundo real.

En la Figura 11, imagina que cada forma geométrica representa la posición de un árbol en un bosque cuadrado. Los diamantes azules marcan las ubicaciones de los árboles sanos, mientras que los círculos naranjas marcan las ubicaciones de los árboles enfermos.

Figura 11: Esta figura contiene alrededor de 60 puntos, de los cuales la mitad son árboles sanos y la otra mitad árboles enfermos.
            Los árboles sanos se encuentran principalmente en el cuadrante noreste, aunque algunos se cuelan en los cuadrantes noroeste. Los árboles enfermos se encuentran principalmente en el cuadrante sureste, pero algunos se extienden a otros cuadrantes.
Figura 11: Conjunto de entrenamiento: ubicaciones de árboles sanos y enfermos en un bosque cuadrado.

 

Dibuja mentalmente cualquier forma (líneas, curvas, óvalos, etc.) para separar los árboles sanos de los enfermos. Luego, expande la siguiente línea para examinar una posible separación.

Las formas complejas que se muestran en la Figura 12 categorizaron correctamente todos los árboles, excepto dos. Si pensamos en las formas como un modelo, este es un modelo fantástico.

¿O no? Un modelo realmente excelente clasifica correctamente los ejemplos nuevos. En la Figura 13, se muestra lo que sucede cuando ese mismo modelo realiza predicciones sobre ejemplos nuevos del conjunto de prueba:

Figura 13. Un nuevo lote de árboles sanos y enfermos superpuestos en el
            modelo que se muestra en la Figura 12. El modelo clasifica de forma incorrecta muchos de los árboles.
Figura 13: Conjunto de prueba: un modelo complejo para distinguir los árboles enfermos de los sanos.

 

Por lo tanto, el modelo complejo que se muestra en la Figura 12 hizo un gran trabajo en el conjunto de entrenamiento, pero un trabajo bastante malo en el conjunto de prueba. Este es un caso clásico de un modelo que se sobreajusta a los datos del conjunto de entrenamiento.

Ajuste, sobreajuste y subajuste

Un modelo debe realizar buenas predicciones sobre datos nuevos. Es decir, tu objetivo es crear un modelo que “se ajuste” a los datos nuevos.

Como viste, un modelo con sobreajuste realiza predicciones excelentes en el conjunto de entrenamiento, pero predicciones deficientes en los datos nuevos. Un modelo con subajuste ni siquiera realiza buenas predicciones en los datos de entrenamiento. Si un modelo sobreajustado es como un producto que funciona bien en el laboratorio, pero mal en el mundo real, un modelo subajustado es como un producto que ni siquiera funciona bien en el laboratorio.

Figura 14. Gráfico cartesiano. El eje X está etiquetado como "calidad de las predicciones en el conjunto de entrenamiento". El eje Y está etiquetado como "calidad de las predicciones en datos del mundo real". Una curva comienza en el origen y aumenta gradualmente,
            pero luego baja con la misma rapidez. La parte inferior izquierda de la curva
            (baja calidad de las predicciones en datos del mundo real y baja calidad de las
            predicciones en el conjunto de entrenamiento) se etiqueta como "modelos con ajuste insuficiente". La parte inferior derecha de la curva (baja calidad de las predicciones en datos del mundo real, pero alta calidad de las predicciones en el conjunto de entrenamiento) se etiqueta como “modelos sobreentrenados”. El pico de la curva (calidad alta de las predicciones en datos del mundo real y calidad media de las predicciones en el conjunto de entrenamiento) se etiqueta como "modelos adecuados".
Figura 14: Modelos con subajuste, ajuste y sobreajuste

 

La generalización es lo opuesto al sobreajuste. Es decir, un modelo que generaliza bien realiza buenas predicciones sobre datos nuevos. Tu objetivo es crear un modelo que generalice los datos nuevos de forma correcta.

Cómo detectar el sobreajuste

Las siguientes curvas te ayudan a detectar el sobreajuste:

  • curvas de pérdida
  • curvas de generalización

Una curva de pérdida grafica la pérdida de un modelo en función de la cantidad de iteraciones de entrenamiento. Un gráfico que muestra dos o más curvas de pérdida se denomina curva de generalización. En la siguiente curva de generalización, se muestran dos curvas de pérdida:

Figura 15: La función de pérdida para el conjunto de entrenamiento se reduce gradualmente. La función de pérdida para el conjunto de validación también disminuye, pero luego comienza a aumentar después de una cierta cantidad de iteraciones.
Figura 15: Una curva de generalización que implica fuertemente el sobreajuste.

 

Observa que las dos curvas de pérdida se comportan de manera similar al principio y, luego, divergen. Es decir, después de una cierta cantidad de iteraciones, la pérdida disminuye o se mantiene constante (converge) para el conjunto de entrenamiento, pero aumenta para el conjunto de validación. Esto sugiere un sobreajuste.

En cambio, una curva de generalización para un modelo bien ajustado muestra dos curvas de pérdida que tienen formas similares.

¿Qué causa el sobreajuste?

En términos generales, el sobreajuste se debe a uno o ambos de los siguientes problemas:

  • El conjunto de entrenamiento no representa de manera adecuada los datos de la vida real (o el conjunto de validación o el conjunto de prueba).
  • El modelo es demasiado complejo.

Condiciones de generalización

Un modelo se entrena en un conjunto de entrenamiento, pero la prueba real de su valor es qué tan bien hace predicciones sobre ejemplos nuevos, en particular, sobre datos del mundo real. Mientras desarrollas un modelo, tu conjunto de prueba sirve como proxy para los datos del mundo real. El entrenamiento de un modelo que generalice bien implica las siguientes condiciones del conjunto de datos:

  • Los ejemplos deben ser independientes y estar idénticamente distribuidos, que es una forma elegante de decir que tus ejemplos no pueden influir entre sí.
  • El conjunto de datos es estacionario, lo que significa que no cambia de forma significativa con el tiempo.
  • Las particiones del conjunto de datos tienen la misma distribución. Es decir, los ejemplos del conjunto de entrenamiento son estadísticamente similares a los ejemplos del conjunto de validación, el conjunto de prueba y los datos del mundo real.

Explora las condiciones anteriores a través de los siguientes ejercicios.

Ejercicios: Comprueba tu comprensión

Considera las siguientes particiones del conjunto de datos.
Una barra horizontal dividida en tres partes: el 70% de la barra es el conjunto de entrenamiento, el 15% es el conjunto de validación y el 15% es el conjunto de prueba.
¿Qué debes hacer para asegurarte de que los ejemplos del conjunto de entrenamiento tengan una distribución estadística similar a la de los ejemplos del conjunto de validación y del conjunto de prueba?
Mezcla los ejemplos del conjunto de datos de forma exhaustiva antes de particionarlos.
Sí. Una buena mezcla de ejemplos hace que las particiones sean mucho más probables de ser estadísticamente similares.
Ordena los ejemplos de la más antigua a la más reciente.
Si los ejemplos del conjunto de datos no son estacionarios, la ordenación hace que las particiones sean menos similares.
No realizar ninguna acción. Si hay suficientes ejemplos, la ley de los promedios garantiza, de forma natural, que las distribuciones sean estadísticamente similares.
Lamentablemente, no es así. Los ejemplos de ciertas secciones del conjunto de datos pueden diferir de los de otras secciones.
Un servicio de transmisión está desarrollando un modelo para predecir la popularidad de posibles programas de televisión nuevos para los próximos tres años. El servicio de transmisión planea entrenar el modelo en un conjunto de datos que contiene cientos de millones de ejemplos, abarcando los últimos diez años. ¿Este modelo tendrá un problema?
Probablemente. Los gustos de los usuarios cambian de formas que el comportamiento anterior no puede predecir.
Sí. Los gustos de los usuarios no son estáticos. Cambian constantemente.
Definitivamente no. El conjunto de datos es lo suficientemente grande como para realizar buenas predicciones.
Lamentablemente, los gustos de los usuarios no son estacionarios.
Probablemente no. Los gustos de los usuarios cambian de forma cíclica y predecible. Diez años de datos permitirán que el modelo realice buenas predicciones sobre las tendencias futuras.
Aunque algunos aspectos del entretenimiento son algo cíclicos, es casi seguro que un modelo entrenado a partir del historial de entretenimiento anterior tendrá problemas para hacer predicciones sobre los próximos años.
Un modelo tiene como objetivo predecir el tiempo que tardan las personas en caminar un kilómetro según los datos del clima (temperatura, punto de rocío y precipitaciones) recopilados durante un año en una ciudad cuyo clima varía significativamente según la estación. ¿Puedes compilar y probar un modelo a partir de este conjunto de datos, a pesar de que las lecturas del clima cambian de forma drástica según la estación?
Sí, es posible compilar y probar un modelo a partir de este conjunto de datos. Solo debes asegurarte de que los datos se particionen de manera uniforme, de modo que los datos de las cuatro estaciones se distribuyan de manera equitativa en las diferentes particiones.
No
Si suponemos que este conjunto de datos contiene suficientes ejemplos de temperatura, punto de rocío y precipitación, puedes compilar y probar un modelo a partir de este conjunto de datos. Solo debes asegurarte de que los datos se particionen de manera uniforme, de modo que los datos de las cuatro estaciones se distribuyan de manera uniforme en las diferentes particiones.

Ejercicio de desafío

Estás creando un modelo que predice la fecha ideal para que los pasajeros compren un boleto de tren para una ruta en particular. Por ejemplo, el modelo podría recomendar que los usuarios compren su boleto el 8 de julio para un tren que sale el 23 de julio. La empresa de trenes actualiza los precios por hora en función de una variedad de factores, pero principalmente en función de la cantidad actual de asientos disponibles. Es decir:

  • Si hay muchos asientos disponibles, los precios de los boletos suelen ser bajos.
  • Si hay muy pocos asientos disponibles, los precios de los boletos suelen ser altos.
Tu modelo tiene una pérdida baja en el conjunto de validación y en el conjunto de prueba, pero a veces realiza predicciones terribles en datos del mundo real. ¿Por qué?
Haz clic aquí para ver la respuesta