Validación

Ya sabemos que en ciertos escenarios (los que hemos calificado de "análisis supervisado") el algoritmo necesita un conjunto de datos etiquetados conocidos para poder entrenarse. Este conjunto de datos es el que hemos denominado conjunto de datos de entrenamiento. Sin embargo, todo algoritmo puede ser configurado de un elevado número de formas (por ejemplo, en un árbol de decisión podemos limitar la profundidad máxima a un cierto número de niveles, o fijar el número mínimo de muestras en un nodo para poder dividirlo), y hemos visto también que -en función de cómo se configure el entrenamiento- es posible que el algoritmo se sobreentrene. Además, durante el análisis de un conjunto de datos, es muy probable que probemos más de un algoritmo con el objetivo de decantarnos por aquel que mejor rendimiento muestre.

Todo esto nos lleva a querer probar nuestro modelo con datos para los que se conozca su etiqueta, con el fin de poder compararla con las predicciones del modelo y, de este modo, medir su capacidad de generalizar su resultado y realizar predicciones correctas a partir de datos no vistos previamente. Sin embargo, el probar un modelo con los mismos datos con los que se ha entrenado no suele ser una buena idea, ya que, debido a la alta capacidad de aprendizaje de los algoritmos, es posible que, durante el entrenamiento, el modelo termine memorizando las etiquetas, dando lugar a una predicción sesgada.

La única forma efectiva de probar el modelo será aplicándolo a un conjunto de datos cuya etiqueta sea conocida, pero que no se haya visto implicado en el entrenamiento, lo que nos obliga a dividir el conjunto de datos conocido del que partimos en dos bloques: un bloque de entrenamiento, y un segundo bloque de validación, lo que nos permite entrenar el modelo a partir del primero, y validarlo con la confianza suficiente a partir del segundo.