563 votos

¿Cuál es la diferencia entre el conjunto de pruebas y el conjunto de validación?

He encontrado esto confuso cuando uso la caja de herramientas de redes neuronales en Matlab.
Dividió el conjunto de datos brutos en tres partes:

  1. conjunto de entrenamiento
  2. conjunto de validación
  3. juego de pruebas

Me he dado cuenta de que en muchos algoritmos de entrenamiento o aprendizaje, los datos se suelen dividir en 2 partes, el conjunto de entrenamiento y el conjunto de prueba.

Mis preguntas son:

  1. ¿cuál es la diferencia entre el conjunto de validación y el conjunto de prueba?
  2. ¿Es el conjunto de validación realmente específico para la red neuronal? O es opcional.
  3. Para ir más lejos, ¿hay alguna diferencia entre validación y prueba en el contexto del aprendizaje automático?

73 votos

La pregunta se responde en el libro Elementos del aprendizaje estadístico página 222. El conjunto de validación se utiliza para la selección del modelo, el conjunto de prueba para el error de predicción del modelo final (el modelo que fue seleccionado por el proceso de selección).

0 votos

@mpiktas ¿Te refieres al capítulo "Evaluación y selección de modelos"?

2 votos

Sí. El número de página era de la 5ª edición impresa.

356voto

mohsen najafzadeh Puntos 421

Conjunto de entrenamiento

Un conjunto de ejemplos utilizados para el aprendizaje: para ajustar los parámetros del clasificador En el caso del Perceptrón Multicapa (MLP), utilizaríamos el conjunto de entrenamiento para encontrar los pesos "óptimos" con la regla back-prop

Conjunto de validación

Un conjunto de ejemplos utilizados para afinar los parámetros de un clasificador En el caso del MLP, utilizaríamos el conjunto de validación para encontrar el número "óptimo" de unidades ocultas o determinar un punto de parada para el algoritmo de retropropagación

Conjunto de pruebas

Un conjunto de ejemplos utilizados únicamente para evaluar el rendimiento de un clasificador totalmente entrenado En el caso del MLP, utilizaríamos la prueba para estimar la tasa de error después de haber elegido el modelo final modelo final (tamaño del MLP y pesos reales) Después de evaluar el modelo final en el conjunto de prueba, ¡NO SE DEBE afinar más el modelo!

¿Por qué separar los conjuntos de prueba y de validación?

La estimación de la tasa de error del modelo final en los datos de validación estará sesgada (menor que la tasa de error real) ya que el conjunto de validación se utiliza para seleccionar el modelo final Después de evaluar el modelo final en el conjunto de prueba, ¡NO SE DEBE afinar más el modelo!


fuente : Introducción al análisis de patrones,Ricardo Gutierrez-OsunaTexas A&M University, Texas A&M University

73 votos

+1 por "¡NO DEBES afinar más el modelo!"

7 votos

¿Cuál es la diferencia entre "ajustar los parámetros" y "afinar los parámetros"?

0 votos

Una explicación muy clara: +1

312voto

jrudolph Puntos 3726

Normalmente, para realizar un aprendizaje supervisado, se necesitan dos tipos de conjuntos de datos:

  1. En un conjunto de datos (su "patrón de oro"), tiene los datos de entrada junto con la salida correcta/esperada; este conjunto de datos suele estar debidamente preparado, ya sea por humanos o mediante la recopilación de algunos datos de forma semiautomática. Pero debe tener la salida esperada para cada fila de datos porque la necesita para el aprendizaje supervisado.

  2. Los datos a los que va a aplicar su modelo. En muchos casos, estos son los datos en los que está interesado en la salida de su modelo, y por lo tanto no tiene ninguna salida "esperada" aquí todavía.

Al realizar el aprendizaje automático, se hace lo siguiente:

  1. Fase de entrenamiento: presenta los datos de su "patrón oro" y entrena su modelo, emparejando la entrada con la salida esperada.
  2. Fase de validación/prueba: para estimar lo bien que se ha entrenado el modelo (que depende del tamaño de los datos, el valor que se quiere predecir, la entrada, etc.) y para estimar las propiedades del modelo (error medio para los predictores numéricos, errores de clasificación para los clasificadores, recuerdo y precisión para los modelos de RI, etc.)
  3. Fase de aplicación: ahora se aplica el modelo recién desarrollado a los datos del mundo real y se obtienen los resultados. Dado que en este tipo de datos no suele haber ningún valor de referencia (de lo contrario, ¿para qué necesitaría su modelo?), sólo puede especular sobre la calidad del resultado de su modelo utilizando los resultados de su fase de validación.

