
Validación cruzada en machine learning
La validacion cruzada en machine learning es una técnica esencial en Machine Learning para evaluar la capacidad predictiva de un modelo. Su objetivo principal es estimar con mayor precisión el rendimiento del modelo en datos no vistos, reduciendo el riesgo de sobreajuste (overfitting). En este artículo aprenderás qué es la validación cruzada, porque se usa, que técnicas, cuándo deberías aplicarla, sus ventajas, desventajas y un sencillo ejemplo.
¿Cuál es el objetivo de la validacion cruzada?
El objetivo de la validación cruzada es verificar cómo se desempeña un modelo con diferentes particiones del conjunto de datos. Así se asegura que el modelo no solo funciona bien con los datos de entrenamiento, sino también con nuevos datos que nunca ha visto antes.
¿Por qué usamos la validacion cruzada y no solo los datos de entrenamiento?
Porque si solo usamos los datos de entrenamiento para evaluar el modelo, es como corregir un examen con las respuestas que ya te sabes.
El modelo aprende de esos datos y, naturalmente, va a tener muy buen rendimiento, pero no sabremos si realmente puede generalizar a datos nuevos, es decir, si sabe resolver ejercicios que nunca ha visto.
Explicación sencilla relacionada con estadística
¿Qué pasa si usas solo los datos de entrenamiento para probar?
Si entrenas tu modelo con todas las flores que tienes y luego pruebas con esas mismas flores, claro que te dará muy buen resultado.
Pero no sabes si tu modelo podrá identificar flores nuevas que nunca ha visto.
¿Dónde entra la validación cruzada?
La validación cruzada simula la llegada de nuevas flores, separando tus datos en varios grupos:
- Tomas una parte de las flores (por ejemplo, 80%) para entrenar el modelo.
- Usas el otro 20% de las flores para probar si el modelo acierta la especie.
- Repites este proceso varias veces, cambiando qué flores usas para entrenar y cuáles para probar.
- Al final, haces un promedio de todos los resultados para tener una evaluación más realista.
¿Qué conseguimos con esto?
Evitamos que el modelo se “aprenda de memoria” las flores del entrenamiento y comprobamos si realmente puede identificar flores nuevas que no ha visto.
Así puedes estar seguro de que tu modelo no solo funciona con las flores de tu jardín, sino con cualquier flor que recojas en el futuro.
En resumen:
La validación cruzada con flores nos ayuda a comprobar que nuestro modelo de clasificación funciona bien no solo con las flores conocidas, sino también con flores nuevas y desconocidas
Como funciona la validacion cruzada
En lugar de dividir el conjunto de datos solo en entrenamiento y prueba, la validación cruzada divide los datos en k partes o pliegues. El modelo se entrena utilizando k-1 pliegues y se evalúa en el pliegue restante. Este proceso se repite k veces, generando k modelos distintos. Finalmente, se calcula la media del rendimiento de todos los modelos para obtener una estimación más precisa y confiable de la capacidad predictiva del modelo.
Técnicas de validación cruzada
Existen varias técnicas para implementar la validación cruzada, entre las más populares encontramos:
- Validación cruzada k-fold (k particiones): El conjunto de datos se divide en k partes iguales. El modelo se entrena k veces, cada vez usando un pliegue diferente como conjunto de prueba y el resto para entrenamiento.
- Validación cruzada Leave-One-Out (LOOCV): Se utiliza una sola muestra para validar y el resto para entrenar. Este proceso se repite por cada instancia en el conjunto de datos.
- Validación cruzada estratificada: Se asegura de que cada pliegue mantenga la misma proporción de clases que el conjunto de datos original, ideal para problemas de clasificación desequilibrados.
¿Cuándo usar la validación cruzada?
La validación cruzada es recomendable en los siguientes casos:
- Cuando dispones de un conjunto de datos limitado y necesitas aprovecharlo al máximo.
- Si quieres comparar varios modelos o configuraciones de hiperparámetros.
- Para tener una mejor estimación del rendimiento real de tu modelo antes de ponerlo en producción.
- Al entrenar modelos en problemas con clases desbalanceadas, usando validación cruzada estratificada.
¿Cuáles son las ventajas y desventajas de la validación cruzada?
Ventajas:
- Proporciona una estimación más precisa del rendimiento del modelo.
- Ayuda a detectar el sobreajuste.
- Aprovecha eficientemente los datos disponibles.
Desventajas:
- Mayor coste computacional, ya que entrena múltiples modelos.
- Puede ser lento en conjuntos de datos muy grandes.
- Puede requerir configuraciones adicionales para algunos algoritmos complejos.
Ejemplo
from sklearn.datasets import load_iris
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
def getDatos():
# Cargamos un dataset sencillo (flores iris)
X, y = load_iris(return_X_y=True)
return X,y
def getModelo():
# Creamos el modelo
modelo = LogisticRegression(max_iter=200)
return modelo
def setValidacionCruzada(modelo, X, y):
# Aplicamos validación cruzada con 5 particiones
resultados = cross_val_score(modelo, X, y, cv=5)
return resultados
X,y = getDatos()
modelo = getModelo()
resultados = setValidacionCruzada(modelo, X, y)
# Mostramos los resultados de cada fold
print("Resultados de cada fold:", resultados)
# Mostramos la media final de precisión
print("Precisión media del modelo:", resultados.mean())
Resultados de cada fold: [0.96666667 1. 0.93333333 0.96666667 1. ] Precisión media del modelo: 0.9733333333333334
Conclusión
La validación cruzada es una herramienta poderosa que todo científico de datos debe dominar. Desde sus técnicas básicas hasta versiones más avanzadas como la validación cruzada estratificada y anidada, aplicarla correctamente te permitirá crear modelos más robustos y confiables. Incorpora estas prácticas en tus proyectos y mejora significativamente la calidad de tus predicciones.


