¿Por qué hay una asimetría entre el paso de entrenamiento y el paso de evaluación?

27

Es bien sabido, especialmente en el procesamiento del lenguaje natural, que el aprendizaje automático debe proceder en dos pasos, un paso de capacitación y un paso de evaluación, y deben usar datos diferentes. ¿Por qué es esto? Intuitivamente, este proceso ayuda a evitar sobreajustar los datos, pero no veo la razón (teórica de la información) de que este sea el caso.

Relacionado, he visto algunos números arrojados sobre cuánto de un conjunto de datos debe usarse para el entrenamiento y cuánto para la evaluación, como 2/3 y 1/3 respectivamente. ¿Existe alguna base teórica para elegir una distribución particular?

Tamzin Blake
fuente

Respuestas:

15

Es curioso que la respuesta más votada realmente no responda la pregunta :) así que pensé que sería bueno respaldar esto con un poco más de teoría, mayormente tomada de "Minería de datos: herramientas y técnicas prácticas de aprendizaje automático" y de Tom Mitchell "Aprendizaje automático" .


Introducción.

Por lo tanto, tenemos un clasificador y un conjunto de datos limitado, y una cierta cantidad de datos debe ingresar al conjunto de entrenamiento y el resto se usa para las pruebas (si es necesario, un tercer subconjunto utilizado para la validación).

El dilema que enfrentamos es el siguiente: para encontrar un buen clasificador, el "subconjunto de entrenamiento" debe ser lo más grande posible, pero para obtener una buena estimación del error, el "subconjunto de prueba" debe ser lo más grande posible, pero ambos subconjuntos se toman del misma piscina

Es obvio que el conjunto de entrenamiento debe ser más grande que el conjunto de prueba, es decir, la división no debe ser 1: 1 (el objetivo principal es entrenar , no probar ), pero no está claro dónde debería estar la división.

Procedimiento de espera.

El procedimiento de dividir el "superconjunto" en subconjuntos se llama método de retención . Tenga en cuenta que es posible que tenga mala suerte y que falten ejemplos (o que estén sobrepresentados) en una de las categorías, que se pueden abordar

  • muestreo aleatorio, que garantiza que cada clase esté representada correctamente en todos los subconjuntos de datos; el procedimiento se denomina reserva estratificada
  • muestreo aleatorio con proceso repetido de entrenamiento-prueba-validación encima, que se llama retención estratificada repetida

En un procedimiento de espera único (no repetido), puede considerar intercambiar los roles de los datos de prueba y entrenamiento y promediar los dos resultados, pero esto solo es plausible con una división 1: 1 entre los conjuntos de entrenamiento y prueba que no es aceptable (vea Introducción ) Pero esto da una idea, y un método mejorado (en su lugar se usa validación cruzada ) - ¡vea a continuación!

Validación cruzada.

En la validación cruzada, usted decide un número fijo de pliegues (particiones de los datos). Si usamos tres pliegues, los datos se dividen en tres particiones iguales y

  • Usamos 2/3 para entrenamiento y 1/3 para pruebas
  • y repita el procedimiento tres veces para que, al final, cada instancia se haya utilizado exactamente una vez para la prueba.

Esto se llama validación cruzada triple , y si también se adopta la estrati fi cación (lo que a menudo es cierto) se llama validación cruzada estratificada triple .

Pero, he aquí, la forma estándar no es la división 2/3: 1/3. Citando "Minería de datos: herramientas y técnicas prácticas de aprendizaje automático" ,

La forma estándar [...] es utilizar una validación cruzada estratificada 10 veces. Los datos se dividen aleatoriamente en 10 partes en las que la clase se representa en aproximadamente las mismas proporciones que en el conjunto de datos completo. Cada parte se desarrolla a su vez y el esquema de aprendizaje se capacita en las nueve décimas restantes; entonces su tasa de error se calcula en el conjunto de reserva. Por lo tanto, el procedimiento de aprendizaje se ejecuta un total de 10 veces en diferentes conjuntos de entrenamiento (cada uno de los cuales tiene mucho en común). Finalmente, las 10 estimaciones de error se promedian para producir una estimación de error general.