La fase de validación suele dividirse en dos partes :

  1. En la primera parte, sólo tienes que mirar tus modelos y seleccionar el que mejor funciona utilizando los datos de validación (=validación)
  2. A continuación, se estima la precisión del enfoque seleccionado (=prueba).

De ahí la separación al 50/25/25.

En caso de que no necesite elegir un modelo apropiado entre varios enfoques rivales, puede simplemente volver a dividir su conjunto de manera que básicamente sólo tenga el conjunto de entrenamiento y el conjunto de prueba, sin realizar la validación de su modelo entrenado. Yo, personalmente, los divido en 70/30.

Ver también esta pregunta .

42 votos

¿Por qué no iba a elegir el modelo con mejor rendimiento basándome en el conjunto de pruebas y eliminando por completo el conjunto de validación?

5 votos

¿Se debe a un exceso de ajuste? ¿O porque queremos algunas estadísticas independientes basadas en el resultado de la prueba, sólo para la estimación del error?

15 votos

@Sebastian [Si sólo se utiliza el conjunto de pruebas: ]"El error del conjunto de pruebas del modelo final elegido subestimará el verdadero error de las pruebas, a veces de forma significativa" [Hastie et al].

101voto

innovIsmail Puntos 81

Mis 5 años de experiencia en informática me enseñaron que no hay nada mejor que la simplicidad.

El concepto de Formación/validación cruzada/prueba Los conjuntos de datos son así de sencillos. Cuando se tiene un conjunto de datos grande, se recomienda dividirlo en 3 partes:

  1. Conjunto de entrenamiento (60% del conjunto de datos original): Se utiliza para construir nuestro algoritmo de predicción. Nuestro algoritmo intenta ajustarse a las peculiaridades de los conjuntos de datos de entrenamiento. En esta fase solemos crear varios algoritmos para poder comparar su rendimiento durante la fase de validación cruzada.

  2. Conjunto de validación cruzada (20% del conjunto de datos original): Este conjunto de datos se utiliza para comparar el rendimiento de los algoritmos de predicción creados a partir del conjunto de entrenamiento. Elegimos el algoritmo que tiene el mejor rendimiento.

  3. Conjunto de pruebas (20% del conjunto de datos original): Ahora hemos elegido nuestro algoritmo de predicción preferido, pero aún no sabemos cómo se comportará con datos del mundo real completamente desconocidos. Por lo tanto, aplicamos nuestro algoritmo de predicción elegido en nuestro conjunto de pruebas para ver cómo va a funcionar y así poder tener una idea del rendimiento de nuestro algoritmo en datos no vistos.

Notas

  • Es muy importante tener en cuenta que no es recomendable saltarse la fase de prueba, ya que el algoritmo que se ha comportado bien durante la fase de validación cruzada no significa realmente que sea el mejor, porque los algoritmos se comparan en función del conjunto de validación cruzada y sus peculiaridades y ruidos...

  • Durante la fase de prueba, el objetivo es ver cómo se desenvuelve nuestro modelo final en la naturaleza, por lo que en caso de que su rendimiento sea muy pobre deberíamos repetir todo el proceso a partir de la fase de entrenamiento.

2 votos

es fácil y confuso referirse a los conjuntos como fases y viceversa.

0 votos

@MattO'Brien Sí, tienes razón. Debería haber sido mejor utilizar sólo una palabra.

0 votos

Así que tengo que apartar el conjunto de pruebas al principio para evitar la contaminación de los datos. Luego, a partir de los datos restantes, puedo ejecutar la validación cruzada varias veces, seleccionando cada vez el conjunto de entrenamiento y el conjunto de validación cruzada al azar. ¿Sería esto correcto?

42voto

smartappers Puntos 11

En cada paso en el que se le pida que tome una decisión (es decir, que elija una opción entre varias), debe disponer de un conjunto/partición adicional para calibrar la exactitud de su elección, de modo que no se limite a elegir el resultado más favorable del azar y confunda el extremo de la distribución con el centro 1 . La izquierda es la pesimista. La derecha es la optimista. El centro es el pragmático. Sé el pragmático.

