Esta funcionalidad está proveída en Scikit-Learn por la función cross_val_score, de forma que comenzamos importándola:
A esta función deberemos pasar como argumentos el modelo, la estructura con las características predictivas, la estructura con las etiquetas y la estrategia de división -parámetro cv- indicando el número de bloques a generar. Si queremos crear 5 bloques (lo que supondrá entrenar 5 modelos), el código sería el siguiente:
scores
Como puede verse, el resultado de esta función es un array NumPy con la métrica de rendimiento por defecto del algoritmo utilizado (en el caso de RandomForestClassifier se trata de la exactitud o accuracy) para cada uno de los modelos entrenados. En nuestro caso obtenemos un array con 5 valores.
Podemos, por ejemplo, calcular el valor medio de los resultados devueltos por la función para obtener un resultado único:
Este porcentaje es menor que el obtenido con el método de retención y, con toda seguridad, se trata de un resultado más fiable que aquel.