Overfitting: Cuando tu Modelo de Machine Learning Aprende Demasiado 

admin
abril 11, 2025 0 Comentarios

El overfitting (o sobreajuste) es uno de los problemas más comunes en Machine Learning y ocurre cuando un modelo se ajusta demasiado bien a los datos de entrenamiento, capturando no solo los patrones generales, sino también el ruido y las particularidades del conjunto de datos. Esto provoca que el modelo tenga un rendimiento mucho mayor en los datos con los que fue entrenado del que demuestra al enfrentarse a datos no vistos previamente. 

¿Cómo saber si tu modelo padece overfitting? 

Un modelo que generaliza bien obtiene resultados similares tanto en los datos de entrenamiento como en los de prueba (datos nuevos). Sin embargo, cuando hay overfitting, las métricas de entrenamiento son mucho mayores de lo que lo son sobre el conjunto de prueba. Para ilustrar mejor el concepto de sobreajuste vamos a tratar 3 ejemplos prácticos que reflejan este fenómeno: 

El estudiante que se prepara para un exámen 

Pongamos el caso de que un estudiante se prepara para un exámen usando exactamente las mismas preguntas que aparecerán en la prueba. Si las memoriza, sacará una nota perfecta. Pero si el examen cambia ligeramente las preguntas, es muy probable que falle, porque no aprendió a razonar, sino solo a recordar respuestas específicas. 

En Machine Learning ocurre lo mismo: el modelo memoriza en lugar de aprender patrones generales, lo que lo hace poco útil en situaciones reales. 

El maniquí de una tienda de ropa 

Un buen modelo es como un maniquí de una tienda de ropa, ya que representa la forma general de un ser humano (cabeza, tronco, brazos y piernas) y no necesita detalles como cicatrices, pecas o lunares, porque su propósito es representar la estructura básica de una forma humana. 

 

De la misma forma, un buen modelo de Machine Learning debe captar los patrones generales sin preocuparse por los detalles irrelevantes y confundir el ruido con el patrón general subyacente en los datos. 

Mapeando un terreno 

En el caso de querer cartografiar un terreno 
Un mapa de carreteras indica las autopistas, ríos y montañas pero no señala cada grieta en la carretera o cada tipo de árbol en un bosque, porque eso haría el mapa demasiado detallado y poco útil para la vida real. 

Cuando un modelo padece de overfitting, es como si un mapa incluyera cada bache y cada arbusto: demasiada nivel de detalle irrelevante que distorsiona la visión del panorama general. 

¿Cuándo preocuparse? 

El sobreajuste no siempre es malo. En muchos casos, un modelo con un ligero overfitting puede seguir siendo útil si la diferencia entre el rendimiento en entrenamiento y prueba es pequeña. 

En general, si la diferencia entre el rendimiento en ambos conjuntos es superior al 5-10%, deberíamos preocuparnos y considerar estrategias para corregirlo. 

En modelos de redes neuronales, una señal clara de overfitting es cuando la curva de pérdida en el conjunto de entrenamiento sigue mejorando, pero la del conjunto de validación empieza a empeorar después de cierto número de épocas. 

¿Qué causa overfitting? 

El sobreajuste puede deberse a varias razones, pero las más comunes son: 

Si un modelo tiene demasiados parámetros y es muy flexible, puede ajustar cada pequeño detalle de los datos de entrenamiento, incluyendo valores atípicos y ruido. 

📌 Ejemplo práctico: 
Imagina que quieres predecir el precio de una casa basándote en su tamaño y ubicación. 
Un modelo simple aprendería reglas generales como “las casas más grandes y mejor ubicadas suelen ser más caras”. 
Un modelo demasiado complejo podría detectar correlaciones espurias como “las casas con puertas rojas en cierto barrio son más caras”, lo cual es un detalle irrelevante que no se sostiene en datos nuevos. 

Si tenemos muchas características (columnas) pero pocos ejemplos (filas), el modelo tiene más facilidad para memorizar que para generalizar. 

📌 Ejemplo práctico: 
Supón que realizas una encuesta sobre preferencias de cine, pero solo entrevistas a 5 personas. Si basas todas tus conclusiones en ese pequeño grupo, puedes obtener patrones engañosos: 
“A todos les gusta el cine de terror, por lo que es el género más popular.” 

En Machine Learning, un modelo con pocas observaciones y muchas variables puede memorizar los datos en lugar de encontrar tendencias reales. Esto se conoce como “curse of dimensionality” (la maldición de la dimensionalidad). 

💡 Solución común: Para evitarlo, se recomienda recolectar más datos o aplicar reducción de dimensionalidad con técnicas como PCA o selección de características. 

En modelos de aprendizaje profundo (deep learning), si entrenamos durante demasiadas iteraciones, el modelo deja de aprender patrones generales y empieza a recordar los ejemplos específicos. 
📌 Ejemplo práctico: 
Piensa en un estudiante que repasa un libro de historia demasiadas veces. En lugar de recordar los eventos clave y sus causas, termina memorizando palabra por palabra cada párrafo. Si el examen cambia la redacción de las preguntas, tendrá dificultades para responder correctamente. 

En Machine Learning, si observamos que la pérdida en el conjunto de entrenamiento sigue disminuyendo, pero la precisión en validación o test deja de mejorar (o incluso empeora), es una clara señal de overfitting por sobreentrenamiento. 

💡 Solución común: Usar early stopping, una técnica que detiene el entrenamiento cuando la mejora en validación se estanca. 

¿Cómo corregir el overfitting? 

Algunas estrategias para combatir el overfitting son: 

La Otra Cara de la Moneda: El Subajuste 

Si el overfitting ocurre cuando un modelo es demasiado complejo y memoriza los datos de entrenamiento, el subajuste (underfitting) es justo lo contrario: el modelo es tan simple que no logra captar los patrones subyacentes en los datos. 

📌 Ejemplo práctico: 
Imagina que queremos construir un sistema para detectar si un email es spam o no spam, pero en lugar de analizar el contenido, simplemente lanzamos una moneda al aire para decidir. 

El resultado: El modelo tiene la misma capacidad predictiva tanto en entrenamiento como en prueba, pero sólo porque está fallando en ambos casos por igual. No ha aprendido nada útil. 

El problema: Un modelo así es demasiado limitado y no captura las relaciones clave entre las palabras del correo y su categoría (spam o no spam). 

El desafío en Machine Learning es encontrar un punto intermedio: 

  • Un modelo lo suficientemente complejo para captar patrones relevantes. 
     
  • Pero no tan complejo como para memorizar cada detalle irrelevante. 
     

Para evitar tanto el subajuste como el sobreajuste, es clave elegir modelos adecuados para la complejidad de los datos, aumentar las características relevantes y ajustar los hiperparámetros correctamente. En el post “De la Aleatoriedad al acierto” hablo acerca de que son los hiperparámetros y de como realizar una búsqueda eficiente de los mismos. 

Conclusión: Equilibrando rendimiento y generalización 

El objetivo de un buen modelo no es ser perfecto en el entrenamiento, sino en la vida real. Un modelo que memoriza los datos de entrenamiento puede parecer bueno al principio, pero si no generaliza bien, será inútil en la práctica. 

Para evitar el overfitting, debemos buscar un equilibrio entre el rendimiento en las predicciones y la capacidad de generalización. En próximos artículos, exploraremos en detalle estrategias para ajustar modelos de manera eficiente sin caer en el sobreajuste. 

🚀 Recuerda: No siempre más complejo es mejor. A veces, menos es más.