enter image description here

Paso 1) Formación: Cada tipo de algoritmo tiene sus propias opciones de parámetros (el número de capas en una red neuronal, el número de árboles en un bosque aleatorio, etc). Para cada uno de tus algoritmos, debes elegir una opción. Por eso tienes un conjunto de entrenamiento.

Paso 2) Validación: Ahora tienes una colección de algoritmos. Debes elegir un algoritmo. Por eso tienes un conjunto de pruebas. La mayoría de la gente elige el algoritmo que mejor funciona en el conjunto de validación (y eso está bien). Pero si no se mide la tasa de error del algoritmo con mejor rendimiento en el conjunto de pruebas y se opta por su tasa de error en el conjunto de validación, entonces se ha confundido ciegamente el "mejor escenario posible" con el "escenario más probable". Esa es una receta para el desastre.

Paso 3) Pruebas: Supongo que si tus algoritmos no tuvieran ningún parámetro, no necesitarías un tercer paso. En ese caso, su paso de validación sería su paso de prueba. Tal vez Matlab no te pide parámetros o has elegido no usarlos y esa es la fuente de tu confusión.

1 A menudo es útil ir a cada paso con la suposición (hipótesis nula) de que todas las opciones son las mismas (por ejemplo, todos los parámetros son los mismos o todos los algoritmos son los mismos), de ahí mi referencia a la distribución.

2 Esta imagen no es mía. La he tomado de este sitio: http://www.teamten.com/lawrence/writings/bell-curve.png

9 votos

Creo que la primera frase capta la respuesta fundamental a esta pregunta mejor que cualquiera de las otras respuestas. "En cada paso en el que se le pide que tome una decisión (es decir, que elija una opción entre varias), debe tener un conjunto/partición adicional para medir la exactitud de su elección..."

0 votos

Sobre la pregunta: Si quiero encontrar el mejor bosque aleatorio (RF) y suponiendo que sólo hay un hiperparámetro de RF, que es el número de árboles (N), entonces en el paso 1, ejecuto muchos RF con diferentes N para construir el bosque; en el paso 2, los aplico en la prueba de validación y elijo el RF con N* que da el menor error sobre la prueba de validación, entonces en el paso 3, aplico el RF con N* al conjunto de prueba y obtengo una estimación insesgada del verdadero error de prueba de este RF con N*. Pero podría aplicar todas mis RF en el conjunto de pruebas y elegir la que tenga el menor error de prueba, que podría no ser N*. Entonces, ¿para qué sirve hacer el paso de validación 2?

2 votos

@KevinKim : Si aplica su conjunto de pruebas a todas las RF y utiliza los resultados para hacer otra elección (elegir otro modelo), entonces acaba de repetir el paso de validación. Has puesto tu mente en "¡necesito obtener el menor error con un modelo!". Ese es el objetivo de entrenar y validar, NO de probar. Probar sólo tiene que ver con: He entrenado y elegido un modelo, ahora veamos cómo se comporta "en general". Evidentemente, el conjunto de pruebas "general" no es más que otra porción de datos que puede o no estar sobreajustada, pero la cuestión es que TÚ no has sobreajustado tu modelo a sabiendas de las elecciones.

25voto

dan90266 Puntos 609

No es necesario dividir los datos de ninguna manera. El bootstrap puede proporcionar estimaciones más pequeñas del error cuadrático medio de la precisión de la predicción utilizando toda la muestra tanto para desarrollar como para probar el modelo.

1 votos

Entonces, ¿no defiende la validación cruzada mediante la división de grandes conjuntos de datos para la prueba/validación de modelos predictivos?

12 votos

No, a menos que el conjunto de datos sea enorme o la relación señal/ruido sea alta. Según mi experiencia, la validación cruzada no es tan precisa como el bootstrap, y no utiliza todo el tamaño de la muestra. En muchos casos hay que repetir la validación cruzada entre 50 y 100 veces para lograr una precisión adecuada. Pero si los conjuntos de datos tienen más de 20.000 sujetos, los enfoques sencillos, como la validación de muestra dividida, suelen ser adecuados.

2 votos

Es muy bueno saberlo. Gracias. Y viniendo de ti, es una gran "fuente" de información. ¡Saludos!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X