27 votos

¿Por qué hay una asimetría entre la etapa de formación y la de evaluación?

Es bien sabido, especialmente en el procesamiento del lenguaje natural, que el aprendizaje automático debe proceder en dos etapas, una de entrenamiento y otra de evaluación, y que deben utilizar datos diferentes. ¿Por qué? Intuitivamente, este proceso ayuda a evitar el sobreajuste de los datos, pero no veo una razón (teórica de la información) para que así sea.

En relación con esto, he visto algunas cifras que indican qué parte del conjunto de datos debe utilizarse para el entrenamiento y qué parte para la evaluación, como 2/3 y 1/3 respectivamente. ¿Hay alguna base teórica para elegir una distribución concreta?

15voto

vignesh Puntos 6

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


Introducción.

Así que tenemos un clasificador y un conjunto de datos limitado, y una cierta cantidad de datos debe ir al conjunto de entrenamiento y el resto se utiliza para las pruebas (si es necesario, un tercer subconjunto utilizado para la validación).

El dilema al que nos 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 mismo grupo.

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

Procedimiento de retención.

El procedimiento de división del "superconjunto" en subconjuntos se denomina método de retención . Tenga en cuenta que es fácil tener mala suerte y que falten ejemplos de una determinada clase (o que estén representados en exceso) en uno de los subconjuntos, lo que puede solucionarse mediante

  • muestreo aleatorio, que garantiza que cada clase esté adecuadamente representada en todos los subconjuntos de datos - el procedimiento se denomina estratificado holdout
  • muestreo aleatorio con un proceso repetido de entrenamiento-prueba-validación, lo que se denomina retención estratificada repetida

En un único procedimiento de retención (no repetido), podría considerar intercambiar los papeles de los de prueba y entrenamiento y promediar los dos resultados, pero esto sólo es plausible con una división 1:1 entre los conjuntos de entrenamiento y prueba, lo que no es aceptable (véase Introducción ). Pero esto da una idea, y un método mejorado (llamado validación cruzada en su lugar) - ¡véase más abajo!

Validación cruzada.

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

  • utilizamos 2/3 para la formación y 1/3 para la prueba
  • y repetir 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 se adopta también la estratificación (lo que suele ser cierto) se denomina validación cruzada estratificada de tres veces .

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

La forma estándar [...] es utilizar la validación cruzada estratificada de 10 veces. Los datos se dividen aleatoriamente en 10 partes en las que la clase está representada en aproximadamente las mismas proporciones que en el conjunto de datos completo. Cada parte se excluye por turnos y el esquema de aprendizaje se entrena en las nueve décimas partes restantes; luego se calcula su tasa de error en el conjunto excluido. Así, 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). Por último, se promedian las 10 estimaciones de error para obtener una estimación de error global.

¿Por qué 10? Porque " Pruebas exhaustivas en numerosos conjuntos de datos, con diferentes técnicas de aprendizaje, han demostrado que 10 es el número correcto de pliegues para obtener la mejor estimación del error, y también hay algunas pruebas teóricas que lo respaldan " No he encontrado a qué pruebas extensas y pruebas teóricas se referían, pero este parece un buen comienzo para indagar más, si lo deseas.

Básicamente dicen

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

Bootstrap, y -¡por fin! - la respuesta a la pregunta original.

Pero aún no hemos llegado a la respuesta de por qué se suele recomendar el 2/3:1/3. Mi opinión es que es una herencia de bootstrap método.

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

Veamos un escenario particular en el que tomamos un conjunto de datos D1 de n instancias y la muestra 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á (casi con toda seguridad), debe haber algunos casos en el conjunto de datos original que no han sido elegidos: los utilizaremos como casos de prueba.

¿Cuál es la posibilidad de que un caso concreto 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 prueba será aproximadamente 1/3 y el conjunto de entrenamiento será aproximadamente 2/3.

I adivinar esta es la razón por la que se recomienda utilizar la división 1/3:2/3: esta proporción se toma del método de estimación bootstrapping.

Para terminar.

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

El procedimiento bootstrap puede ser la mejor forma de estimar el error para conjuntos de datos muy conjuntos de datos muy pequeños. Sin embargo, al igual que la validación cruzada con exclusión, tiene desventajas que pueden ilustrarse considerando una situación especial y artificial [...] 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 memorizara el conjunto de entrenamiento daría una puntuación de resustitución perfecta del 100%. de modo que etraining instances= 0, y el bootstrap de 0,632 mezclará esto con un peso de 0,368 para dar una tasa de error global de sólo el 31,6% (0,632 ¥ 50% + 0,368 ¥ 0%), lo cual es engañosamente optimista.

