Aunque ha sido este método el que hemos implementado en las secciones dedicadas a los algoritmos de clasificación, aunque solo sea para poder comparar el resultado con el devuelto vía validación cruzada, probemos el método de retención con el dataset Iris. Cargamos los datos y codificamos la etiqueta:
iris["label"] = iris.species.astype("category").cat.codes
Extremos las características predictivas y las etiquetas:
y = iris.label
Y vamos a probar la validación con Random Forest, de forma que lo importamos e instanciamos:
model = RandomForestClassifier()
Ahora, aplicamos la función train_test_split de Scikit-Learn para crear los datasets de entrenamiento y validación, dejando los tamaños de los bloques por defecto (lo que supone asignar el 75% de las muestras al primer bloque y 25% al segundo):
Con el parámetro stratify nos aseguramos de que los bloques generados van a contener un porcentaje semejante de, en este caso, los valores contenidos en y.
Por último, entrenamos el modelo con el dataset de entrenamiento y lo probamos en el dataset de validación:
model.score(X_test, y_test)
Puede verse cómo el resultado es anormalmente alto y, probablemente, no muestre el verdadero rendimiento del modelo.