La cross-validation o validación cruzada es un método que permite probar el rendimiento de un modelo predictivo de Machine Learning. Descubre las técnicas más utilizadas y cómo aprender a dominarlas.
Después de entrenar un modelo de Machine Learning con datos etiquetados, se supone que tiene que funcionar con nuevos datos. No obstante, es importante garantizar la exactitud de las predicciones del modelo en producción.
Para conseguirlo, es necesario validar el modelo. El proceso de validación consiste en decidir si los resultados digitales que cuantifican las relaciones hipotéticas entre las variables son aceptables como descripciones de los datos.
Con el fin de evaluar el rendimiento de un modelo de Machine Learning, hay que probarlo con nuevos datos. En función del rendimiento del modelo con datos desconocidos, se puede determinar si aún falta por ajustarlo, se ha ajustado de más o está “bien generalizado”.
Una de las técnicas más empleadas para probar la eficacia de un modelo de Machine Learning es la “cross-validation” o validación cruzada. Este método también es un procedimiento de “re-sampling” (remuestreo) que permite evaluar un modelo incluso con datos limitados.
Para efectuar una “CV” (cross-validation), hace falta apartar de antemano una parte de los datos de la serie de datos de entrenamiento. Esos datos no se utilizarán para entrenar el modelo, sino más tarde para probarlo y validarlo.
A menudo en Machine Learning se usa la cross-validation para comparar los diferentes modelos y seleccionar el más adecuado para un problema específico. Esta técnica es a la vez fácil de comprender, fácil de implementar y tiene menos sesgos que los demás métodos. Descubramos ahora las principales técnicas de validación cruzada.
La técnica del Train-Test Split
El enfoque Train-Test Split consiste en descomponer de manera aleatoria una serie de datos. Una parte servirá para el entrenamiento del modelo de Machine Learning, la otra permitirá probarlo para la validación.
Por lo general, se reserva entre un 70 % y 80 % de los datos de la serie para el entrenamiento. El 20-30 % restante se explotará en la cross-validation.
Esta técnica es eficaz, salvo si los datos están limitados. Entonces puede faltar alguna información contenida en los datos que no se utilizan para el entrenamiento y, por tanto, los resultados pueden tener un gran sesgo.
Sin embargo, si la serie de datos es amplia y la distribución es igual entre las dos muestras, este enfoque es totalmente adecuado. Se pueden separar los datos de manera manual o usar el método train_test split de scikit-learn.
El método K-Folds
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.
¿Cómo puedo aprender a usar la validación cruzada?
La Cross-Validation es un paso esencial en el proceso de Machine Learning. Para aprender a utilizarla, puedes apuntarte a los cursos de DataScientest.
El Machine Learning y todas sus técnicas son parte central de nuestros itinerarios de Data Scientist, Analista de datos y ML Engineer. Aprenderás todo el proceso, los algoritmos, las herramientas y los métodos para entrenar modelos y ponerlos en producción.
Nuestros cursos de formación profesional te permiten adquirir todas las competencias necesarias para trabajar en el ámbito de la Data Science. De ese modo, podrás aprender a dominar el lenguaje de programación Python, la manipulación de bases de datos, el Dataviz y el Deep Learning.
Todos nuestros cursos se pueden cursar en formación continua o en BootCamp. Además ofrecemos un enfoque de «blended learning» innovador que combina la formación a distancia y la presencial para obtener lo mejor de ambos modelos.
Estos programas están diseñados por profesionales y pensados para satisfacer las necesidades concretas de las empresas. Los alumnos reciben un diploma certificado por la Universidad de la Sorbonne, y un 93 % de ellos encontró un trabajo inmediatamente después de terminar su formación. Descubre los cursos de DataScientest.
Ya lo sabes todo sobre la Cross-Validation. Descubre ahora nuestro dosier completo sobre Machine Learning y nuestra introducción al lenguaje Python.