¿Por qué 10? Debido a que "las pruebas ..Extensive en numerosos conjuntos de datos, con diferentes técnicas de aprendizaje, han demostrado que el 10 es aproximadamente el número correcto de pliegues para obtener la mejor estimación del error, y también hay cierta evidencia teórica que respalda esto .." No he No encontré qué pruebas extensas y evidencia teórica significaban, pero esta parece ser un buen comienzo para cavar más, si lo deseas.

Básicamente solo dicen

Aunque estos argumentos no son concluyentes, y el debate continúa en los círculos de aprendizaje automático y minería de datos sobre cuál es el mejor esquema para la evaluación, la validación cruzada 10 veces se ha convertido en el método estándar en términos prácticos. [...] Además, no hay nada mágico en el número exacto 10: la validación cruzada de 5 o 20 veces es casi tan buena.

Bootstrap y, finalmente! - La respuesta a la pregunta original.

Pero aún no hemos llegado a la respuesta sobre por qué a menudo se recomienda 2/3: 1/3. Mi opinión es que se hereda del método bootstrap .

Se basa en muestreo con reemplazo. Anteriormente, colocamos una muestra del "gran conjunto" en exactamente uno de los subconjuntos. Bootstraping es diferente y una muestra puede aparecer fácilmente en el conjunto de entrenamiento y prueba.

Veamos un escenario particular donde tomamos un conjunto de datos D1 de n instancias y lo muestreamos n veces con reemplazo, para obtener otro conjunto de datos D2 de n instancias.

Ahora mira con atención.

Debido a que algunos elementos en D2 se repetirán (casi con certeza), debe haber algunas instancias en el conjunto de datos original que no se hayan seleccionado: las utilizaremos como instancias de prueba.

¿Cuál es la posibilidad de que una instancia en particular no se haya recogido para D2 ? La probabilidad de ser recogido en cada toma es 1 / n, por lo que lo contrario es (1 - 1 / n) .

Cuando multiplicamos estas probabilidades juntas, es (1 - 1 / n) ^ n, que es e ^ -1, que es aproximadamente 0.3. Esto significa que nuestro conjunto de pruebas será de aproximadamente 1/3 y el conjunto de entrenamiento será de aproximadamente 2/3.

Yo supongo que esta es la razón por la cual se recomienda el uso 1/3: 2/3 dividida: esta relación se toma del método de estimación bootstrap.

Envolviendolo.

Quiero terminar con una cita del libro de minería de datos (que no puedo probar pero supongo que es correcta) donde generalmente recomiendan preferir la validación cruzada 10 veces:

El procedimiento de arranque puede ser la mejor forma de estimar el error para conjuntos de datos muy pequeños. Sin embargo, como la validación cruzada de dejar uno fuera, tiene desventajas que pueden ilustrarse al considerar una situación especial y artificial [...] como un conjunto de datos completamente aleatorio con dos clases. La tasa de error real es del 50% para cualquier regla de predicción, pero un esquema que memorice el conjunto de entrenamiento daría un puntaje de restitución perfecto del 100% para que las instancias de entrenamiento = 0, y el arranque de 0.632 lo mezcle con un peso de 0.368 a dan una tasa de error general de solo 31.6% (0.632 ¥ 50% + 0.368 ¥ 0%), lo cual es engañosamente optimista.

andreister
fuente
13

Considere un conjunto finito de m registros. Si usa todos los registros como un conjunto de entrenamiento, podría ajustar perfectamente todos los puntos con el siguiente polinomio:

y = a0 + a1 * X + a2 * X ^ 2 + ... + an * X ^ m

Ahora, si tiene algún registro nuevo, no utilizado en el conjunto de entrenamiento y los valores de un vector de entrada X son diferentes de cualquier vector X, utilizado en el conjunto de entrenamiento, ¿qué puede decir acerca de la precisión de la predicción y?

