Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Overfitting y underfitting, Unidad 8 — Overfitting y tipo de modelo, 8.1 — Modelos lineales ·

Regularización como clave

Regularización como clave: Mitigando Overfitting en Modelos Lineales

Introducción

En la fabricación de modelos predictivos, el overfitting es un mal endémico que puede llevar a resultados poco útiles. Es particularmente problemático con los modelos lineales, donde una complejidad excesiva puede hacer que el modelo se ajuste demasiado a los datos de entrenamiento, capturando ruido y detalles locales en lugar de las tendencias generales. La regularización es una técnica eficaz para mitigar este problema, asegurando que nuestro modelo no solo aprenda la señal, sino también generalice mejor.

Explicación principal

La regularización se basa en penalizar la complejidad del modelo, lo que disminuye su capacidad de ajustarse a los datos de entrenamiento. En modelos lineales, esto significa limitar el tamaño de los coeficientes (pesos) para evitar que crezcan demasiado y causen overfitting.

Ejemplo en Python

Vamos a ver un ejemplo práctico usando la biblioteca sklearn para aplicar regularización en un modelo lineal. Aquí está un código breve:

from sklearn.datasets import make_regression
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.model_selection import train_test_split
import numpy as np

# Generamos datos sintéticos
X, y = make_regression(n_samples=100, n_features=2, noise=0.1)

# Dividimos los datos en entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Modelo sin regularización (lineal)
model_no_reg = LinearRegression()
model_no_reg.fit(X_train, y_train)
score_no_reg = model_no_reg.score(X_test, y_test)
print(f"Score sin regularización: {score_no_reg:.4f}")

# Modelo con regularización (Ridge)
model_ridge = Ridge(alpha=1.0)  # alpha es la constante de penalización
model_ridge.fit(X_train, y_train)
score_ridge = model_ridge.score(X_test, y_test)
print(f"Score con regularización: {score_ridge:.4f}")

En este ejemplo, alpha es una hiperparámetro que controla la magnitud de la penalización. Un valor alto de alpha resultará en coeficientes más pequeños (más regulados), mientras que un valor bajo permitirá que los coeficientes crezcan sin restricciones.

Errores típicos / trampas

Mientras aplicamos regularización, es fácil caer en algunos errores comunes:

  1. Omisión de validación cruzada: A menudo se olvida aplicar regularización a través de la validación cruzada para seleccionar el mejor valor de alpha. Esto puede resultar en una sobreestimación del rendimiento en los datos de prueba.
  1. Mala elección de alpha: Un valor muy alto de alpha puede hacer que el modelo sea demasiado regulado, lo que se conoce como underfitting (aprender demasiado poco). Es importante ajustar alpha cuidadosamente para encontrar un equilibrio entre overfitting y underfitting.
  1. Ignorar la interacción de características: La regularización solo limita los coeficientes individuales, pero no elimina las interacciones entre características. En algunos casos, podrías necesitar usar técnicas adicionales como feature selection para mejorar la generalización.

Checklist accionable

Aquí tienes una lista de acciones a tomar para mitigar el overfitting en modelos lineales:

  1. Ajuste de alpha: Experimenta con diferentes valores de alpha para encontrar un equilibrio entre overfitting y underfitting.
  2. Validación cruzada: Utiliza la validación cruzada para seleccionar el mejor valor de alpha.
  3. Regularización L1 (Lasso): Prueba modelos Lasso que usan regularización L1, lo que puede eliminar completamente ciertas características si sus coeficientes se reducen a cero.
  4. Feature engineering: Mejora tus datos de entrada con nueva información relevante o transformaciones de características.
  5. Modelo más complejo: Si el overfitting persiste, considera modelos lineales más complejos, como regresión polinomial.

Cierre: Siguientes pasos

Ahora que has aprendido cómo usar regularización en modelos lineales para mitigar el overfitting:

  • Experimenta con diferentes valores de alpha y aplica validación cruzada para seleccionar los mejores parámetros.
  • Explora la regularización L1 (Lasso) como una alternativa a Ridge, especialmente si estás trabajando con muchas características.
  • Considere mejorar tus datos mediante feature engineering o el uso de características no lineales.

La regularización es una herramienta poderosa para construir modelos lineales robustos y generalizables. Con práctica y experimentación, podrás dominar este concepto clave en la ciencia de datos y la ingeniería de machine learning.

¡Felicitaciones por tomar el primer paso hacia un modelo más fuerte y menos propenso a overfitting!

Contacto

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