Qué es underfitting
Introducción
El underfitting, también conocido como subajuste, ocurre cuando un modelo de machine learning no es capaz de capturar la relación entre las variables predictoras y las respuestas. Es uno de los problemas más comunes en el desarrollo de modelos predictivos, y puede llevar a resultados inexactos o irrelevantes. Este fenómeno es crucial para entender porque a menudo se considera al mismo nivel de importancia que el overfitting (sobreajuste).
Explicación principal con ejemplos
El underfitting sucede cuando un modelo es demasiado simple para aprender la complejidad del problema que intenta resolver. Este modelo no tiene la capacidad suficiente para capturar las relaciones entre los datos de entrada y los outputs deseados, lo que resulta en errores constantes tanto en el conjunto de entrenamiento como en el de prueba.
Ejemplo práctico
Vamos a considerar un ejemplo simple utilizando regresión lineal:
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# Generación de datos (solo para ilustración)
np.random.seed(0)
X = np.linspace(0, 10, 100).reshape(-1, 1) # Datos lineales con ruido
y = X * 2 + 5 + np.random.normal(scale=3, size=X.shape[0]) # Añadimos un poco de ruido
# Modelado
model = LinearRegression()
model.fit(X, y)
# Predicción
predictions = model.predict(X)
mse = mean_squared_error(y, predictions)
print(f"Errores cuadráticos medios (MSE): {mse}")
En este ejemplo, si el modelo lineal es capaz de capturar la tendencia general pero con un error significativo debido al ruido y a la simplificación del modelo, esto sería una señal de underfitting. El MSE alto refleja que el modelo no está aprendiendo correctamente las relaciones existentes en los datos.
Errores típicos / trampas
- Modelo demasiado simple: Los modelos con pocos parámetros a menudo son menos flexibles y pueden subajustar, especialmente si la relación entre las variables es compleja.
- Falta de capacidad del modelo: Si el conjunto de datos tiene una estructura compleja que requiere un modelo más avanzado para capturar (por ejemplo, relaciones no lineales), un modelo simple puede no ser suficiente.
- Variables inadecuadas o mal procesadas: El uso de variables poco relevantes o no transformadas correctamente puede llevar a un underfitting.
Checklist accionable
- Verifica la capacidad del modelo: Evalúa el número de parámetros y la complejidad del modelo actual.
- Analiza las características: Asegúrate de que estás utilizando todas las variables relevantes y considera nuevas transformaciones o combinaciones si es necesario.
- Prueba con modelos más complejos: Cambia a modelos con mayor capacidad, como árboles de decisión, bosques aleatorios, o redes neuronales si el modelo actual parece insuficiente.
- Realiza validación cruzada: Valida el rendimiento del modelo en diferentes particiones del conjunto de datos para identificar cualquier sesgo.
- Mide la capacidad generalizadora: Compara el error en el conjunto de entrenamiento con el error en el conjunto de prueba para detectar underfitting.
Cierre: Siguientes pasos
El underfitting es una cuestión importante a abordar en cualquier proyecto de machine learning. Una vez identificado, puedes corregirlo siguiendo algunos de los pasos sugeridos en la checklist. Es crucial revisar regularmente tu modelo para asegurarte de que no se subajuste y siga aprendiendo a partir de tus datos.
- Expande el modelo: Ajusta el modelo hacia algo más complejo, considerando más parámetros o características.
- Ajusta los hiperparámetros: Experimenta con diferentes configuraciones para optimizar la capacidad del modelo.
- Implementa técnicas avanzadas de feature engineering: Mejora las variables existentes y busca nuevas relaciones entre ellas.
Recuerda siempre evaluar tus modelos en un conjunto de prueba independiente para asegurarte de que no estás subajustando y que tu modelo generaliza bien a nuevos datos.