¿Cuándo se necesita realmente la validación cruzada anidada y puede hacer una diferencia práctica?

36

Cuando se utiliza la validación cruzada para hacer la selección del modelo (como, por ejemplo, el ajuste de hiperparámetros) y para evaluar el rendimiento del mejor modelo, se debe usar la validación cruzada anidada . El ciclo externo es evaluar el rendimiento del modelo, y el ciclo interno es seleccionar el mejor modelo; el modelo se selecciona en cada conjunto de entrenamiento externo (utilizando el ciclo CV interno) y su rendimiento se mide en el conjunto de prueba externo correspondiente.

Esto ha sido discutido y explicado en muchos hilos (como por ejemplo aquí entrenamiento con el conjunto de datos completo después de la validación cruzada? , Ver la respuesta por @DikranMarsupial) y está del todo claro para mí. Hacer solo una validación cruzada simple (no anidada) tanto para la selección del modelo como para la estimación del rendimiento puede generar una estimación del rendimiento sesgada positivamente. @DikranMarsupial tiene un documento de 2010 sobre exactamente este tema ( Sobre el ajuste excesivo en la selección del modelo y el sesgo de selección posterior en la evaluación del rendimiento ) con la sección 4.3 llamada ¿El ajuste excesivo en la selección del modelo es realmente una preocupación genuina en la práctica? - y el documento muestra que la respuesta es sí.

Dicho todo esto, ahora estoy trabajando con la regresión de crestas múltiples multivariadas y no veo ninguna diferencia entre CV simple y anidado, por lo que el CV anidado en este caso particular parece una carga computacional innecesaria. Mi pregunta es: ¿en qué condiciones el CV simple generará un sesgo notable que se evitará con el CV anidado? ¿Cuándo importa el CV anidado en la práctica y cuándo no importa tanto? ¿Hay alguna regla general?

Aquí hay una ilustración que usa mi conjunto de datos real. El eje horizontal es para la regresión de cresta. El eje vertical es un error de validación cruzada. La línea azul corresponde a la validación cruzada simple (no anidada), con 50 divisiones aleatorias de entrenamiento / prueba de 90:10. La línea roja corresponde a la validación cruzada anidada con 50 divisiones de entrenamiento / prueba al azar 90:10, donde λ se elige con un bucle de validación cruzada interno (también 50 divisiones al azar 90:10). Las líneas son medias de más de 50 divisiones aleatorias, los sombreados muestran ± 1 desviación estándar.Iniciar sesión(λ)λ±1

Validación cruzada simple vs anidada

λλ

Actualizar

En realidad es el caso :-) Es solo que la diferencia es pequeña. Aquí está el acercamiento:

Validación cruzada simple vs anidada, acercamiento

λ=0.00250

Validación cruzada simple vs anidada, diferencias

λ=0.002

(Ejecuté todo el procedimiento un par de veces, y sucede cada vez).

Mi pregunta es, ¿en qué condiciones podemos esperar que este sesgo sea minúsculo y en qué condiciones no deberíamos?

ameba dice Reinstate Monica
fuente
No estoy muy seguro de entender el diagrama, ¿podría generar un diagrama de dispersión que muestre el error estimado de la validación cruzada anidada y no anidada en cada eje (suponiendo que las 50 divisiones de entrenamiento de prueba fueran las mismas cada vez)? ¿Qué tan grande es el conjunto de datos que está utilizando?
Dikran Marsupial
1
Generé el diagrama de dispersión, pero todos los puntos están muy cerca de la diagonal y es difícil discernir cualquier desviación de ella. Entonces, en su lugar, resté el error CV simple (para lambda óptimo) del error CV anidado y lo tracé en todas las divisiones de prueba de entrenamiento. Parece que hay un sesgo muy pequeño, pero notable! Hice la actualización. Avíseme si las cifras (o mis explicaciones) son confusas, me gustaría que esta publicación sea clara.
ameba dice Reinstate Monica
En el primer párrafo, tiene el modelo seleccionado en cada conjunto de entrenamiento externo ; ¿Debería ser quizás interno ?
Richard Hardy
@RichardHardy No. Pero puedo ver que esta oración no está formulada muy claramente. El modelo se "selecciona" en cada conjunto de entrenamiento externo. Se ajustan diferentes modelos (por ejemplo, modelos con diferentes lambdas) en cada conjunto de entrenamiento interno, se prueban en conjuntos de prueba internos, y luego se selecciona uno de los modelos , basado en todo el conjunto de entrenamiento externo. Su rendimiento se evalúa utilizando un conjunto de pruebas externas. ¿Tiene sentido?
ameba dice Reinstate Monica

