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 ·

Grado del polinomio

Grado del polinomio

Introducción

La regresión no lineal es una técnica que permite modelar relaciones entre variables cuando estos vínculos no son simplemente lineales. Una forma común de abordar la regresión no lineal es mediante el uso de modelos polinómicos, en los cuales las predicciones se basan en una función polinómica de las características del conjunto de datos. En este artículo, exploraremos cómo ajustar y seleccionar el grado correcto de un polinomio para modelar relaciones no lineales efectivamente.

Explicación principal con ejemplos

La regresión polinómica extiende la regresión lineal al permitir que las predicciones sean funcionales de una combinación lineal de potencias de las variables explicativas. La forma general de un modelo polinómico es:

\[ y = \beta_0 + \beta_1 x + \beta_2 x^2 + \cdots + \beta_p x^p + \epsilon \]

Dónde \( p \) es el grado del polinomio, y \(\epsilon\) es el error aleatorio.

Ejemplo práctico

Supongamos que estamos trabajando con un conjunto de datos en el que la relación entre la edad (en años) y la altura (en centímetros) no es lineal. Podemos modelar esto usando una regresión polinómica:

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

# Generamos datos de ejemplo
np.random.seed(0)
X = np.sort(np.random.rand(50)) * 100
y = X + (X - 25) ** 2 + (X - 75) ** 2 + np.random.randn(50)

plt.scatter(X, y, label='Datos de ejemplo')
plt.xlabel('Edad')
plt.ylabel('Altura')

# Creamos características polinómicas
poly_features = PolynomialFeatures(degree=3)
X_poly = poly_features.fit_transform(np.array(X).reshape(-1, 1))

# Ajustamos el modelo
model = LinearRegression()
model.fit(X_poly, y)

# Predecimos valores
y_pred = model.predict(X_poly)

plt.plot(X, y_pred, color='red', label='Modelo polinómico de grado 3')
plt.legend()
plt.show()

En este ejemplo, ajustamos un modelo polinómico de grado 3 a los datos. La curva resultante se ve mucho más suave y adaptable que una línea recta.

Errores típicos / trampas

  1. Overfitting: Un modelo polinómico con un alto grado puede ajustarse demasiado bien a los datos de entrenamiento, lo que resulta en mal rendimiento en datos no vistos.
  2. Underfitting: Si el grado del polinomio es muy bajo, el modelo podría subestimar la relación en datos reales y no capturar tendencias importantes.
  3. Selección incorrecta de variables: A veces, las transformaciones o selección de características pueden resultar en un modelo menos preciso.

Checklist accionable

  1. Validación cruzada para seleccionar el grado del polinomio:
  • Usar técnicas como el método de cross-validation para elegir el grado que minimiza la métrica deseada.
  1. Incluye una figura o gráfico:
  • Visualizar los datos originales y diferentes modelos con grados polinómicos distintos.
  1. Validación de las supuestos del modelo lineal:
  • Verificar si el modelo cumple con los supuestos clásicos como homocedasticidad, independencia de errores y linealidad.
  1. Evaluación de rendimiento en conjunto de prueba:
  • Evaluar el rendimiento del modelo en un conjunto de datos que no ha sido usado durante la entrenamiento para detectar overfitting o underfitting.
  1. Ajuste visual de los residuos:
  • Analizar gráficamente los residuos para detectar patrones que indiquen problemas con el ajuste.

Cierre

La regresión polinómica es una herramienta poderosa para modelar relaciones no lineales en datos, pero debe usarse cuidadosamente para evitar overfitting y underfitting. Al seguir estos pasos, podrás optimizar la selección del grado de tu modelo polinómico para obtener predicciones precisas y fiables.

Siguientes pasos

  • Explorar diferentes grados: Prueba varios grados en tus modelos para ver cómo afectan a su rendimiento.
  • Usar técnicas avanzadas: Considera el uso de técnicas más avanzadas como la regularización o modelos no lineales alternativos.
  • Evaluación continua: Mantén vigilado tu modelo con datos nuevos y ajustes regulares para garantizar que continue siendo relevante.

Contacto

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