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í.
cross-validation
usuario815423426
fuente
fuente
Respuestas:
Puedes agregar a esa lista:
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.
fuente
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.
fuente
Encontré una de las referencias vinculadas en el artículo de Wikipedia bastante útil
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.48.529&rep=rep1&type=pdf
"Un estudio de validación cruzada y bootstrap para la estimación de precisión y la selección del modelo", Ron Kohavi, IJCAI95
Contiene una comparación empírica para un subconjunto de técnicas de CV. La versión tl; dr es básicamente "usar CV 10 veces".
fuente
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 .
fuente