Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Overfitting y underfitting, Unidad 6 — Cómo combatir el overfitting, 6.1 — Regularización ·

Ridge y Lasso (intuición)

Ridge y Lasso (intuición)

Introducción

En el mundo de la inteligencia artificial, especialmente en el campo del machine learning, los modelos complejos pueden dar lugar a un overfitting, donde el modelo se ajusta tanto al conjunto de entrenamiento que comienza a capturar ruido y detalles no generalizables. Para combatir este problema, existen técnicas llamadas regularización, las cuales añaden una penalización adicional en la función de costo del modelo para controlar su complejidad.

Entre las diversas formas de regularización, Ridge (L2) y Lasso (L1) son particularmente útiles debido a sus propiedades distintivas. Este artículo explora el concepto de regularización con un enfoque detallado en estas dos técnicas, proporcionando una comprensión intuitiva y práctica sobre cómo implementarlas para mejorar la generalización de los modelos.

Explicación principal

¿Qué es Ridge (L2) Regularización?

La Ridge Regularización añade una penalización a la función de costo en términos del cuadrado de las características. La función de costo original se modifica para incluir:

\[ \text{Costo Regularizado} = \text{Costo Original} + \alpha \sum_{j=1}^{n} w_j^2 \]

Donde \( \alpha \) es un hiperparámetro que controla la intensidad de la regularización, y \( w_j \) son los pesos del modelo. Esta penalización se aplica a todos los parámetros del modelo, lo cual ayuda a reducir el tamaño (o magnitud) de estos parámetros sin eliminarlos completamente.

Ejemplo práctico

from sklearn.linear_model import Ridge
import numpy as np

# Supongamos que X es nuestro conjunto de características y Y son los valores objetivo.
X = np.random.rand(100, 5)
y = np.random.rand(100)

ridge = Ridge(alpha=1.0)  # Ajuste el valor de alpha según sea necesario
ridge.fit(X, y)
print("Pesos del modelo regularizado con Ridge:", ridge.coef_)

¿Qué es Lasso (L1) Regularización?

La Lasso Regularización también añade una penalización a la función de costo, pero esta vez en términos del valor absoluto de las características. La función de costo se modifica para incluir:

\[ \text{Costo Regularizado} = \text{Costo Original} + \alpha \sum_{j=1}^{n} |w_j| \]

La Lasso Regularización puede hacer que algunos parámetros del modelo se reduzcan exactamente a cero, lo cual es útil para realizar selección de características (feature selection) al eliminar los parámetros menos importantes.

Ejemplo práctico

from sklearn.linear_model import Lasso

# Usando el mismo conjunto de datos X y y del ejemplo anterior.
lasso = Lasso(alpha=1.0)
lasso.fit(X, y)
print("Pesos del modelo regularizado con Lasso:", lasso.coef_)

Visualización intuitiva

Imaginemos un espacio donde cada eje representa una característica de nuestro modelo. Cada peso \( w_j \) es una dimensión en este espacio. La regularización Ridge se puede visualizar como un círculo (o hiperesfera en múltiples dimensiones), mientras que la Lasso Regularización se visualiza como un cubo (o hiper-cubo). Los parámetros del modelo que están dentro de estas formas pero fuera del origen son ajustados, mientras los que tocan las formas y caen exactamente en el origen son eliminados.

Errores típicos / trampas

  1. No ajustar adecuadamente el hiperparámetro \( \alpha \): Un valor de \( \alpha \) muy alto puede hacer que la regularización sea demasiado fuerte, reduciendo la capacidad del modelo a niveles inaceptables y causando underfitting.
  1. Ignorar las condiciones del dataset: La eficacia de Ridge o Lasso depende en gran medida del conjunto de datos. Modelos con muchas características relevantes no nulas pueden beneficiarse más de Lasso, mientras que modelos con características redundantes podrían ver una mejora mayor con Ridge.
  1. No considerar la interacción entre las variables: La regularización se aplica a cada parámetro individualmente en Lasso, lo cual puede olvidar las posibles interacciones complejas entre las variables. Una alternativa podría ser usar modelos de interacción para capturar estas relaciones.

Checklist accionable

  1. Ajuste el hiperparámetro \( \alpha \) cuidadosamente: Utiliza validación cruzada y busque un balance entre overfitting y underfitting.
  2. Analiza la importancia de las características: Verifica cómo cambian los pesos con diferentes valores de \( \alpha \).
  3. Revisa el modelo regularizado: Comprueba si algunos parámetros se han eliminado exactamente (Lasso) o simplemente reducidos en Ridge.
  4. Asegúrate de que la regularización es necesaria: Pregunta si hay evidencia clara de overfitting antes de aplicar regularización.
  5. Mantén un registro de los cambios: Documenta cómo ajustaste \( \alpha \) y qué efecto tuvo en el rendimiento del modelo.

Cierre: Siguientes pasos

  • Explora la aplicación de regularización en otros modelos: Ridge y Lasso no son exclusivos para regresión lineal, pero también pueden aplicarse a algoritmos como redes neuronales.
  • Aprende sobre otras técnicas de regularización: Métodos adicionales como Elastic Net combinan L1 (Lasso) y L2 (Ridge).
  • Ejerce con datasets reales: Practica la aplicación de estas técnicas en diferentes conjuntos de datos para obtener más experiencia.

Siguiendo estos pasos, podrás mejorar significativamente la generalización de tus modelos de machine learning, asegurando que sean fiables y útiles en el mundo real.

Contacto

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