El problema del método de retención en el que dividimos los datos en un bloque de entrenamiento y otro de validación es que, como se ha comentado, en el entrenamiento se está ignorando un bloque de datos (el que hemos llamado bloque de validación). Es decir, estamos escondiendo datos al modelo. Además, si los datos de entrenamiento no son demasiados, el reservar parte de ellos para la validación agrava notablemente este inconveniente.
La validación cruzada resuelve este problema -a costa de aumentar la complejidad del cálculo- dividiendo el bloque inicial de entrenamiento en, por ejemplo, dos sub bloques de igual tamaño (llamémoslos A y B), y entrenando dos modelos: uno se entrena con los datos de A y se valida con los datos de B, y otro se entrena con los datos de B y se valida con los de A. Por último, combinamos las métricas que miden el rendimiento de ambos modelos de alguna forma para obtener una métrica final.
Una vez evaluado el rendimiento de nuestro modelo, lo reentrenaremos usando todos los datos de entrenamiento para, de este modo, obtener un modelo más robusto.
El número de sub bloques en los que dividir el dataset inicial (y, por lo tanto, el tamaño de éstos), y el método de selección de las muestras destinadas a cada bloque determinan diferentes aproximaciones a esta técnica.