La técnica K-Folds es fácil de comprender y es particularmente conocida. Respecto a otros enfoques de Cross-Validation, suele resultar un modelo menos sesgado. Justamente, permite garantizar que todas las observaciones de la serie de datos original tengan la oportunidad de aparecer en la serie de entrenamiento y en la serie de prueba. En caso de datos de entrada limitados, resulta uno de los mejores enfoques. Primero se empieza separando la serie de datos de manera aleatoria en K folds. El procedimiento tiene un parámetro único llamado “K” que hace referencia al número de grupos en el se dividirá la muestra. El valor de K no debe ser ni demasiado bajo ni demasiado alto y, por lo general, se elige un valor comprendido entre 5 y 10 en función de la envergadura de la serie de datos. Por ejemplo, si K=10, la serie de datos se dividirá en 10 partes. Un valor K más alto lleva a un modelo con menos sesgo, pero una varianza demasiado amplia puede llevar a un ajuste excesivo. Un valor más bajo es prácticamente lo mismo que utilizar el método Train-Test Split. Después se ajusta el modelo utilizando los folds K-1 (K menos 1). El modelo se valida usando el K-fold restante. Las puntuaciones y los errores se deben anotar. El proceso se repite hasta que cada K-fold sirva dentro de la serie de entrenamiento. La media de las puntuaciones registradas es la métrica de rendimiento del modelo. Este proceso se puede realizar de manera manual o con ayuda de las funciones cross_val_score y cross_val-predict de la librería Python de Scikit-Learn. La función cross_val_score indica la puntuación de cada fold de prueba, mientras que la función cross_val_predict indica la puntuación predicha para cada observación de la serie de datos de entrada cuando formaba parte de la serie de prueba. En el caso de que el modelo (estimador) sea un clasificador y la variable objetivo (y) binaria o multiclase, se utiliza por defecto la técnica "StratifiedKfold". Este método presenta pliegues estratificados, por ejemplo, manteniendo el porcentaje de muestras de cada clase en todos los folds. De este modo, los datos de los folds de entrenamiento y de prueba se distribuyen de manera equitativa. En los demás casos, se usa por defecto la técnica K_Fold para dividir y entrenar el modelo. Los folds se pueden utilizar como iteradores o en un bucle para entrenar en un marco de datos de Pandas.