4.1.6
Validación cruzada anidada
Resumen
- La validación cruzada anidada separa la búsqueda de hiperparámetros de la evaluación externa para evitar sesgos optimistas.
- Construye bucles externo/interno en scikit-learn y observa cómo se previene la fuga de información.
- Comprende cuándo merece la pena el coste adicional y cómo comunicar los resultados.
1. Funcionamiento #
- Bucle externo: divide los datos con
K_outer; cada pliegue actúa como conjunto de prueba intacto. - Bucle interno: ejecuta una validación cruzada de
K_innerpliegues sobre el resto para ajustar hiperparámetros (grid search, random search, optimización bayesiana, etc.). - Evaluación: reentrena con los hiperparámetros óptimos y evalúa en el pliegue externo reservado.
Repite el proceso K_outer veces y agrega las puntuaciones externas (media ± desviación típica o intervalos de confianza).
2. Implementación en Python #
| |
Pasar el objeto de búsqueda (GridSearchCV, RandomizedSearchCV, etc.) a cross_val_score es suficiente para ejecutar una validación cruzada anidada.
3. Ventajas #
- Evita fuga entre ajuste y evaluación: impide el sesgo optimista al usar los mismos datos para ambas tareas.
- Comparaciones justas: cada modelo se ajusta independientemente pero se evalúa con idénticos pliegues externos.
- Estimaciones de incertidumbre: las puntuaciones del bucle externo forman una distribución con la que calcular varianza e intervalos de confianza.
4. Precauciones #
- Coste computacional alto: el entrenamiento crece con
K_outer × K_inner; modelos pesados pueden ser inviables. - Cuidado con rejillas enormes: espacios de búsqueda grandes multiplican el tiempo; valora random search u optimización bayesiana.
- Datasets pequeños: si el conjunto es muy reducido, puede que el modelo quede con pocos datos; ajusta los valores de
Ko usa CV repetida con cautela.
5. Consejos prácticos #
- Ideal en datasets pequeños: la fuga de información es más dañina cuando hay pocos datos, por lo que la validación anidada compensa.
- Resérvala para los candidatos finales: aplícala solo a los modelos finalistas para controlar el tiempo de cómputo.
- Documenta la configuración: detalla número de pliegues, método de búsqueda y semillas aleatorias para demostrar control del riesgo.
Resumen #
- La validación cruzada anidada ofrece una estimación imparcial de la generalización mientras optimiza hiperparámetros.
- Combina
GridSearchCV(u otra estrategia) concross_val_score; planifica el coste adicional. - Úsala en la evaluación final de modelos críticos para que las métricas reflejen el rendimiento real.