Le sugiero que revise un ejemplo en el que tiene un vector de entrada X de 1 o 2 dimensiones (para visualizar el polinomio sobreajustado) y verifique qué tan grande es el error de predicción para algún par (X, y) cuyos valores X son solo un poco diferente de los valores del conjunto de entrenamiento.

No sé si esta explicación es lo suficientemente teórica, pero espero que ayude. Traté de explicar el problema en el modelo de regresión, ya que lo considero más intuitivamente comprensible que otros (SVM, redes neuronales ...).

Cuando crea un modelo, debe dividir los datos en al menos un conjunto de entrenamiento y un conjunto de prueba (algunos dividen los datos en un conjunto de entrenamiento, evaluación y validación cruzada). Por lo general, el 70% de los datos se utilizan para el conjunto de entrenamiento y el 30% para la evaluación y luego, cuando construye el modelo, debe verificar el error de entrenamiento y el error de prueba. Si ambos errores son grandes, significa que su modelo es demasiado simple (el modelo tiene un alto sesgo). Por otro lado, si su error de entrenamiento es muy pequeño pero hay una gran diferencia entre el error de entrenamiento y el de prueba, significa que su modelo es demasiado complejo (el modelo tiene una gran varianza).

La mejor manera de elegir el compromiso correcto es trazar errores de entrenamiento y prueba para modelos de diversa complejidad y luego elegir aquel en el que el error de prueba sea mínimo (vea la imagen a continuación). ingrese la descripción de la imagen aquí

niko
fuente
55
Esta es una gran respuesta de cómo, no tanto por qué. Pero tal vez sea una pregunta equivocada : lo que realmente nos importa es lo que funciona empíricamente, no la teoría.
Tamzin Blake
@Thom: Entonces, realmente su pregunta es el segundo párrafo y no el final del primero ("no entiendo por qué") porque lo que funciona empíricamente es que se ajusta demasiado: su modelo hace un excelente trabajo al manejar pequeñas peculiaridades en su datos de entrenamiento que no están presentes en el caso general.
winwaed
1
@winwaed Las preguntas son "¿Por qué hay ...?", "¿Por qué es esto?" y "¿Hay alguna ...?", todas claramente indicadas por signos de interrogación. Estoy familiarizado con el fenómeno, y lo encuentro intuitivo, y estoy familiarizado con ejemplos empíricos, pero no sé por qué es así, y parece que la teoría de la información debería tener una respuesta para mí. El comentario anterior fue solo una reflexión de que quizás las preguntas "por qué" no son particularmente relevantes una vez que haya verificado empíricamente las regularidades que puede explotar.
Tamzin Blake
7

Este es el problema de la generalización, es decir, qué tan bien nuestra hipótesis clasificará correctamente futuros ejemplos que no forman parte del conjunto de entrenamiento. Vea este fantástico ejemplo, lo que sucedió en caso de que su modelo se ajuste solo a los datos que tiene y no a uno nuevo: la ley de Titius-Bode

Dov
fuente
Un buen ejemplo: es muy parecido a las hipótesis científicas. Todavía estamos hablando de modelos, ya sean modelos estadísticos de ML o modelos del universo.
winwaed
1

Hasta ahora, @andreiser dio una respuesta brillante a la segunda parte de la pregunta de OP con respecto a la división de datos de entrenamiento / prueba, y @niko explicó cómo evitar el sobreajuste, pero nadie ha llegado al mérito de la pregunta: ¿Por qué usar datos diferentes para capacitación y evaluación? nos ayuda a evitar el sobreajuste.


Nuestros datos se dividen en:

  1. Instancias de entrenamiento
  2. Instancias de validación
  3. Instancias de prueba (evaluación)

M

M1,...,Mn

Es importante darse cuenta de cuáles son los diferentes roles de las instancias de Validación y Prueba.

  1. Instancias de entrenamiento: se utilizan para adaptarse a los modelos.
  2. Instancias de validación: se utilizan para elegir un modelo
  3. Instancias de prueba (evaluación): se utilizan para medir la precisión de un modelo en datos nuevos

Consulte la página 222 de Los elementos del aprendizaje estadístico: minería de datos, inferencia y predicción para obtener más detalles.


fuente