Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

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

Limitaciones

Limitaciones de la Regresión Lineal

Introducción

La regresión lineal es uno de los modelos más simples y ampliamente utilizados en machine learning. Aunque es fácil de implementar y entender, hay varias limitaciones que todos los programadores deben tener en cuenta antes de aplicarlo a sus proyectos. Este artículo explorará estas limitaciones, proporcionando ejemplos prácticos y consejos para evitar errores comunes.

Explicación Principal

La regresión lineal busca modelar la relación entre una variable dependiente (también conocida como variable respuesta) e una o más variables independientes (o predictores). La ecuación general de la regresión lineal simple es:

\[ y = \beta_0 + \beta_1 x + \epsilon \]

donde:

  • \(y\) es el valor que queremos predecir.
  • \(x\) es el predictor.
  • \(\beta_0\) es la intersección con el eje y (el valor de \(y\) cuando \(x = 0\)).
  • \(\beta_1\) es la pendiente del modelo, indicando cuánto cambia \(y\) por unidad de cambio en \(x\).
  • \(\epsilon\) es el error aleatorio.

Ejemplo Práctico

Supongamos que estamos intentando predecir el precio de una casa basándonos en su tamaño (en metros cuadrados). Podemos usar la regresión lineal para modelar esta relación:

from sklearn.linear_model import LinearRegression
import numpy as np

# Datos de ejemplo: tamaño y precio de las casas
sizes = np.array([120, 150, 200, 300, 400]).reshape((-1, 1))
prices = np.array([200000, 240000, 280000, 360000, 400000])

# Crear el modelo
model = LinearRegression()

# Entrenar el modelo
model.fit(sizes, prices)

# Predecir el precio para un tamaño dado
predicted_price = model.predict(np.array([[250]]))
print(f"Predicción: {predicted_price[0]:.2f}")

Sin embargo, la regresión lineal tiene varias limitaciones que pueden afectar su rendimiento en situaciones reales.

Errores Típicos / Trampas

  1. Hipersuperficie Lineal: La regresión lineal asume una relación lineal entre las variables independientes y dependiente, lo cual no siempre es el caso en la realidad. Si los datos presentan una relación no lineal, la regresión lineal puede dar resultados erróneos.
  1. Multi-Colinealidad: La regresión lineal puede ser susceptible a problemas de multi-colineralidad cuando las variables independientes están altamente correlacionadas entre sí. Esto puede hacer que los coeficientes sean inestables y difíciles de interpretar.
  1. Outliers: Los datos extremos (outliers) pueden inflar o distorsionar el modelo lineal, lo cual es un problema particularmente grave en la regresión lineal debido a su simplicidad.

Ejemplo: Hipersuperficie Lineal

Imagina que estamos intentando predecir el precio de una casa basado en su tamaño y número de habitaciones. Si los datos no siguen una relación lineal, la regresión lineal puede fallar:

import matplotlib.pyplot as plt

# Datos de ejemplo: tamaño, habitaciones y precio de las casas
sizes = np.array([120, 150, 200, 300, 400]).reshape((-1, 1))
num_rooms = np.array([2, 3, 3, 4, 5])
prices = np.array([200000, 280000, 290000, 360000, 420000])

# Crear el modelo lineal
model = LinearRegression()

# Entrenar el modelo con dos predictores
model.fit(np.hstack([sizes, num_rooms]), prices)

# Predecir el precio para un tamaño y número de habitaciones dado
predicted_price = model.predict(np.array([[250, 3]]))
print(f"Predicción: {predicted_price[0]:.2f}")

# Graficar los datos y la línea de regresión lineal
plt.scatter(sizes, prices, label='Datos')
plt.plot(sizes, model.predict(sizes), color='red', label='Regresión Lineal')
plt.xlabel('Tamaño (m^2)')
plt.ylabel('Precio ($)')
plt.legend()
plt.show()

En este ejemplo, la regresión lineal no captura correctamente la relación entre tamaño y precio.

Checklist Accionable

  1. Verificar la Relación de Variables: Utiliza gráficos de dispersión para identificar si existe una relación lineal entre tus variables independientes y dependiente.
  2. Pruebas de Multicolinealidad: Usa el Índice de Correlación de Varias Variables (VIF) para detectar la multicolinealidad.
  3. Manejo de Outliers: Identifica y maneja los outliers en tus datos, ya sea mediante eliminación o transformación.
  4. Evaluación del Modelo: Evalúa el rendimiento de tu modelo utilizando métricas como R² y Mean Absolute Error (MAE).
  5. Pruebas con Diferentes Modelos: Intenta aplicar modelos no lineales, como la regresión polinomial o los árboles de regresión, para mejorar el ajuste.

Cierre

La regresión lineal es un modelo poderoso y fácil de implementar, pero también tiene sus limitaciones. Es importante ser conscientes de estas limitaciones y tomar medidas para mitigarlas antes de aplicar esta técnica a tus proyectos de machine learning. En próximos artículos, exploraremos cómo abordar algunos de estos desafíos con modelos más complejos.

Siguientes Pasos

  • Probar Modelos No Lineales: Prueba modelos no lineales como la regresión polinomial o el árbol de regresión para mejorar la precisión.
  • Incorporar Interacciones entre Variables: Ajusta tu modelo para incluir interacciones entre variables independientes, lo que puede mejorar su capacidad para capturar relaciones complejas en los datos.
  • Regularización: Utiliza técnicas de regularización como Ridge o Lasso para evitar el overfitting y obtener mejores predicciones.

Siguiendo estos pasos, podrás mejorar significativamente la calidad del modelo de regresión lineal y asegurarte de que estés utilizando la técnica adecuada en cada situación.

Contacto

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