Compendio de técnicas de validación cruzada


43

Me pregunto si alguien conoce un compendio de técnicas de validación cruzada con una discusión sobre las diferencias entre ellos y una guía sobre cuándo usar cada una de ellas. Wikipedia tiene una lista de las técnicas más comunes, pero tengo curiosidad por saber si hay otras técnicas y si hay alguna taxonomía para ellas.

Por ejemplo, acabo de encontrarme con una biblioteca que me permite elegir una de las siguientes estrategias:

  • Resistir
  • Oreja
  • K Validación cruzada
  • Deja uno afuera
  • Validación cruzada estratificada
  • Validación cruzada estratificada equilibrada
  • Estratificado Aguante
  • Bootstrap estratificado

y estoy tratando de entender lo que significa estratificado y equilibrado en bootstrapping, hold out o CV

También podemos convertir esta publicación en un wiki de la comunidad si la gente lo desea, y recopilar una discusión sobre técnicas o taxonomías aquí.


Esta gran pregunta sería aún más útil si pudiéramos vincular las explicaciones de cada uno de los métodos.
mkt - Restablecer Monica

Respuestas:


16

Puedes agregar a esa lista:

  • Validación cruzada repetida
  • Dejar-grupo-fuera de validación cruzada
  • Fuera de bolsa (para bosques aleatorios y otros modelos en bolsas)
  • El bootstrap 632+

Realmente no tengo muchos consejos sobre cómo usar estas técnicas o cuándo usarlas. Puede usar el paquete de caret en R para comparar la validación cruzada de CV, Boot, Boot632, Leave-One-Out, Leave-Group-Out y Out-of-the-bag.

En general, generalmente uso el boostrap porque es menos computacionalmente intensivo que el CV repetido de k-fold o CV de omisión. Boot632 es mi algoritmo de elección porque no requiere mucho más cómputo que el bootstrap, y ha demostrado ser mejor que la validación cruzada o el bootstap básico en ciertas situaciones.

Casi siempre uso estimaciones de error fuera de la bolsa para bosques aleatorios, en lugar de validación cruzada. Los errores fuera de bolsa generalmente son insesgados, y los bosques aleatorios tardan lo suficiente como para computar tal como están.


3
¿Algún consejo sobre cuándo usar cada uno de estos?
whuber

16

La validación cruzada K-fold (CV) divide aleatoriamente sus datos en particiones K y, a su vez, mantiene una de esas partes K como un caso de prueba y agrupa las otras partes K-1 como datos de entrenamiento. Leave One Out (LOO) es el caso especial en el que tomas tus N elementos de datos y haces N-fold CV. En cierto sentido, Hold Out es otro caso especial, donde solo elige uno de sus K pliegues como prueba y no gira a través de todos los K pliegues.

Hasta donde yo sé, el CV 10 veces es más o menos el rigor, ya que utiliza sus datos de manera eficiente y también ayuda a evitar elecciones de partición desafortunadas. Hold Out no hace un uso eficiente de sus datos, y LOO no es tan robusto (o algo así), pero 10 veces es correcto.

Si sabe que sus datos contienen más de una categoría, y una o más categorías son mucho más pequeñas que el resto, algunas de sus particiones aleatorias K podrían no contener ninguna de las categorías pequeñas, lo que sería malo. Para asegurarse de que cada partición sea razonablemente representativa, utilice la estratificación: divida sus datos en categorías y luego cree particiones aleatorias eligiendo aleatoria y proporcionalmente de cada categoría.

Todas estas variaciones en K-fold CV eligen entre sus datos sin reemplazo. El programa de arranque elige datos con reemplazo, por lo que el mismo dato se puede incluir varias veces y es posible que algunos datos no se incluyan en absoluto. (Cada "partición" también tendrá N elementos, a diferencia de K-fold, en el que cada partición tendrá N / K elementos).

(Sin embargo, tendré que admitir que no sé exactamente cómo se usaría el bootstrap en el CV. El principio de las pruebas y el CV es asegurarse de que no pruebes los datos en los que entrenaste, para que obtengas Una idea más realista de cómo su técnica + coeficientes podrían funcionar en el mundo real).

EDITAR: Se reemplazó "Hold Out no es eficiente" con "Hold Out no hace un uso eficiente de sus datos" para ayudar a aclarar, según los comentarios.


1
Cuando dices que "Aguantar no es eficiente", no estoy seguro de seguirlo. ¿Qué quieres decir con eficiencia aquí? A diferencia del pliegue en N normal, Hold Out no gira a través de los pliegues, por lo que debería ser más rápido. ¿Quieres decir, en cambio, que es peor luchar contra el sobreajuste que el CV N-fold normal?
Amelio Vazquez-Reina

2
Por "eficiente" quiero decir que no utiliza sus datos de manera eficiente. La belleza de K-fold CV es que el 100% de sus datos se utilizan para el entrenamiento y el 100% de sus datos se utilizan para las pruebas, lo que hace un uso eficiente de sus datos. La clave es, por supuesto, que todos sus datos no se usen para pruebas y capacitación al mismo tiempo, lo que produciría resultados de prueba optimistas (sobreajuste). Al hacer una división estática, Hold Out dice que, digamos, 1/3 de sus datos nunca se usarán para el entrenamiento, y 2/3 de sus datos nunca se usarán para las pruebas, desperdiciando mucha información en sus datos.
Wayne

@Wayne ¿No es el estimador de reserva asintóticamente imparcial? Además, el CV k-fold simple es más propenso a errores de tipo II que el CV k-fold repetido.
chl

@chl: Creo que tienes razón en ambos aspectos. No he usado CV K-fold repetido, pero debería tener una variación menor, lo que ayudaría.
Wayne


1

... y una guía sobre cuándo usar cada uno de ellos ...

Desafortunadamente, ese problema es más difícil de lo que recibe crédito. Hay al menos 2 usos principales de la validación cruzada: seleccionar un modelo y evaluar el rendimiento del modelo.

Hablando en términos generales, si usa una variante de CV que divide los datos usando una alta relación entre el tren y la prueba, esto puede ser mejor para la evaluación. El uso de un conjunto de entrenamiento más grande imitará con mayor precisión el rendimiento del ajuste del modelo en el conjunto de datos completo.

Pero una alta relación entre el tren y la prueba puede ser peor para la selección. Imagine que realmente hay un "mejor" modelo que "debería" elegir, pero su conjunto de datos es bastante grande. Entonces, los modelos demasiado grandes que se sobreajusten ligeramente tendrán casi el mismo rendimiento de CV que el "mejor" modelo (porque estimará con éxito que sus parámetros espurios son insignificantes). La aleatoriedad en los datos y el procedimiento de división / CV a menudo harán que elija un modelo sobreajustado en lugar del modelo verdaderamente "mejor".

Ver Shao (1993), "Selección de modelo lineal por validación cruzada" para la teoría asintótica más antigua en el caso de regresión lineal. Yang (2007), "Consistencia de la validación cruzada para comparar procedimientos de regresión" y Yang (2006), "Comparar métodos de aprendizaje para la clasificación" ofrecen una teoría asintótica para problemas de regresión y clasificación más generales. Pero es difícil obtener consejos rigurosos de muestras finitas .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.