8 - Sets de entrenamiento, validación y prueba
Lección 8 del curso Introducción al Machine Learning.
Tabla de contenido
Introducción
En la lección anterior vimos un ejemplo práctico que nos permitió entender qué era el entrenamiento en el contexto del Machine Learning.
Pero en ocasiones con tan sólo un modelo no podemos tener certeza de si éste genera el desempeño más adecuado para generar predicciones. Nada nos dice que no podamos usar otros modelos que probablemente generarían un mejor desempeño.
Así que, en general, para resolver un problema podremos tener muchos modelos y para poder decidir cuál es el mejor necesitamos compararlos bajo las mismas condiciones. Es acá donde entran los sets de validación y prueba de los que hablaremos a continuación.
Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online
El problema a resolver
Retomemos el problema a resolver: partimos de un set de datos como el usado en la lección anterior y la idea es encontrar un modelo que dado x pueda predecir el valor de y.
Acá tenemos una tarea de regresión y el aprendizaje es supervisado: la salida y puede ser un valor numérico continuo y alimentaremos el modelo tanto con los valores de x como con los valores de y y la idea es que a través de un algoritmo logre encontrar el modelo que mejor se ajuste a los datos.
El modelo inicial y los dos nuevos modelos
Recordemos que el modelo inicial era simplemente la ecuación de una línea recta y asumiremos dos nuevos modelos: uno cuadrático y uno cúbico.
Y la pregunta que surge es: ¿será que podemos usar la misma lógica usada en el primer caso para entrenar estos dos nuevos modelos? Y de ser así, ¿cómo determinamos cuál de los tres modelos disponibles es el mejor?
La respuesta a la primera pregunta es sí, podemos usar un procedimiento similar al descrito en la lección anterior para llevar a cabo el entrenamiento de estos dos nuevos modelos.
Y a continuación daremos respuesta a la segunda pregunta.
¿Por qué no usar el mismo set de entrenamiento?
Supongamos que ya hemos entrenado los dos nuevos modelos y lo que nos resta ahora es determinar cuál de ellos tiene el mejor desempeño.
Pero en este caso no podríamos usar el set de entrenamiento pues no es un set de datos “imparcial”: al haber entrenado los tres modelos con este set de datos, si intentamos medir el desempeño usando este mismo set podríamos tener un sesgo.
Así que necesitamos un set de datos “imparcial”, que el modelo no haya “visto” durante su entrenamiento. Este set se conoce como el set de validación.
El set de validación
Es un set diferente del set de entrenamiento pero con las mismas características (proveniente de la misma distribución, es decir con patrones similares a los del set de entrenamiento).
Este set lo podemos usar para ajustar los hiperparámetros de cada modelo. Y una vez hecho esto podemos ahora sí elegir el mejor modelo:
- Con cada modelo ya entrenado, es decir sin modificar sus hiperparámetros, presentamos el set de validación y calculamos el desempeño obtenido en cada modelo
- El modelo con el mejor desempeño será precisamente el mejor modelo disponible.
¿Qué tan bien lo hace el modelo seleccionado con nuevos datos?
La idea de construir un modelo de Machine Learning no es sólo que lo haga bien con los sets de entrenamiento y validación.
La idea es que además lo haga bien con datos que nunca antes haya visto, pues de esta manera veremos qué tan robusto es y cómo se comportará con nuevos datos. Esto se conoce como generalización.
Para ver la capacidad de generalización del modelo seleccionado debemos usar un tercer set de datos, que se conoce como el set de prueba.
Este set de prueba es un set de datos diferente de los sets de entrenamiento y validación pero proveniente de la misma distribución. Con este tercer set podemos finalmente poner a prueba el modelo para ver qué tan bien lo hace con datos nunca antes vistos, es decir su capacidad de generalización.
Resumen
Idealmente para entrenar diferentes modelos de Machine Learning y poder escoger el mejor de todos deberíamos tener tres sets: entrenamiento, validación y prueba
- El set de entrenamiento se usa para entrenar como tal cada modelo (es decir para aprender los parámetros)
- El set de validación lo usamos para poder escoger el valor más adecuado de los hiperparámetros de cada modelo y para elegir al final el mejor modelo de todos los que hayamos entrenado
- El set de prueba lo usamos para medir la capacidad de generalización del modelo seleccionado
Y es importante además tener en cuenta que los tres sets deben ser diferentes pero a la vez deben provenir de la misma distribución.
Recuerda suscribirte para acceder al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online
Conclusión
Hasta este punto del curso ya hemos visto varios conceptos fundamentales del Machine Learning y que encontraremos una y otra vez a medida que abordemos los diferentes algoritmos y modelos en próximos cursos.
Así que para cerrar este segundo módulo del curso en la próxima lección veremos el ciclo de vida de un proyecto de Machine Learning.