¿Qué es la validación cruzada? Comparación de modelos de aprendizaje automático
Publicado: 2021-07-21La validación cruzada es una herramienta invaluable para los científicos de datos.
Es útil para construir de forma más precisa aprendizaje automático modelos y evaluar qué tan bien funcionan en un conjunto de datos de prueba independiente.
La validación cruzada es fácil de entender e implementar, lo que la convierte en un método de referencia para comparar las capacidades predictivas (o habilidades) de diferentes modelos y elegir el mejor. Es beneficioso cuando la cantidad de datos disponibles es limitada y es una excelente manera de verificar cómo funciona un modelo predictivo en la práctica.
¿Qué es la validación cruzada?
La validación cruzada (CV) es una técnica utilizada para evaluar un modelo de aprendizaje automático y probar su rendimiento (o precisión). Implica reservar una muestra específica de un conjunto de datos en el que el modelo no está entrenado. Posteriormente, se prueba el modelo sobre esta muestra para evaluarlo.
La validación cruzada se utiliza para proteger un modelo del sobreajuste , especialmente si la cantidad de datos disponibles es limitada. También se conoce como estimación de rotación o prueba fuera de muestra y se usa principalmente en entornos donde el objetivo del modelo es la predicción.
¿Sabías? Un modelo se considera "sobreajustado" si modela los datos de entrenamiento tan bien que afecta negativamente su rendimiento en datos nuevos.
Este procedimiento de remuestreo también se usa para comparar diferentes modelos de aprendizaje automático y determinar qué tan bien funcionan para resolver un problema en particular. En otras palabras, la validación cruzada es un método utilizado para evaluar la habilidad de los modelos de aprendizaje automático.
En pocas palabras, en el proceso de validación cruzada, la muestra de datos original se divide aleatoriamente en varios subconjuntos. El modelo de aprendizaje automático se entrena en todos los subconjuntos, excepto uno. Después del entrenamiento, el modelo se prueba haciendo predicciones sobre el subconjunto restante.
En muchos casos, se realizan múltiples rondas de validación cruzada usando diferentes subconjuntos, y sus resultados se promedian para determinar qué modelo es un buen predictor.
¿Por qué es importante la validación cruzada?
La validación cruzada es crucial cuando la cantidad de datos disponibles es limitada.
Suponga que necesita predecir la probabilidad de que se pinche un neumático de bicicleta. Para ello, has recopilado datos de los neumáticos existentes: la edad del neumático, el número de kilómetros recorridos, el peso del ciclista y si se pinchó antes.
Para crear un modelo predictivo, utilizará estos datos (históricos). Hay dos cosas que debe hacer con estos datos: entrenar el algoritmo y probar el modelo.
¿Sabías? En el aprendizaje automático, un algoritmo y un modelo no son lo mismo. Un modelo es lo que aprende el algoritmo de aprendizaje automático.
Dado que solo tiene una cantidad limitada de datos disponibles, sería ingenuo usar todos los datos para entrenar el algoritmo. Si lo hace, no le quedará ningún dato para probar o evaluar el modelo.
Reutilizar el conjunto de entrenamiento como conjunto de prueba no es una gran idea, ya que necesitamos evaluar la precisión del modelo en los datos en los que no se entrenó. Es porque el objetivo principal detrás del entrenamiento es preparar el modelo para trabajar con datos del mundo real. Y es improbable que su conjunto de datos de entrenamiento contenga todos los puntos de datos posibles que el modelo encontrará alguna vez.
Una mejor idea sería utilizar el primer 75 por ciento (tres bloques) de los datos como conjunto de datos de entrenamiento y el último 25 por ciento (un bloque) como conjunto de datos de prueba . Esto le permitirá comparar qué tan bien los diferentes algoritmos categorizaron los datos de prueba.
Pero, por supuesto, ¿cómo sabría que usar el primer 75 por ciento de los datos como conjunto de entrenamiento y el 25 por ciento restante como conjunto de prueba es la mejor manera?
En su lugar, puede usar el primer 25 por ciento de los datos para realizar pruebas; o bien, puede utilizar el tercer bloque de datos como conjunto de datos de prueba y el resto como conjunto de datos de entrenamiento.
Sugerencia: use software de aprendizaje automático para automatizar tareas y hacer predicciones precisas.
Como resultado, un tipo de validación cruzada llamada validación cruzada k-fold utiliza las (cuatro) partes del conjunto de datos como datos de prueba, uno a la vez, y luego resume los resultados.
Por ejemplo, la validación cruzada usará los primeros tres bloques de datos para entrenar el algoritmo y usará el último bloque para probar el modelo. Luego registra qué tan bien se desempeñó el modelo con los datos de prueba.
Después de registrar el rendimiento o la precisión, usará los bloques primero, segundo y cuarto de los datos para entrenar y el tercer bloque para probar. El proceso continúa hasta que todos los bloques se usan una vez como datos de prueba. El promedio de todos los resultados se calcula para evaluar el rendimiento del modelo.
En el ejemplo anterior, los datos se dividieron en cuatro bloques. Por lo tanto, esta validación cruzada se llama validación cruzada de 4 veces . Si se dividiera en diez bloques, sería una validación cruzada de 10 veces .
En resumen, la validación cruzada es útil para la selección de modelos y facilita el examen de qué tan bien se generaliza un modelo a nuevos datos.
En otras palabras, es útil para determinar el error de predicción de un modelo. También se usa para comparar el rendimiento o la precisión de diferentes métodos de aprendizaje automático, como la máquina de vectores de soporte (SVM), el vecino más cercano K (KNN), la regresión lineal o la regresión logística.
Aquí hay algunas razones más por las que a los científicos de datos les encanta la validación cruzada:
- Les permite usar todos los datos sin sacrificar ningún subconjunto (no válido para el método de exclusión)
- Revela la consistencia de los datos y el algoritmo.
- Ayuda a evitar el sobreajuste y el ajuste insuficiente.
La validación cruzada también se utiliza para ajustar el hiperparámetros de un modelo de aprendizaje automático a través de una técnica llamada validación cruzada de búsqueda aleatoria en cuadrícula .
Tipos de validación cruzada
Los métodos de validación cruzada se pueden clasificar en términos generales en dos categorías: métodos exhaustivos y no exhaustivos .
Como sugiere el nombre, los métodos exhaustivos de validación cruzada se esfuerzan por probar todas las formas posibles de dividir la muestra de datos original en un conjunto de entrenamiento y otro de prueba. Por otro lado, los métodos no exhaustivos no calculan todas las formas de dividir los datos originales en conjuntos de entrenamiento y evaluación.
A continuación se muestran los cinco tipos comunes de validación cruzada.
1. Método de exclusión
El método de retención es uno de los enfoques básicos de validación cruzada en el que el conjunto de datos original se divide en dos partes: datos de entrenamiento y datos de prueba. Es un método no exhaustivo y, como se esperaba, el modelo se entrena en el conjunto de datos de entrenamiento y se evalúa en el conjunto de datos de prueba.
En la mayoría de los casos, el tamaño del conjunto de datos de entrenamiento es el doble que el conjunto de datos de prueba, lo que significa que el conjunto de datos original se divide en una proporción de 80:20 o 70:30. Además, los datos se barajan aleatoriamente antes de dividirlos en conjuntos de entrenamiento y validación.
Sin embargo, existen algunas desventajas en este método de validación cruzada. Dado que el modelo se entrena en una combinación diferente de puntos de datos, puede mostrar resultados diferentes cada vez que se entrena. Además, nunca podemos estar completamente seguros de que el conjunto de datos de entrenamiento elegido representa el conjunto de datos completo.

