Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Scikit-learn desde cero, Unidad 5 — Modelos de regresión en scikit-learn, 5.2 — Regresión regularizada ·

Ridge

Regresión Ridge: Un Enfoque Regularizado para Modelos Lineales

Introducción

La regresión Ridge es una técnica regularizada que se utiliza para prevenir el overfitting en modelos de regresión lineal. Es particularmente útil cuando los datos tienen una alta multicolinearidad (es decir, las variables independientes están altamente correlacionadas entre sí) o cuando se tiene más variables que observaciones. En Scikit-learn, la clase Ridge proporciona una implementación sencilla y eficiente de este modelo.

Explicación Principal

La regresión Ridge ajusta los coeficientes de un modelo lineal añadiendo una penalización a la suma de cuadrados del error (SSE). Esta penalización se conoce como L2 norma, que es simplemente la suma de los cuadrados de todos los coeficientes. La fórmula matemática para el Ridge regression es:

\[ \hat{\beta}_{ridge} = \arg \min_{\beta} \left( (y - X\beta)^T(y - X\beta) + \alpha \beta^T \beta \right) \]

Donde:

  • \( y \) son las etiquetas objetivo.
  • \( X \) es la matriz de características.
  • \( \beta \) son los coeficientes a estimar.
  • \( \alpha \) es el parámetro de regularización, que controla cuánto se penaliza el tamaño de los coeficientes (mayor \( \alpha \) significa más penalización).

Un ejemplo de cómo implementar Ridge en Scikit-learn sería:

from sklearn.linear_model import Ridge
import numpy as np

# Datos ficticios
X = np.array([[1, 2], [3, 4]])
y = np.array([0.5, 2.5])

# Instanciar el modelo con alpha = 1 (parámetro de regularización)
ridge = Ridge(alpha=1)

# Entrenar el modelo
ridge.fit(X, y)

# Predecir valores
ridge.predict([[1, 2]])

Errores Típicos / Trampas

  1. Selección inadecuada del parámetro de regularización (\(\alpha\)):
  • Un valor demasiado pequeño puede resultar en underfitting (mala capacidad para predecir nuevas observaciones).
  • Un valor demasiado grande puede resultar en overfitting (sobreajuste a los datos de entrenamiento).
  1. No considerar la normalización de variables:
  • Las regresiones Ridge pueden ser sensibles a las escalas de diferentes características. Es importante normalizar o estandarizar las características antes de aplicar Ridge.
  1. Ignorar la correlación entre variables:
  • La regularización L2 (Ridge) reduce el impacto de los coeficientes en función de su magnitud, lo que es útil cuando las variables están altamente correlacionadas.

Checklist Accionable

  1. Estimar \(\alpha\): Utilizar técnicas como GridSearchCV o RandomizedSearchCV para encontrar un valor óptimo de \(\alpha\).
  2. Normalizar características: Asegurarse de que todas las características están en la misma escala antes de aplicar Ridge.
  3. Verificar correlación entre variables: Analizar y posiblemente eliminar o reducir la multicolinearidad si es necesario.
  4. Evaluar el modelo: Usar métricas como R2 score, MAE (Mean Absolute Error) o MSE (Mean Squared Error) para evaluar la calidad del ajuste.
  5. Comparar con otros modelos: Comparar el rendimiento de Ridge con otros modelos no regularizados como Linear Regression.

Cierre: Siguientes Pasos

  1. Explicar en profundidad \(\alpha\): Investigar más sobre cómo se comporta Ridge para diferentes valores de \(\alpha\) y sus efectos en la regresión.
  2. Implementar validación cruzada: Usar cross_val_score o GridSearchCV para validar el rendimiento del modelo en múltiples particiones del conjunto de datos.
  3. Comprender mejor la regularización L2: Analizar cómo se aplica la penalización a los coeficientes y su efecto sobre la curva de aprendizaje del modelo.

La regresión Ridge es una herramienta poderosa en el armario del analista de datos, especialmente cuando se enfrentan a problemas de multicolinearidad o cuando necesitan regularizar un modelo lineal. Asegúrate de utilizarla con cuidado y considerar las posibles trampas para obtener los mejores resultados.


Este artículo ofrece una visión detallada de la regresión Ridge, su implementación en Scikit-learn, errores comunes a evitar y sugerencias prácticas para mejorar el modelo.

Contacto

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