Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Overfitting y underfitting, Unidad 3 — Diagnóstico con datos de entrenamiento y prueba, 3.1 — Comparar errores ·

Error en entrenamiento

Error en entrenamiento

Introducción

El error en entrenamiento es una medida crucial que nos ayuda a entender cómo bien un modelo está aprendiendo los datos de forma interna. Es fundamental para detectar si nuestro modelo está sobreajustando (overfitting) o subajustando (underfitting), ya que estos problemas pueden afectar gravemente la capacidad del modelo para generalizar a datos no vistos. En esta sección, exploraremos qué es el error en entrenamiento, cómo calcularlo y analizarlo, y cómo identificar errores comunes en su uso.

Explicación principal con ejemplos

El error en entrenamiento (también conocido como bias o sesgo) mide la diferencia entre los valores predichos por nuestro modelo para los datos de entrenamiento y sus verdaderos valores. Matemáticamente, se puede calcular como:

\[ \text{Error en entrenamiento} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \]

donde \( n \) es el número total de muestras en el conjunto de entrenamiento, \( y_i \) son los valores reales y \( \hat{y}_i \) son las predicciones del modelo. Un error en entrenamiento bajo sugiere que nuestro modelo está ajustado a los datos de entrenamiento con demasiada precisión (overfitting), mientras que un alto error indica que el modelo no es capaz de aprender adecuadamente la relación entre las características y los resultados esperados (underfitting).

A continuación, proporcionamos un ejemplo en Python utilizando Scikit-Learn para calcular el error en entrenamiento:

from sklearn.datasets import make_regression
from sklearn.linear_model import LinearRegression
import numpy as np

# Generar datos de ejemplo
X, y = make_regression(n_samples=100, n_features=1, noise=20)
model = LinearRegression()

# Ajustar el modelo a los datos de entrenamiento
model.fit(X, y)

# Calcular el error en entrenamiento
y_pred = model.predict(X)
training_error = np.mean((y - y_pred) ** 2)

print(f"Error en entrenamiento: {training_error}")

En este ejemplo, make_regression genera un conjunto de datos sintético. Luego, ajustamos una línea recta a estos datos utilizando el método de mínimos cuadrados ordinarios (LinearRegression). Finalmente, calculamos y mostramos el error en entrenamiento para ver cómo se ajusta nuestro modelo.

Errores típicos / trampas

  1. Ajuste al ruido: Un error en entrenamiento demasiado bajo puede indicar que el modelo está ajustándose a los datos de ruido, es decir, características no relevantes o incluso aleatorias. Esto es un signo de overfitting.
  2. Comparación inadecuada con validación cruzada: Comparar directamente el error en entrenamiento sin validar correctamente puede dar una visión sesgada del rendimiento del modelo. La validación cruzada es esencial para obtener una medida más precisa del rendimiento en datos no vistos.
  3. Ignorar los datos de prueba: No utilizar o mal utilizar la validación de datos de prueba también puede llevar a interpretaciones erróneas sobre el desempeño real del modelo.

Checklist accionable

  1. Valida correctamente tus datos usando validación cruzada para obtener una medición más precisa del error en entrenamiento.
  2. Mira los gráficos de curvas de aprendizaje para entender mejor cómo se comportan los errores tanto en entrenamiento como en validación.
  3. Ajusta el conjunto de parámetros del modelo según sea necesario, considerando diferentes configuraciones y técnicas de regularización.
  4. Evita ajustar al ruido al ajustar tus modelos a datos inadecuados o con demasiada variabilidad aleatoria.
  5. Utiliza una variedad de métricas para evaluar el desempeño del modelo, no solo basándote en el error en entrenamiento.

Cierre

Con un entendimiento sólido del error en entrenamiento y cómo usarlo correctamente, puedes mejorar significativamente la capacidad de tu modelo para generalizar a datos nuevos. Asegúrate siempre de validar adecuadamente tus modelos utilizando técnicas como validación cruzada, y considera las trampas comunes para obtener resultados más precisos.

Siguientes pasos

  • Explora los métodos de regularización en profundidad, como Ridge y Lasso.
  • Implementa la validación cruzada en tus análisis para evaluar mejor el rendimiento del modelo.
  • Ajusta y optimiza tu modelo utilizando diferentes configuraciones y técnicas avanzadas.

Contacto

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