División de datos en entrenamiento y prueba con scikit-learn

Clase 10 de 20Curso de Fundamentos de Machine Learning

Resumen

Evaluar correctamente un modelo de machine learning es crucial para asegurar su utilidad con datos que nunca ha visto anteriormente. Una buena manera de lograrlo es mediante la técnica conocida como train test split. Esta técnica consiste en dividir el conjunto de datos en dos partes principales: entrenamiento, donde el modelo aprende, y prueba o test, donde comprobamos su eficacia en escenarios nuevos.

¿Por qué es importante dividir los datos en entrenamiento y prueba?

Para evitar que nuestro modelo simplemente memorice o se adapte en exceso a los datos con los que fue entrenado (problema conocido como overfitting), es esencial verificar cómo se comporta frente a datos nuevos. Esta división nos permite evaluar objetivamente su capacidad de generalizar lo aprendido:

  • Dato de entrenamiento: Aquí, el modelo aprende patrones y características esenciales.
  • Dato de prueba (test): Conjunto nuevo utilizado para validar la eficacia real y la generalización del modelo.

¿Cómo implementar la división de datos con scikit-learn?

Para llevar a cabo esta división, usamos la librería scikit-learn, específicamente la función train_test_split:

from sklearn.model_selection import train_test_split

Se configuran los parámetros como:

  • test_size (tamaño del conjunto de prueba), habitualmente recomendado en 20%.
  • random_state, para tener resultados consistentes en repeticiones.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

¿Cómo puedo experimentar con diferentes tamaños del conjunto prueba?

Existen herramientas como los widgets interactivos de Jupyter que pueden facilitar la comprensión del impacto:

import ipywidgets as widgets
widgets.FloatSlider(value=0.2, min=0.1, max=0.4, step=0.05, continuous_update=False)

Usando controles dinámicos, experimentamos visualmente diferentes divisiones y examinamos cómo afecta al conjunto:

  • Más datos en entrenamiento implicará potencialmente mejor aprendizaje.
  • Más datos en prueba permitirá validar más robustamente su predicción.

¿Cuál es la recomendación estándar para dividir los datasets?

Lo habitual es utilizar una proporción de 80-20, manteniendo el 80% para el entrenamiento y el 20% restante para el test. Esta distribución ha demostrado ser efectiva en la mayoría de escenarios, equilibrando aprendizaje y validación.

Ahora estás preparado para implementar esta práctica recomendada: dividir eficientemente los datos de tu modelo, garantizando así resultados confiables en nuevos conjuntos de información. ¿Listo para avanzar y aplicar regresión lineal en tus predicciones? Cuéntanos en comentarios cómo te fue con tu nueva implementación.