Conjuntos de entrenamiento y prueba: Separación de datos

En el módulo anterior, se presentó la idea de dividir el conjunto de datos en dos subconjuntos:

  • Conjunto de entrenamiento: Un subconjunto para entrenar un modelo.
  • Conjunto de prueba: Un subconjunto para probar el modelo entrenado.

Imagina dividir el único conjunto de datos de la siguiente manera:

Los datos se dividen en dos: un conjunto grande de datos de entrenamiento y un conjunto pequeño de datos de prueba

Figura 1. División de un único conjunto de datos en un conjunto de entrenamiento y uno de prueba.

Asegúrate de que tu conjunto de prueba reúna las siguientes dos condiciones:

  • Que sea lo suficientemente grande como para generar resultados significativos desde el punto de vista estadístico.
  • Que sea representativo de todo el conjunto de datos. En otras palabras, no elijas un conjunto de prueba con características diferentes al del conjunto de entrenamiento.

Si suponemos que el conjunto de prueba reúne estas dos condiciones, tu objetivo es crear un modelo que generalice los datos nuevos de forma correcta. Nuestro conjunto de prueba sirve como proxy para los datos nuevos. Por ejemplo, considera la siguiente figura. Observa que el modelo aprendido para los datos de entrenamiento es muy simple. Este modelo no hace un trabajo perfecto. Algunas predicciones son incorrectas. Sin embargo, este modelo funciona de la misma manera tanto en los datos de prueba como en los de entrenamiento. En otras palabras, este modelo simple no sobreajusta los datos de entrenamiento.

Dos modelos: una ejecución en los datos de entrenamiento y la otra en los de prueba. El modelo es muy simple: una línea divide los datos anaranjados de los azules. La pérdida en los datos de entrenamiento es similar a la pérdida en los datos de prueba.

Figura 2. Validación del modelo entrenado con los datos de prueba.

Nunca uses los datos de prueba para el entrenamiento. Si ves resultados sorpresivamente positivos en tus métricas de evaluación, es posible que estés usando los datos de prueba para el entrenamiento. Por ejemplo, tener una precisión alta puede ser un indicativo de que se filtraron datos de prueba en los de entrenamiento.

Por ejemplo, imagina un modelo que prediga si un correo electrónico es spam, tomando como atributos el asunto, el cuerpo y la dirección de correo electrónico del remitente. Distribuimos los datos en conjuntos de entrenamiento y prueba en una proporción de 80 a 20. Después del entrenamiento, el modelo alcanza el 99% de precisión en ambos conjuntos. Esperamos una precisión menor en el conjunto de prueba, por lo que volvemos a analizar los datos y descubrimos que muchos de los ejemplos en este conjunto están duplicados en el conjunto de entrenamiento (arrastramos entradas duplicadas para el mismo spam de una base de datos de entrada antes de separar los datos). Involuntariamente, usamos algunos de los datos de prueba para el entrenamiento y, como resultado, no logramos medir de forma precisa de qué manera el modelo generaliza los datos nuevos.

Enviar comentarios sobre…

Curso intensivo de aprendizaje automático