Para mí, parece que la validación de suspensión es inútil. Es decir, dividir el conjunto de datos original en dos partes (capacitación y evaluación) y usar el puntaje de evaluación como medida de generalización es algo inútil.
La validación cruzada K-fold parece dar mejores aproximaciones de generalización (ya que entrena y prueba en cada punto). Entonces, ¿por qué usaríamos la validación de retención estándar? ¿O incluso hablar de eso?
machine-learning
cross-validation
validation
ameba dice Reinstate Monica
fuente
fuente
Respuestas:
Mi única suposición es que puedes aguantar con tres horas de experiencia en programación; el otro lleva una semana en principio y seis meses en práctica.
En principio es simple, pero escribir código es tedioso y requiere mucho tiempo. Como Linus Torvalds dijo: "Los malos programadores se preocupan por el código. Los buenos programadores se preocupan por las estructuras de datos y sus relaciones". Muchas de las personas que hacen estadísticas son malos programadores, sin culpa propia. Hacer la validación cruzada k-fold de manera eficiente (y con eso quiero decir, de una manera que no es horriblemente frustrante depurar y usar más de una vez) en R requiere una comprensión vaga de las estructuras de datos, pero las estructuras de datos generalmente se omiten "introducción a la programación estadística "tutoriales. Es como la persona mayor que usa Internet por primera vez. Realmente no es difícil, solo toma media hora más o menos para darse cuenta la primera vez, pero es completamente nuevo y eso lo hace confuso, por lo que es fácil ignorarlo.
Usted tiene este tipo de preguntas: ¿Cómo implementar una validación de retención en R . Sin ánimo de ofender, en absoluto, al autor de la pregunta. Pero muchas personas simplemente no están alfabetizadas en códigos. El hecho de que la gente haga validación cruzada es suficiente para hacerme feliz.
Suena tonto y trivial, pero esto proviene de la experiencia personal, haber sido ese tipo y haber trabajado con muchas personas que eran ese tipo.
fuente
La suspensión se usa a menudo como sinónimo de validación con un conjunto de pruebas independiente, aunque existen diferencias cruciales entre dividir los datos al azar y diseñar un experimento de validación para pruebas independientes.
Se pueden usar conjuntos de pruebas independientes para medir el rendimiento de generalización que no se puede medir mediante muestreo o validación de espera, por ejemplo, el rendimiento para casos futuros desconocidos (= casos que se miden más tarde, después de que finalice la capacitación). Esto es importante para saber cuánto tiempo se puede usar un modelo existente para nuevos datos (piense, por ejemplo, en la deriva del instrumento). En términos más generales, esto puede describirse como la medición del rendimiento de extrapolación para definir los límites de aplicabilidad.
Otro escenario en el que la retención puede ser realmente beneficiosa es: es muy fácil asegurarse de que los datos de entrenamiento y prueba estén separados adecuadamente, mucho más fácil que para la validación de remuestreo: por ejemplo
Dependiendo del nivel de separación que necesite, cada paso puede ser realizado por otra persona. Como primer nivel, no entregar ningún dato (ni siquiera las mediciones) de los casos de prueba al modelador permite estar muy seguro de que no se filtre ningún dato de prueba en el proceso de modelado. En un segundo nivel, el modelo final y las medidas del caso de prueba podrían entregarse a otra persona, y así sucesivamente.
Sí, paga por la menor eficiencia de las estimaciones de retención en comparación con la validación de remuestreo. Pero he visto muchos documentos en los que sospecho que la validación de remuestreo no separa correctamente los casos (en mi campo tenemos muchos datos agrupados / jerárquicos / agrupados).
Aprendí mi lección sobre fugas de datos para volver a muestrear retrayendo un manuscrito una semana después del envío cuando descubrí que tenía una fuga previamente no detectada (al ejecutar pruebas de permutación) en mi procedimiento de división (error tipográfico en el cálculo del índice).
A veces, la retención puede ser más eficiente que encontrar a alguien que esté dispuesto a dedicar tiempo para verificar el código de remuestreo (por ejemplo, para datos agrupados) para obtener el mismo nivel de certeza sobre los resultados. Sin embargo, en mi humilde opinión, generalmente no es eficiente hacer esto antes de que se encuentre en la etapa en la que de todos modos necesita medir, por ejemplo, el rendimiento futuro (primer punto), en otras palabras, cuando de todos modos necesita configurar un experimento de validación para el modelo existente.
OTOH, en situaciones de tamaño de muestra pequeño, la retención no es una opción: necesita mantener suficientes casos de prueba para que los resultados de la prueba sean lo suficientemente precisos como para permitir la conclusión necesaria (recuerde: 3 de los 3 casos de prueba correctos para la clasificación significa un intervalo de confianza binomial del 95% que oscila muy por debajo de 50:50 ¡adivinando!) Frank Harrell señalaría la regla general de que al menos ca. Se necesitan 100 casos (de prueba) para medir adecuadamente una proporción [como la fracción de casos pronosticados correctamente] con una precisión útil.
Actualización: hay situaciones en las que la división adecuada es particularmente difícil de lograr, y la validación cruzada se vuelve inviable. Considere un problema con una serie de factores de confusión. La división es fácil si estos factores de confusión están estrictamente anidados (por ejemplo, un estudio con varios pacientes tiene varias muestras de cada paciente y analiza una cantidad de células de cada muestra): se divide en el nivel más alto de la jerarquía de muestreo (según el paciente) . Pero es posible que tenga factores de confusión independientes que no están anidados, por ejemplo, variación diaria o variación causada por diferentes experimentadores que ejecutan la prueba. Luego debe asegurarse de que la división sea independiente para todosfactores de confusión en el nivel más alto (los factores de confusión anidados serán automáticamente independientes). Cuidar esto es muy difícil si algunos factores de confusión solo se identifican durante el estudio, y diseñar y realizar un experimento de validación puede ser más eficiente que lidiar con divisiones que casi no dejan datos ni para entrenamiento ni para pruebas de los modelos sustitutos.
fuente
Entonces para responder las preguntas:
¿Por qué hablar de eso? Pedagógicamente Vale la pena pensar en la validación Hold-out como un caso especial, y solo ocasionalmente útil, de un método que de otra manera sería bastante útil con muchas, muchas variaciones.
fuente
Si su procedimiento de selección y ajuste de modelo no puede codificarse porque es subjetivo, o en parte, involucrando la observación de gráficos y similares, la validación de retención podría ser lo mejor que puede hacer. (Supongo que tal vez podrías usar algo como Mechanical Turk en cada doblez de CV, aunque nunca he oído que se haga).
fuente
Solo quería agregar algunas pautas simples que Andrew Ng mencionó en nuestra clase CS 229 en Stanford con respecto a la validación cruzada. Estas son las prácticas que sigue en su propio trabajo.
fuente
Respuesta corta:
Puede relajar esto para:
Algunos de ustedes mencionaron que programar esto en R podría ser un problema. Le recomiendo que eche un vistazo al paquete "mlr" . Envuelve diferentes paquetes en una interfaz unificada, y también proporciona métodos de muestreo y evaluación de rendimiento realmente avanzados.
Echa un vistazo: http://mlr-org.github.io/mlr-tutorial/release/html/resample/ y: http://mlr-org.github.io/mlr-tutorial/release/html/performance/ index.htm
Alguna explicación más: lo que CV realmente hace es romper la compensación de la variación de sesgo:
Ahora, el problema que ambos enfoques intentan resolver es estimar el error de generalización, que está condicionado a los datos que se usaron para entrenar un modelo.
Holdout tiene un problema con sesgo y varianza:
Al reducir la cantidad de datos que probamos, introducimos una variación en nuestro error de generalización estimado, ya que los datos de prueba podrían no representar muy bien la distribución subyacente. Sin embargo, esto no introduce un sesgo, ya que se espera que el rendimiento estimado sea correcto.
Sin embargo, hacer que el conjunto de entrenamiento sea más pequeño introduce un sesgo pesimista, ya que nuevamente la distribución subyacente no está bien representada en los datos y el modelo tampoco puede ajustarse a los datos. Hacer que el conjunto de entrenamiento sea muy pequeño también introduce variaciones.
Como el tamaño del entrenamiento y el conjunto de pruebas se determinan entre sí, esto nos deja con una compensación: sesgo pesimista versus alta varianza.
La validación cruzada es especialmente importante para los alumnos más complejos (alta varianza). Por lo general, también son más caros computacionalmente, lo que puede hacer que todo el proceso requiera mucho tiempo.
fuente
Todos estos son comentarios útiles. Solo toma uno más en cuenta. Cuando tiene suficientes datos, usar Hold-Out es una forma de evaluar un modelo específico (un modelo SVM específico, un modelo CART específico, etc.), mientras que si usa otros procedimientos de validación cruzada, está evaluando metodologías (bajo las condiciones de su problema) ) en lugar de modelos (metodología SVM, metodología CART, etc.).
Espero que esto sea útil!
fuente
Modelar con datos serios en el tiempo es una excepción para mí. K fold no puede funcionar en algunos casos cuando necesita predecir el futuro en función de los datos anteriores. Los conjuntos de pruebas tienen que ser los datos futuros, y nunca puedes tocarlos en la fase de entrenamiento. ex predicción de venta o el mercado de valores. Aguantar es útil en esos casos.
fuente
Simplemente pon; hora. Validación cruzada ejecuta la rutina de entrenamiento k veces (es decir, una vez para cada conjunto de resistencia). Si tiene datos grandes, entonces podría llevar muchas horas o incluso días entrenar el modelo para un solo conjunto de datos, por lo que debe multiplicarlo por k cuando use la validación cruzada.
Entonces, aunque la validación cruzada es el mejor método, en ciertas circunstancias no es factible, y el tiempo que tomaría podría haberse empleado mejor modelando los datos de diferentes maneras, o probando diferentes funciones de pérdida para obtener un mejor modelo.
Mi preferencia personal es tomar datos de validación de todo el conjunto de datos, por lo que, en lugar de tomar una sola porción del 10% de la cabeza o la cola de los datos, tomo el 2% de 5 puntos en el conjunto de datos. Eso hace que los datos de validación sean un poco más representativos de los datos en su conjunto.
fuente
Cabe señalar que no siempre es posible aplicar la validación cruzada. Considere los conjuntos de datos dependientes del tiempo, de modo que desee utilizar los datos históricos para entrenar un modelo predictivo para el comportamiento futuro. En este caso, debe aplicar la validación de suspensión.
fuente