Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Modelos de regresión, Unidad 6 — Regresión no lineal y transformaciones, 6.2 — Regresión polinómica ·

Riesgos de sobreajuste

Riesgos de sobreajuste

Introducción

El sobreajuste, también conocido como overfitting, es un problema frecuente en la regresión no lineal y en modelos complejos. Este fenómeno ocurre cuando un modelo se ajusta demasiado a los datos de entrenamiento, capturando incluso el ruido y las peculiaridades no generalizables del conjunto de entrenamiento, lo que resulta en un rendimiento pobre en datos nuevos o no vistos. En la regresión polinómica, este riesgo es aún mayor debido a su capacidad para ajustar curvas complejas.

Explicación principal con ejemplos

La regresión polinómica puede ser muy flexible, pero esta flexibilidad lleva consigo el riesgo de sobreajuste. Considere la siguiente función y sus aproximaciones polinómicas:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

# Generar datos sintéticos
np.random.seed(0)
X = np.sort(np.random.rand(100, 1))
y = np.sin(2 * np.pi * X) + np.random.randn(100, 1) * 0.2

# Ajustar modelos polinómicos de diferentes grados
degree = [1, 5, 9]
plt.figure(figsize=(15, 6))

for i in range(len(degree)):
    poly_features = PolynomialFeatures(degree=degree[i])
    X_poly = poly_features.fit_transform(X)
    
    model = LinearRegression()
    model.fit(X_poly, y)
    
    plt.subplot(1, len(degree), i + 1)
    plt.scatter(X, y, s=8)
    plt.plot(X, model.predict(X_poly), color='red')
    plt.title(f'Degree {degree[i]}')

plt.tight_layout()
plt.show()

La figura muestra cómo el modelo polinómico de grado 1 ajusta la curva general del seno, mientras que los grados más altos capturan ruido y detalles no significativos. Esto indica una clara señal de sobreajuste.

Errores típicos / trampas

  1. Uso excesivo de variables: A menudo se añaden muchas características sin considerar su relevancia o impacto en el modelo, lo que puede llevar al overfitting.
  2. Grado polinómico demasiado alto: Se elige un grado polinómico muy elevado para ajustar los datos de entrenamiento, capturando incluso ruido no significativo.
  3. Falta de validación cruzada: No se utiliza validación cruzada o cross-validation (CV) para evaluar la generalización del modelo en datos nuevos.

Checklist accionable

  1. Elija adecuadamente el grado polinómico: Utilice técnicas como validación cruzada para encontrar un balance entre underfitting y overfitting.
  2. Reduce el número de características: Elimine variables irrelevantes o poco relevantes que no aporten valor al modelo.
  3. Use regularización: Aplicar métodos de regularización como Ridge, Lasso o Elastic Net puede reducir la complejidad del modelo y evitar overfitting.
  4. Ajuste el modelo en datos nuevos: Evalúe constantemente su modelo en conjuntos de prueba o validación para asegurarse de que generaliza bien a datos no vistos.
  5. Monitoree el rendimiento: Mantenga un registro de métricas como MAE, MSE y R² durante la etapa de entrenamiento y validación.

Cierre con "Siguientes pasos"

  • Explorar modelos alternativos: Aprenda sobre otros tipos de regresión no lineal, como la regresión radial base (RBF) o la regresión polinómica natural.
  • Profundizar en validación cruzada: Comprenenda mejor cómo funciona y cómo puede aplicarse a diferentes conjuntos de datos para mejorar la generalización del modelo.
  • Practique con datasets reales: Aplicar estos conceptos a problemas reales utilizando datasets más complejos y variados.

Siguiendo estas recomendaciones, podrá desarrollar modelos de regresión no lineal que no solo se ajusten bien a los datos de entrenamiento, sino que también generalicen adecuadamente en nuevos datos.

Contacto

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