Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Overfitting y underfitting, Unidad 7 — Cómo combatir el underfitting, 7.1 — Aumentar capacidad del modelo ·

Modelos más complejos

Modelos más complejos: Combatiendo el underfitting

Introducción

En la carrera constante por construir modelos de machine learning que capturen la máxima cantidad de información relevante, uno se encuentra con un desafío particular: el underfitting. Este fenómeno ocurre cuando nuestro modelo es demasiado simple para aprender las características importantes del conjunto de datos de entrenamiento, resultando en una baja precisión tanto en los datos de entrenamiento como en los de prueba. La solución más directa a este problema es aumentar la capacidad de nuestro modelo, lo cual se discute en esta unidad. Aprenderemos cómo hacerlo, qué errores podemos cometer al hacerlo y cuáles son los pasos que debemos seguir para implementarlo de manera efectiva.

Explicación principal con ejemplos

Cuando un modelo es insuficientemente complejo, puede resultar en una sobrestimación del sesgo. Esto ocurre cuando el modelo subestima la varianza y se comporta como si todas las observaciones fueran idénticas a la media (sin importar la dispersión). Para combatir esto, podemos optar por modelos más complejos.

Por ejemplo, consideremos un modelo de regresión lineal simple que intenta predecir el precio de una casa basándose en su tamaño. Si nuestra base de datos incluye también factores como la ubicación, el estado de las instalaciones y otros atributos relevantes para el precio, un modelo lineal simple no será capaz de capturar estas variaciones.

# Ejemplo de regresión lineal simple
import numpy as np
from sklearn.linear_model import LinearRegression

# Datos ficticios: tamaño de la casa en metros cuadrados vs precio en miles de dólares
X = np.array([50, 60, 70, 80, 90]).reshape((-1, 1))
y = np.array([300, 400, 500, 600, 700])

model = LinearRegression()
model.fit(X, y)

# Predicción
print("Predicción para tamaño de 100m^2:", model.predict([[100]]))

En este ejemplo, si nuestra base de datos no incluye variables adicionales que influyen en el precio, un modelo lineal simple será incapaz de predecir con precisión. Para mejorar esto, podemos optar por un modelo polinómico o incluso un arbol de decisión.

Errores típicos / trampas

Al aumentar la complejidad del modelo para combatir el underfitting, es fácil caer en los siguientes errores:

  1. Overspecificación: Crear modelos que son demasiado complejos pueden resultar en overfitting, donde el modelo se ajusta tanto a los datos de entrenamiento como al ruido.
  2. Suboptimización: No encontrar un equilibrio adecuado entre la sencillez y la complejidad del modelo puede llevar a resultados poco precisos.
  3. Sobrecarga computacional: Modelos más complejos pueden requerir más recursos computacionales para entrenar, lo cual puede ser limitante en entornos de producción.

Checklist accionable

Para aumentar la capacidad de tu modelo y combatir el underfitting, sigue estos pasos:

  1. Analiza tus datos: Verifica si hay suficientes variables que puedan influir en la predicción.
  2. Elije un modelo más complejo: Considera arboles de decisión, modelos lineales polinómicos o redes neuronales.
  3. Ajuste de hiperparámetros: Experimenta con diferentes configuraciones para encontrar el mejor equilibrio entre sencillez y precisión.
  4. Regularización: Aplica técnicas como L1 (Lasso) o L2 (Ridge) regularización para prevenir overfitting.
  5. Validación cruzada: Utiliza validación cruzada para garantizar que tu modelo se ajuste bien a los datos de entrenamiento y prueba.
  6. Aumenta la cantidad de datos: Si es posible, colecta más datos para mejorar el rendimiento del modelo.

Cierre: Siguientes pasos

Ahora que hemos cubierto cómo aumentar la capacidad del modelo para combatir el underfitting, aquí están los siguientes pasos a seguir:

  • Avanza a la validación y evaluación de modelos: Asegúrate de validar adecuadamente tu modelo usando técnicas como validación cruzada.
  • Explora más opciones de modelos: Si el modelo lineal polinómico no funciona bien, considera otros tipos de modelos, como las redes neuronales o los árboles de decisión.
  • Optimiza tus hiperparámetros: Ajusta los hiperparámetros del modelo para mejorar su rendimiento.

Siguiendo estos pasos, podrás construir modelos más robustos y fiables que puedan capturar las relaciones complejas en los datos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).