Respuestas:

13

Sugeriría que el sesgo depende de la varianza del criterio de selección del modelo, cuanto mayor sea la varianza, mayor será el sesgo. La varianza del criterio de selección del modelo tiene dos fuentes principales, el tamaño del conjunto de datos en el que se evalúa (por lo tanto, si tiene un conjunto de datos pequeño, mayor será el sesgo) y la estabilidad del modelo estadístico (si los parámetros del modelo están bien estimados por los datos de entrenamiento disponibles, hay menos flexibilidad para que el modelo sobrepase el criterio de selección del modelo ajustando los hiperparámetros). El otro factor relevante es el número de elecciones de modelo a realizar y / o hiperparámetros a ajustar.

En mi estudio, estoy analizando poderosos modelos no lineales y conjuntos de datos relativamente pequeños (comúnmente utilizados en estudios de aprendizaje automático) y ambos factores significan que la validación cruzada anidada es absolutamente necesaria. Si aumenta el número de parámetros (tal vez tener un núcleo con un parámetro de escala para cada atributo), el ajuste excesivo puede ser "catastrófico". Si está utilizando modelos lineales con un solo parámetro de regularización y un número relativamente grande de casos (en relación con el número de parámetros), es probable que la diferencia sea mucho menor.

Debo agregar que recomendaría usar siempre la validación cruzada anidada, siempre que sea computacionalmente factible, ya que elimina una posible fuente de sesgo para que nosotros (y los revisores pares; o) no tengamos que preocuparnos de si es insignificante o no.

Dikran Marsupial
fuente
2
Si usa todos los datos, ¿no está trazando efectivamente el error del conjunto de entrenamiento? Muy a menudo utilizo modelos de clasificación en los que los mejores modelos tienen un error de conjunto de entrenamiento cero pero un error de generalización distinto de cero, a pesar de que el parámetro de regularización se elige cuidadosamente.
Dikran Marsupial
1
Unos pocos miles de patrones de entrenamiento o menos. ¿Qué tipo de modelo estás usando? A medida que el conjunto de datos se hace más grande, los problemas estadísticos disminuyen y los problemas computacionales aumentan, como regla general. La validación cruzada de k-fold es solo k veces más lenta que el ajuste del modelo básico (incluida la sintonización de hiperparámetros), por lo que rara vez pasa de ser factible a inviable. La valdiación cruzada de k-fold también se puede paralelizar fácilmente, que es lo que hago habitualmente.
Dikran Marsupial
1
Simplemente da una estimación imparcial del rendimiento. El CV esencialmente anidado estima el rendimiento de un método para ajustar un modelo, incluida la selección del modelo mediante validación cruzada. Para obtener el modelo operativo, generalmente solo repetimos el método utilizando todo el conjunto de datos, que ofrece las mismas opciones de modelo que el procedimiento de validación cruzada "plano".
Dikran Marsupial
1
También me encontré con el tema del CV anidado. Usar el CV anidado imparcial implica ajustar modelos con datos más pequeños. Para un CV de 10 veces, es como el 81% en CV anidado frente al 90% en CV no anidado. También el pliegue de prueba se convierte en 9% frente a 10% en no anidados. ¿Eso genera una varianza adicional en la evaluación del modelo? Especialmente para conjuntos de datos pequeños, como 350 muestras en esta publicación. ¿Es esta la 'desventaja' de usar un CV anidado? Si es así, ¿cómo deberíamos decidir si usar CV anidado versus el tamaño del conjunto de datos? Realmente aprecio la opinión de expertos como usted sobre este tema. ¿Hay algún documento relacionado con este tema? @Dikran Marsupial
zesla
2
@zesla Sí, ese es el caso de que hay menos datos para la validación cruzada interna, lo que aumentará su varianza, sin embargo, el modelo final se construye utilizando todo el conjunto de datos (incluida la estimación de hiperparámetros). Siempre hay una compensación entre sesgo y varianza en la estimación del rendimiento. Es muy importante utilizar la validación cruzada anidada si el conjunto de datos es pequeño, ya que el ajuste excesivo en la selección y sesgo del modelo es más un problema. En aplicaciones prácticas, donde hay pocos hiperparámetros, la diferencia puede ser de poca importancia práctica arxiv.org/abs/1809.09446 .
Dikran Marsupial