Si la muestra de datos original no es demasiado grande, también existe la posibilidad de que los datos de prueba contengan información crucial, que el modelo no reconocerá porque no está incluida en los datos de entrenamiento.
Sin embargo, la técnica de validación cruzada de retención es ideal si tiene prisa por entrenar y probar un modelo y tiene un gran conjunto de datos.
2. Validación cruzada de K-fold
El método de validación cruzada k-fold es una versión mejorada del método de retención. Aporta más coherencia a la puntuación del modelo, ya que no depende de cómo elegimos el conjunto de datos de entrenamiento y prueba.
Es un método de validación cruzada no exhaustivo y, como sugiere el nombre, el conjunto de datos se divide en k número de divisiones y el método de exclusión se realiza k veces.
Por ejemplo, si el valor de k es igual a dos, habrá dos subconjuntos de igual tamaño. En la primera iteración, el modelo se entrena en una submuestra y se valida en la otra. En la segunda iteración, el modelo se entrena en el subconjunto que se utilizó para validar en la iteración anterior y se prueba en el otro subconjunto. Este enfoque se denomina validación cruzada doble .
De manera similar, si el valor de k es igual a cinco, el enfoque se denomina método de validación cruzada de 5 veces e involucrará cinco subconjuntos y cinco iteraciones. Además, el valor de k es arbitrario. Generalmente, el valor de k se establece en 10. Si está confundido acerca de elegir un valor, se recomienda lo mismo.
El procedimiento de validación cruzada de k-pliegues comienza con la división aleatoria del conjunto de datos original en k número de pliegues o subconjuntos. En cada iteración, el modelo se entrena en los subconjuntos k-1 del conjunto de datos completo. Después de eso, el modelo se prueba en el k-ésimo subconjunto para comprobar su rendimiento.
Este proceso se repite hasta que todos los k-pliegues hayan servido como conjunto de evaluación. Los resultados de cada iteración se promedian y se denomina precisión de validación cruzada . La precisión de la validación cruzada se utiliza como una métrica de rendimiento para comparar la eficiencia de diferentes modelos.
La técnica de validación cruzada k-fold generalmente produce modelos menos sesgados ya que cada punto de datos del conjunto de datos original aparecerá tanto en el conjunto de entrenamiento como en el de prueba. Este método es óptimo si tiene una cantidad limitada de datos.
Sin embargo, como era de esperar, este proceso puede llevar mucho tiempo porque el algoritmo tiene que volver a ejecutarse k veces desde cero. Esto también significa que requiere k-1 veces más cálculos que el método de exclusión.
3. Validación cruzada estratificada de k-fold
Dado que estamos mezclando datos aleatoriamente y dividiéndolos en pliegues en la validación cruzada de k-pliegues, existe la posibilidad de que terminemos con subconjuntos desequilibrados. Esto puede hacer que el entrenamiento esté sesgado, lo que da como resultado un modelo inexacto.
Por ejemplo, considere el caso de un problema de clasificación binaria en el que cada uno de los dos tipos de etiquetas de clase comprende el 50 por ciento de los datos originales. Esto significa que las dos clases están presentes en la muestra original en proporciones iguales. En aras de la simplicidad, vamos a nombrar las dos clases A y B.
Al barajar los datos y dividirlos en pliegues, existe una alta probabilidad de que terminemos con un pliegue en el que la mayoría de los puntos de datos sean de la clase A y solo unos pocos de la clase B. Tal subconjunto se ve como un subconjunto desequilibrado y puede conducir a la creación de un clasificador inexacto.
Para evitar tales situaciones, los pliegues se estratifican mediante un proceso llamado estratificación . En la estratificación, los datos se reorganizan para garantizar que cada subconjunto sea una buena representación del conjunto de datos completo.
En el ejemplo anterior de clasificación binaria, esto significaría que es mejor dividir la muestra original para que la mitad de los puntos de datos en un pliegue sean de la clase A y el resto de la clase B.
4. Validación cruzada Leave-p-out
La validación cruzada Leave-p-out (LpOCV) es un método exhaustivo en el que se extrae un número p de puntos de datos del número total de muestras de datos representadas por n.
El modelo se entrena en puntos de datos np y luego se prueba en puntos de datos p. El mismo proceso se repite para todas las posibles combinaciones de p de la muestra original. Finalmente, los resultados de cada iteración se promedian para lograr la precisión de la validación cruzada.
5. Validación cruzada de dejar uno fuera
El enfoque de validación cruzada dejar uno fuera (LOOCV) es una versión simplificada de LpOCV. En esta técnica de validación cruzada, el valor de p se establece en uno. Por lo tanto, este método es mucho menos exhaustivo. Sin embargo, la ejecución de este método es costosa y requiere mucho tiempo, ya que el modelo debe ajustarse n veces.
Existen otras técnicas de validación cruzada, incluida la validación de submuestreo aleatorio repetido, la validación cruzada anidada y la validación cruzada de series temporales.
Aplicaciones de la validación cruzada
La aplicación principal de la validación cruzada es evaluar el rendimiento de los modelos de aprendizaje automático. Esto ayuda a comparar métodos de aprendizaje automático y determinar cuál es ideal para resolver un problema específico.
Por ejemplo, suponga que está considerando k-vecinos más cercanos (KNN) o análisis de componentes principales (PCA) para realizar el reconocimiento óptico de caracteres. En este caso, puede usar la validación cruzada para comparar los dos según la cantidad de caracteres mal clasificados por cada método.
La validación cruzada también se puede usar en la selección de características para seleccionar las características que más contribuyen al resultado de la predicción.
Limitaciones de la validación cruzada
El principal desafío de la validación cruzada es la necesidad de recursos computacionales excesivos, especialmente en métodos como k-fold CV. Dado que el algoritmo tiene que volver a ejecutarse desde cero k veces, requiere k veces más cálculos para evaluarlo.
Otra limitación es la que rodea a los datos no vistos. En la validación cruzada, el conjunto de datos de prueba es el conjunto de datos oculto que se utiliza para evaluar el rendimiento del modelo. En teoría, esta es una excelente manera de verificar cómo funciona el modelo cuando se usa para aplicaciones del mundo real.
Sin embargo, en la práctica nunca puede haber un conjunto integral de datos ocultos, y uno nunca puede predecir el tipo de datos que el modelo podría encontrar en el futuro.
Supongamos que se construye un modelo para predecir el riesgo de un individuo de contraer una enfermedad infecciosa específica. Si el modelo se entrena con datos de un estudio de investigación que involucra solo a un grupo de población en particular (por ejemplo, mujeres de veintitantos años), cuando se aplica a la población general, el rendimiento predictivo puede diferir drásticamente en comparación con la precisión de la validación cruzada. .
Además, la validación cruzada producirá resultados significativos solo si se controlan los sesgos humanos en el conjunto de muestras original.
Validación cruzada al rescate
La creación de modelos con validación cruzada es un método excelente para crear aplicaciones de aprendizaje automático con mayor precisión o rendimiento. Las técnicas de validación cruzada como la validación cruzada k-fold hacen posible estimar el rendimiento de un modelo sin sacrificar la división de prueba.
También eliminan los problemas que causa una división de datos desequilibrada; en resumen, pueden permitir que los científicos de datos confíen menos en la suerte y más en las iteraciones.
Hay un subconjunto de aprendizaje automático que intenta imitar el funcionamiento del cerebro humano. Se llama aprendizaje profundo, y la inteligencia general artificial, si alguna vez es posible, requeriría sus habilidades para la toma de decisiones.