13voto

Tokabi Puntos 840

Consideremos un conjunto finito de m registros. Si se utilizan todos los registros como conjunto de entrenamiento, se podrían ajustar perfectamente todos los puntos con el siguiente polinomio:

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

Ahora bien, si tienes 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é puedes decir sobre la precisión de la predicción y?

Te sugiero que repases un ejemplo en el que tengas un vector de entrada X de 1 o 2 dimensiones (para visualizar el polinomio de sobreajuste) y compruebes cómo de grande es el error de predicción para algún par (X, y) cuyos valores X son sólo un poco diferentes de los valores del conjunto de entrenamiento.

No sé si esta explicación es lo suficientemente teórica, pero espero que ayude. He intentado explicar el problema sobre el modelo de regresión ya que lo considero más intuitivo que otros (SVM, Redes Neuronales...).

Cuando se construye un modelo, se deben 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 utiliza para el conjunto de entrenamiento y el 30% para la evaluación y, a continuación, cuando se construye el modelo, hay que comprobar 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 el error de entrenamiento es muy pequeño pero hay una gran diferencia entre el error de entrenamiento y el de prueba, significa que el modelo es demasiado complejo (el modelo tiene una gran varianza).

La mejor manera de elegir el compromiso adecuado es trazar los errores de entrenamiento y prueba para modelos de diversa complejidad y, a continuación, elegir aquel en el que el error de prueba sea mínimo (véase la imagen siguiente). enter image description here

5 votos

Esta es una respuesta muy buena para el cómo, pero no tanto para el por qué. Pero tal vez eso sea sólo una pregunta equivocada - lo que realmente nos importa es lo que funciona empíricamente, no la teoría.

0 votos

@Thom: Así que en realidad tu pregunta es el segundo párrafo y no el final del primero ("no veo por qué"), porque lo que funciona empíricamente es que obtienes un sobreajuste: tu modelo hace un excelente trabajo manejando pequeñas peculiaridades en tus datos de entrenamiento que no están presentes en el caso general.

1 votos

@winwaed Las preguntas son "¿Por qué hay...?", "¿Por qué es esto?", y "¿Hay algún...?", todas ellas claramente indicadas con signos de interrogación. Conozco el fenómeno, y me parece intuitivo, y conozco ejemplos empíricos, pero no sé por qué es el caso, y parece que la teoría de la información debería tener una respuesta para mí. El comentario anterior era sólo una reflexión de que tal vez las preguntas de "por qué" no son particularmente relevantes una vez que se tienen regularidades empíricamente verificadas que se pueden explotar.

7voto

halr9000 Puntos 3012

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

0 votos

Un buen ejemplo: es muy parecido al de las hipótesis científicas. Seguimos hablando de modelos, ya sean modelos estadísticos de ML o modelos del universo.

1voto

Hasta ahora @andreiser ha dado una respuesta brillante a la segunda parte de la pregunta del OP sobre la división de los datos de entrenamiento/prueba, y @niko ha explicado cómo evitar el sobreajuste, pero nadie ha llegado al fondo de la cuestión: Por qué utilizar datos diferentes para el entrenamiento y la evaluación nos ayuda a evitar el sobreajuste.


Nuestros datos se dividen en:

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

Ahora tenemos un modelo, llamémoslo $\mathfrak{M}$ . Lo ajustamos utilizando las instancias de entrenamiento y comprobamos su precisión utilizando las instancias de validación. Incluso podemos hacer una validación cruzada. Pero, ¿por qué íbamos a comprobarlo de nuevo con las instancias de prueba?

El problema es que, en la práctica, probamos muchos modelos diferentes, $\mathfrak{M}_1, ..., \mathfrak{M}_n$ con diferentes parámetros. Aquí es donde se produce el sobreajuste. Elegimos selectivamente el modelo que mejor funciona en las instancias de validación. Pero nuestro objetivo es tener un modelo que funcione bien en general. Por eso tenemos las instancias de prueba: a diferencia de las instancias de validación, las instancias de prueba no intervienen en la elección del modelo.

Es importante saber cuáles son las diferentes funciones de las instancias de Validación y Prueba.

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

Véase la página 222 de Los elementos del aprendizaje estadístico: Minería de datos, inferencia y predicción para más detalles.

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