Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Machine Learning clásico, Unidad 9 — Selección y comparación de modelos, 9.1 — Bias vs variance ·

Señales prácticas

Señales prácticas para equilibrar Bias y Variance en Machine Learning clásico

Introducción

En la práctica de machine learning, uno de los mayores retos es encontrar un modelo que no solo se ajuste perfectamente a nuestros datos de entrenamiento (low bias) sino también generalice bien a nuevos datos (low variance). Este equilibrio entre bias y variance es crucial para construir modelos efectivos. La teoría del aprendizaje por refuerzo sugiere que la curva de aprendizaje debe tener un bias inicial bajo pero puede aumentar la varianza si se ajusta demasiado al conjunto de datos de entrenamiento, lo que conduce a un overfitting (un modelo que es muy complejo y adapta demasiados detalles del conjunto de entrenamiento). Por otro lado, un alto bias en un modelo puede resultar en underfitting (un modelo que no se ajusta correctamente a los datos).

En este artículo, exploraremos las señales prácticas para detectar y equilibrar el bias y la varianza en modelos de machine learning clásico. Veremos cómo implementar estos conceptos en un contexto real con un ejemplo de código simple.

Explicación principal

Ejemplo: Regresión lineal vs. Regresión polinomial

Para ilustrar las ideas, consideremos una regresión lineal y una regresión polinomial de grado 5 sobre un conjunto de datos sintético:

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

# Generar datos sintéticos
np.random.seed(0)
X = np.linspace(-1, 1, 20).reshape(-1, 1)
y = X.flatten() + 0.2 * np.power(X.flatten(), 3) + np.random.randn(*X.shape) * 0.1

# Modelos de regresión lineal y polinomial
linear_model = make_pipeline(PolynomialFeatures(1), LinearRegression())
polynomial_model = make_pipeline(PolynomialFeatures(5), LinearRegression())

# Ajustar modelos
linear_model.fit(X, y)
polynomial_model.fit(X, y)

# Visualizar resultados
plt.scatter(X.flatten(), y, color='blue', label='Datos')
plt.plot(X.flatten(), linear_model.predict(X), color='red', label='Regresión lineal')
plt.plot(X.flatten(), polynomial_model.predict(X), color='green', label='Polinomial grado 5')
plt.legend()
plt.show()

En este ejemplo, la regresión lineal (roja) se ajusta bien a los datos de entrenamiento pero tiene una alta varianza y probablemente underfit. La regresión polinomial (verde), por otro lado, sobreajusta al conjunto de datos y tiene una baja varianza.

Errores típicos / trampas

  1. Overfitting en modelos lineales: Asegúrate de no ajustar un modelo lineal con más variables explicativas del necesario para evitar overfit.
  2. Underfitting en modelos complejos: Evita construir modelos muy complejos que puedan sobreajustarse a los datos de entrenamiento, lo cual resulta en underfit.
  3. Mala elección de hiperparámetros: Un mal ajuste de hiperparámetros puede llevar a un modelo con alta varianza o bias.

Checklist accionable

  1. Evaluación del error en conjunto de validación: Verifica que el error no disminuya significativamente con más datos de entrenamiento.
  2. Visualización de los errores de predicción: Usa gráficos como scatter plots para observar si hay patrones erróneos en las predicciones.
  3. Validación cruzada: Utiliza esta técnica para asegurar que el modelo no esté overfit al conjunto de datos de entrenamiento.
  4. Simplificación del modelo: Si se sobreajusta, intenta reducir la complejidad del modelo.
  5. Regularización: Aplica técnicas de regularización como Ridge o Lasso para controlar la varianza.

Cierre: Siguientes pasos

  • Exploración adicional de modelos: Prueba diferentes tipos de modelos y ajusta hiperparámetros para encontrar el equilibrio ideal entre bias y variance.
  • Análisis de características: Evalúa las características más relevantes y elimina aquellas que no aportan valor significativo, reduciendo la varianza.
  • Ajuste iterativo: Continúa ajustando el modelo hasta que encuentres un equilibrio óptimo entre bias y variance.

Por medio de estos pasos prácticos, podrás mejorar la calidad de los modelos de machine learning clásico en tus proyectos. Recuerda siempre evaluar y ajustar tu modelo para garantizar su capacidad de generalización a datos no vistos.

Contacto

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