Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Modelos de regresión, Unidad 7 — Regularización en regresión, 7.1 — Por qué regularizar ·

Bias vs variance

Bias vs Variance: Por qué regularizar los modelos de regresión

Introducción

En el contexto del machine learning, especialmente en la regresión, dos conceptos clave que a menudo se presentan como problemas opuestos son bias (sesgo) y variance (variabilidad). Estos términos describen cómo un modelo de predicción puede fallar en diferentes formas: puede ser demasiado simplista o demasiado complejo. Regularizar los modelos de regresión es una técnica poderosa para equilibrar estos dos aspectos, permitiendo que el modelo no subajuste ni sobreajuste la data.

Explicación principal con ejemplos

Sesgo (Bias)

El sesgo se refiere a la diferencia sistemática entre las predicciones del modelo y los valores reales. Un modelo con alto sesgo es uno que generalmente subestima o sobreestima de manera constante en todo el dominio de los datos.

Por ejemplo, considera un modelo lineal simple para predecir el precio de una casa basado únicamente en su área. Si el modelo no incluye otras características relevantes (como el número de habitaciones), puede subestimar sistemáticamente los precios de las casas con múltiples habitaciones.

Variabilidad (Variance)

La variedad se refiere a la sensibilidad del modelo al ruido en los datos. Un modelo con alta varianza es uno que ajusta muy bien a su conjunto de entrenamiento, pero no generaliza bien a nuevos datos. Esto puede ser debido a que el modelo es demasiado complejo y captura las características aleatorias del conjunto de entrenamiento.

Imagina un modelo polinómico de grado alto intentando predecir la densidad de población en una ciudad basándose en una serie de variables geográficas y sociales. Este modelo puede ajustarse perfectamente a los datos de entrenamiento, pero al aplicarlo a ciudades nuevas, mostrará grandes variaciones sin sentido.

Ejemplo práctico

import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline

# Generar datos sintéticos con ruido
np.random.seed(0)
X = np.random.rand(100, 1) * 10
y = X.ravel() ** 2 + 5 * np.random.randn(100)

# Crear modelos lineal y polinómico de grado 2
model_linear = LinearRegression()
model_poly = make_pipeline(PolynomialFeatures(degree=2), LinearRegression())

# Entrenar modelos
model_linear.fit(X, y)
model_poly.fit(X, y)

# Predicciones
y_pred_linear = model_linear.predict(X)
y_pred_poly = model_poly.predict(X)

import matplotlib.pyplot as plt

plt.scatter(X, y, color='blue', label='Datos originales')
plt.plot(X, y_pred_linear, color='red', label='Modelo lineal (Bajo sesgo)')
plt.plot(X, y_pred_poly, color='green', label='Modelo polinómico de grado 2 (Alta varianza)')
plt.legend()
plt.show()

En este ejemplo, el modelo lineal tiene un bajo sesgo pero alta varianza, mientras que el modelo polinómico de grado alto tiene la contraparte: baja varianza y alta variabilidad. La regularización ayuda a encontrar ese equilibrio óptimo.

Errores típicos / trampas

  1. Subajuste (Underfitting): Si un modelo no está lo suficientemente complejo, puede subestimar la relación entre las variables y los resultados, causando un alto sesgo.
  2. Sobreajuste (Overfitting): Un modelo demasiado complejo puede capturar ruido en los datos de entrenamiento, lo que reduce su capacidad para generalizar a nuevos datos.
  3. Regularización excesiva: Aplicar regularización sin control puede resultar en un modelo demasiado simple, lo que conduce a subajuste.

Checklist accionable

  1. Evalúa la relación entre sesgo y varianza utilizando gráficos de aprendizaje curvo (Learning Curves).
  2. Verifica el rendimiento del modelo en conjuntos de validación.
  3. Usa técnicas como k-fold cross-validation para garantizar que el modelo no sobreajuste los datos de entrenamiento.
  4. Experimenta con diferentes niveles de regularización para encontrar el mejor equilibrio entre sesgo y varianza.
  5. Asegúrate de tener suficientes muestras de datos para evitar subajustar el modelo.

Siguientes pasos

  1. Implementa regularización en modelos lineales: Utiliza técnicas como Ridge, Lasso o Elastic Net según sea necesario.
  2. Explora modelos no lineales: Considera modelos no lineales como árboles de regresión y bosques aleatorios para casos donde la relación entre variables puede ser compleja.
  3. Refina tus datos: Realiza feature engineering y selecciona características relevantes para reducir el sesgo.

La regularización es una herramienta valiosa en el toolbox del programador de machine learning, permitiendo alinear los modelos a los datos sin caer en los trampas de subajuste o sobreajuste.

Contacto

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