70 votos

¿Cómo puedo ayudar a garantizar que los datos de prueba no se escapa en los datos de entrenamiento?

Supongamos que tenemos a alguien la construcción de un modelo predictivo, pero que a alguien no es necesariamente versado en buen estadística o de la máquina principios de aprendizaje. Tal vez nos están ayudando a esa persona como son el aprendizaje, o puede que la otra persona está utilizando algún tipo de paquete de software que requiere de un mínimo de conocimientos para su uso.

Ahora esta persona podría muy bien reconocer que la verdadera prueba viene de la exactitud (o cualquier otra métrica) en fuera de muestra de los datos. Sin embargo, mi preocupación es que hay un montón de sutilezas hay de que preocuparse. En el caso sencillo en el que construir su modelo y evaluar en los datos de entrenamiento y evaluar a cabo las pruebas con los datos. Por desgracia, a veces puede ser demasiado fácil en ese momento para volver atrás y modificar algunas de modelado de parámetros y comprobar los resultados de la misma "prueba" de datos. En este punto, que los datos ya no verdadera de los datos de muestra, sin embargo, y sobreajuste puede convertirse en un problema.

Una posible manera de resolver este problema sería sugerir la creación de muchos fuera de muestra de los conjuntos de datos de tal forma que cada conjunto de datos de prueba pueden ser desechados después de su uso y no se reutiliza. Esto requiere una gran cantidad de datos de gestión, especialmente la de que la división debe hacerse antes del análisis (por lo que tendría que saber cuántas divisiones de antemano).

Tal vez un enfoque más convencional es k-fold cross validation. Sin embargo, en cierto sentido, es que se pierde la distinción entre un "entrenamiento" y "pruebas" conjunto de datos que creo que puede ser útil, especialmente para aquellos que todavía están aprendiendo. También no estoy convencido de esto tiene sentido para todos los tipos de modelos de predicción.

Hay alguna manera de que he pasado por alto para ayudar a superar el problema de sobreajuste y pruebas de fuga mientras que aún permanecen poco claros para un usuario inexperto?

57voto

John Richardson Puntos 1197

Tienes razón, este es un problema importante en el aprendizaje de máquina/la modelación estadística. Esencialmente, la única manera de resolver este problema es conservar una prueba independiente establecer y mantener mantuvo hasta que el estudio es completo y utilizarlo para su validación final.

Sin embargo, inevitablemente, la gente va a mirar los resultados en el conjunto de prueba y, a continuación, cambiar su modelo de acuerdo a esto; sin embargo, esto no se traduce necesariamente en una mejora en la generalización de rendimiento como la diferencia en el rendimiento de los diferentes modelos pueden ser en gran parte debido a la particular de la muestra de datos de prueba que tenemos. En este caso, en la toma de una decisión que efectivamente están más ajustadas de la prueba de error.

La forma de limitar este es hacer que la varianza de la prueba de error tan pequeño como sea posible (es decir, la variabilidad en el error de la prueba veríamos si se utilizan diferentes muestras de datos como el conjunto de pruebas, a partir de la misma base de distribución). Esto es más fácil de lograr mediante un gran conjunto de pruebas si es posible, o por ejemplo, de arranque o de validación cruzada si no hay muchos datos disponibles.

He encontrado que este tipo de ajuste en el modelo de selección es mucho más problemático de lo que generalmente se agradece, sobre todo con respecto al rendimiento de estimación, ver

G. C. Cawley y N. L. C. Talbot, Sobre-ajuste en el modelo de selección y posterior sesgo de selección en la evaluación de desempeño, Diario de Aprendizaje de la Máquina de la Investigación, 2010. La investigación, vol. 11, pp 2079-2107, julio de 2010 (www)

Este tipo de problema afecta especialmente a la utilización de conjuntos de datos de referencia, que se han utilizado en muchos estudios, y cada nuevo estudio que implícitamente se ven afectados por los resultados de estudios anteriores, por lo que los resultados observados es probable que sea un optimista estimación de la eficacia del método. La forma en que tratar de conseguir alrededor de esto es buscar en muchos conjuntos de datos (por lo que el método no está sintonizado a un conjunto específico de datos) y también el uso de múltiples pruebas al azar/formación se divide para el desempeño de estimación (para reducir la varianza de la etsimate). Sin embargo, los resultados todavía necesita la salvedad de que estos parámetros han sido sobre-ajuste.

Otro ejemplo donde esto ocurre es en el aprendizaje de máquina competiciones con una tabla de clasificación basado en un conjunto de validación. Inevitablemente, algunos de los competidores mantener a juguetear con su modelo para obtener más arriba en la tabla de posiciones, pero luego terminan en la parte inferior de la clasificación final. La razón de esto es que sus múltiples opciones tienen más ajustado el conjunto de validación (de manera efectiva el aprendizaje de las variaciones aleatorias en el pequeño conjunto de validación).

Si usted no puede mantener una relación estadísticamente puro de la prueba de conjunto, entonces me temo que las dos mejores opciones son: (i) recopilar algunos datos nuevos para hacer una nueva estadísticamente puro de la prueba de conjunto o (ii) hacer la salvedad de que el nuevo modelo se basa en una decisión tomada después de observar el conjunto de pruebas de error, por lo que el rendimiento estimado es probable que tenga un sesgo optimista.

18voto

patfla Puntos 1

Una forma de asegurar esto es para asegurarse de que se han codificado de seguridad de todas las cosas que hacer para entrar en el modelo, incluso "manitas". De esta manera, al ejecutar el proceso varias veces, decir a través de la validación cruzada, usted está guardando cosas coherentes entre pistas. Esto asegura que todas las posibles fuentes de variación son capturados por la cruz-proceso de validación.

El otro vitalmente importante es asegurarse de que usted tiene una muestra representativa, en ambos conjuntos de datos. Si el conjunto de datos no es representativa de la clase de datos que se piensa usar para predecir, entonces no hay mucho que usted puede hacer. Todo el modelado se basa en una suposición de que la "inducción" de las obras - las cosas que no hemos observado se comportan como las cosas que hemos observado.

Como regla general, manténgase alejado de los complejos de ajuste del modelo de procedimientos, a menos que (i) usted sabe lo que está haciendo, y (ii) se han tratado los métodos más sencillos, y se encontró que no funcionan, y cómo el complejo método corrige los problemas con el método simple. "Simples" y "complejas" se entiende en el sentido de "simple" o "complejo" a la persona que realiza la conexión. La razón de esto es tan importante es que permite aplicar lo que me gusta llamar un "oler prueba" a los resultados. Hace que el resultado se vea bien? Usted no puede "oler" los resultados de un procedimiento que no entiende.

NOTA: la próxima, más larga parte de mi respuesta está basada en mi experiencia, que es en el $N>>p$ área, con $p$ posiblemente grandes. Estoy casi seguro de que lo que sigue a continuación no se apliquen a las $N\aprox p$ o $N<p$ de los casos

Cuando usted tiene una muestra grande, la diferencia entre usar y no usar una determinada observación es muy pequeño, siempre que el modelado no es demasiado "local". Esto es debido a la influencia de un determinado punto de datos es generalmente del orden de $\frac{1}{N}$. Así, en grandes conjuntos de datos, los residuos que recibe de "sostener" el conjunto de datos de prueba son básicamente los mismos que los residuos que recibe de su uso en el conjunto de datos de entrenamiento. Usted puede mostrar esta utilizando mínimos cuadrados ordinarios. El residual que recibe de exclusión de la $i$th observación (es decir, lo que el conjunto de pruebas de error sería si ponemos a la observación en el conjunto de prueba) es de $e_i^{prueba}=(1-h_{ii})^{-1}e_i^\mathrm{tren}$, donde $e_i^\mathrm{tren}$ es la formación residual, y $h_{ii}$ es la influencia de la $i$th punto de datos. Ahora tenemos que $\sum_ih_{ii}=p$, donde $p$ es el número de variables en la regresión. Ahora si $N>>p$, entonces es muy difícil para cualquier $h_{ii}$ a ser lo suficientemente grande como para hacer una diferencia apreciable entre el conjunto de pruebas y de entrenamiento conjunto de errores. Podemos tomar un ejemplo sencillo, supongamos que $p=2$ (intercepción de y $1$ variable), $N\times p$ diseño de la matriz es de $X$ (ambos conjuntos de pruebas y entrenamiento), y el apalancamiento es

$$h_{ii}=x_i^T(X^TX)^{-1}x_i=\frac{1}{Ns_x^2} \begin{pmatrix}1 & x_i \end{pmatrix} \begin{pmatrix}\overline{x^2} & -\overline{x}\\ -\overline{x} & 1\end{pmatrix} \begin{pmatrix}1 \\ x_i\end{pmatrix} =\frac{1+\tilde{x}_i^2}{N}$$

Donde $\overline{x}=N^{-1}\sum_ix_i$, $\overline{x^2}=N^{-1}\sum_ix_i^2$ y $s_x^2=\overline{x^2}-\overline{x}^2$. Por último, $\tilde{x}_i=\frac{x_i-\overline{x}}{s_x}$ es el normalizado variable predictora, y las medidas de cuántas desviaciones estándar de $x_i$ es de la media. Así, sabemos desde el principio que el conjunto de pruebas de error será mucho más grande que el conjunto de entrenamiento de error para las observaciones "en el borde" del conjunto de entrenamiento. Pero esta es, básicamente, que el representante de la cuestión - observaciones "en el borde" son los menos representativos de observaciones "en el medio". Además, este es un pedido de $\frac{1}{N}$. Así que si usted tiene $100$ observaciones, incluso si $\tilde{x}_i=5$ (un valor atípico en x-espacio por la mayoría de las definiciones), esto significa $h_{ii}=\frac{26}{100}$, y el error de la prueba es subestimada por un factor de sólo $1-\frac{26}{100}=\frac{74}{100}$. Si usted tiene un gran conjunto de datos, por ejemplo, de $10000$, que es aún más pequeño,$1-\frac{26}{10000}$, que es menos de $1\text{%}$. De hecho, por $10000$ observaciones, que requeriría una observación de $\tilde{x}=50$ en el fin de hacer un $25\text{%}$ bajo-estimación de la prueba de conjunto de error, utilizando el conjunto de entrenamiento de error.

Así que para grandes conjuntos de datos, utilizando un conjunto de pruebas no es sólo ineficiente, también es necesario, siempre y cuando $N>>p$. Esto se aplica, por OLS y también aproximadamente se aplica para GLMs (los detalles son diferentes para GLM, pero la conclusión general es el mismo). En más de us $2$ dimensiones, los "valores atípicos" son definidos por las observaciones con grandes "componente principal" partituras. Esto puede ser demostrado por escrito de $h_{ii}=x_i^TEE^T(X^TX)^{-1}EE^Tx_i$ Donde $E$ es el (ortogonal) autovector de la matriz por $X^TX$, con autovalor de la matriz $\Lambda$. Nos dan $h_{ii}=z_i^T\Lambda^{-1}z_i=\sum_{j=1}^p\frac{z_{ji}^2}{\Lambda_{jj}}$ donde $z_i=E^Tx_i$ es el principal componente de resultados por $x_i$.

Si su conjunto de pruebas ha $k$ observaciones, se obtiene una matriz de la versión de ${\bf{e}}_{\{k\}}^\mathrm{prueba}=(I_k-H_{\{k\}})^{-1}{\bf{e}}_{\{k\}}^\mathrm{tren}$, donde $H_{\{k\}}=X_{\{k\}}(X^TX)^{-1}X_{\{k\}}^T$ y $X_{\{k\}}$ es la filas del diseño de la matriz en el conjunto de prueba. Así, para la regresión por MCO, ya sabe qué es la "prueba de conjunto" errores habría sido para todas las posibles divisiones de los datos en conjuntos de prueba y entrenamiento. En este caso ($N>>p$), no hay necesidad de dividir los datos en absoluto. Usted puede reportar "mejor caso" y "peor caso" de la prueba de conjunto de errores de casi cualquier tamaño sin necesidad de tener que dividir los datos. Esto puede ahorrar un montón de PC de tiempo y recursos.

Básicamente, todo esto se reduce a la utilización de un término de penalización, para dar cuenta de la diferencia entre el entrenamiento y prueba de errores, tales como BIC o AIC. De esta forma, se obtiene el mismo resultado como lo que el uso de un conjunto de pruebas, sin embargo usted no está obligado a tirar potencialmente útil la información. Con el BIC, que se aproximan a la evidencia para el modelo, que se ve matemáticamente como:

$$p(D|M_iI)=p(y_1y_2\dots y_N|M_iI)$$

Tenga en cuenta que en este procedimiento, no podemos estimar parámetros internos de cada modelo $M_i$ debe estar completamente especificada o tienen sus parámetros internos integrados. Sin embargo, podemos hacer que este aspecto de la validación cruzada (el uso de una función de pérdida) por repetidas ocasiones con el producto de la regla y, a continuación, tomar el registro del resultado:

$$p(D|M_iI)=p(y_1|M_iI)p(y_2\dots y_N|y_1M_iI)$$ $$=p(y_1|M_iI)p(y_2|y_1M_iI)p(y_3\dots y_N|y_1y_2M_iI)$$ $$=\dots=\prod_{i=1}^{N}p(y_i|y_1\dots y_{i-1}M_iI)$$ $$\implica\log\left[p(D|M_iI)\right]=\sum_{i=1}^{N}\log\left[p(y_i|y_1\dots y_{i-1}M_iI)\right]$$

Esto sugiere una forma de validación cruzada, pero donde el conjunto de entrenamiento se actualiza constantemente, una observación en un momento de la prueba de conjunto - similar a la del Filtro de Kalman. Podemos predecir la siguiente observación en el conjunto de prueba utilizando el actual conjunto de entrenamiento, la medida de la desviación del valor observado utilizando el condicional de la log-verosimilitud y, a continuación, actualizar el conjunto de entrenamiento para incluir la nueva observación. Pero tenga en cuenta que este procedimiento totalmente resúmenes de todos los datos disponibles, mientras que al mismo tiempo asegurándose de que cada observación se ha probado como un "fuera de muestra". También es invariante, en que no importa lo que usted llama "observación 1" o "de observación de 10"; el resultado es el mismo (los cálculos puede ser más fácil para algunos permutaciones que otros). La pérdida de la función también es una "adaptación" en el que si definimos $L_i=\log\left[p(y_i|y_1\dots y_{i-1}M_iI)\right]$, entonces la nitidez de $L_i$ depende del $i$, ya que la función de pérdida es actualizado constantemente con los nuevos datos.

Yo sugeriría que la evaluación de modelos de predicción de esta manera podría funcionar bastante bien.

10voto

A.Schulz Puntos 264

Supongo que la única manera de garantizar esto es que alguien tiene los datos de prueba. En un cliente-consultor relación esto puede ser administrado de manera bastante sencilla: el cliente da el consultor el conjunto de entrenamiento sobre la que construir los modelos, y dentro de este conjunto de entrenamiento, el consultor puede dividir los datos en la forma que sea necesaria para asegurar que el sobreajuste no ocurre; posteriormente, los modelos son devueltos al cliente para el uso de sus datos de prueba.

Para un investigador individual, es lógico pensar que la mejor práctica por lo tanto, sería imitar esta instalación. Esto significaría cesión de algunos de los datos de prueba, después de todo modelo de selección ha sido realizada. Lamentablemente, como usted dice, esto no es practicado por muchas personas, e incluso le pasa a la gente que debería saber mejor!

Sin embargo, en última instancia, depende de lo que el modelo está siendo utilizado para. Si usted está sólo interesado en la predicción de que el único conjunto de datos, entonces tal vez usted puede overfit todo lo que te gustaría? Sin embargo, si usted está tratando de promover su modelo como uno que se generaliza bien, o utilizar el modelo en algunas de las aplicaciones del mundo real, por supuesto que esta de gran importancia.

Hay una cuestión que me pareció que debo mencionar, que es que incluso si se siguen todos los procedimientos correctamente, usted todavía puede acabar con los modelos que se overfitted, debido a los datos que no están verdaderamente yo.yo.d.. Por ejemplo, si hay correlaciones temporales en los datos, entonces, si usted toma todos los datos de su entrenamiento desde los tiempos de 1-3, y la prueba en el tiempo 4, entonces usted puede encontrar que el error de predicción es mayor de lo esperado. Alternativamente, podría haber experimento específico de artefactos, tales como el dispositivo de medida que se utiliza, o el grupo de sujetos en experimentos con seres humanos, que causa la generalización de los modelos a ser peor de lo esperado.

7voto

Dan Appleyard Puntos 223

Esta es una pregunta muy buena y una muy sutil problema. Por supuesto que hay la mal intencionados errores, que se derivan de alguien tratando de engañar a usted. Pero hay una cuestión más profunda de cómo evitar fugas accidentales y evitar honesto errores.

Permítanme enumerar algunas operativo de buenas prácticas. Todos ellos se derivan de los errores honestos Lo he hecho en algún momento:

  • Separar los datos en tres grupos: entrenamiento, validación y prueba.
  • Entender el problema de instalación para poder discutir lo que es razonable y lo que no. Entender el problema, muchas veces sutiles malentendido en lo que representan los datos puede dar lugar a fugas. Por ejemplo, mientras que nadie iba a entrenar y probar en el mismo fotograma de un vídeo, es más sutil cuando dos cuadros del mismo video caída en los diferentes pliegues, dos cuadros del mismo video, probablemente, comparten los mismos individuos de la misma iluminación y así sucesivamente.
  • Sea extremadamente cuidadoso con anterioridad por escrito de la cruz procedimientos de validación. Más aún con aquellos que no fueron escritas por usted (LIBSVM es un gran delincuente aquí).
  • Repetir cada experimento al menos dos veces antes de informar de cualquier cosa, incluso si se informa a tu compañero de oficina. El control de versiones es su amigo, antes de ejecutar un experimento cometer y anotar lo que la versión del código que se está ejecutando.
  • Ser muy cuidadoso a la hora de normalizar sus datos. Muchas veces esto lleva a pensar que usted tendrá todo el conjunto de datos en el que desea poner a prueba al mismo tiempo, que de nuevo es a menudo no es realista.

7voto

cbeleites Puntos 12461

Muchos puntos importantes han sido cubiertos en las excelentes respuestas que ya están dadas.

Últimamente, he elaborado esta lista de verificación para la independencia estadística de los datos de prueba:

  • Dividir los datos en el nivel más alto de la jerarquía de datos (por ejemplo, el paciente sabio división)
  • Split también de forma independiente para conocidos o sospechosos de factores de confusión, tales como el día a día de la variación en los instrumentos etc.
  • (DoE debe tener cuidado de secuencia aleatoria de las mediciones**)
  • Todos los cálculos pasos comenzando con la primera (por lo general pre-procesamiento) paso que involucra a más de un paciente* será necesario volver a realizar para cada uno de los sustitutos del modelo en el remuestreo de validación. Para hold-out / independiente de la prueba de conjunto valdiation, los pacientes de la prueba deben ser separadas antes de este paso.
    • Esto es independientemente de si el cálculo se llama preprocesamiento o se considera parte del modelo real.
    • Típico culpables: la media de centrado, la varianza de la escala (generalmente leve influencia), la reducción de dimensionalidad como PCA o PLS (puede causar un sesgo, por ejemplo, subestimar ninguna de errores por parte de un orden de magnitud)
  • Cualquier tipo de datos-optimización basada en o de selección del modelo de las necesidades de otro (exterior) pruebas de forma independiente validar el modelo final.
  • Hay algunos tipos de generalización de rendimiento que sólo puede ser medido por particular independiente conjuntos de la prueba, por ejemplo, cómo se deteriora el rendimiento predictivo de los casos, medidos en el futuro (no estoy relacionada con el tiempo de pronóstico de serie, sólo con el instrumento a la deriva). Pero esto necesita un diseño adecuado y el estudio de validación.
  • Hay otro tipo peculiar de fugas de datos en mi campo: hacemos la resolución espacial de la espectroscopia de tejidos biológicos. La referencia al etiquetado de los espectros de prueba necesita ser ciego en contra de la información espectroscópica, aunque es tentador utilizar un análisis de clúster y, a continuación, simplemente averiguar qué clase de cada grupo que pertenece (que sería semi-supervisado de los datos de prueba que no es independiente en todos).

  • Por último, pero ciertamente no menos importante: Cuando la codificación de remuestreo de validación, de hecho, me verificar si los índices calculados en el conjunto de datos para no llevar a agarrar la prueba de filas de la formación de los pacientes, días, etc.

Tenga en cuenta que la "división no se hace con el fin de garantizar la independencia" y "dividir antes de cualquier cálculo que se produce en la que participan más de un caso" también puede ocurrir con la prueba que se pretende utilizar una prueba independiente y el último incluso si el analista de datos es ciego en cuanto a la referencia de los casos de prueba. Estos errores no pueden ocurrir si los datos de prueba es retenida hasta que el modelo final se presenta.

* Estoy usando los pacientes como la superior jerarquía en los datos para la facilidad de la descripción.
** Soy químico analítico: Instrumento de deriva es un problema conocido. De hecho, parte de la validación de métodos de análisis químico es la determinación de la frecuencia calibraciones deben ser verificados en contra de la validación de las muestras y la frecuencia de la calibración debe ser hecho de nuevo.


FWIW: En la práctica, el trato con las aplicaciones donde

  • $p$ es en el orden de magnitud de $10^2 - 10^3$,
  • $n_{filas}$ es generalmente mayor que $p$, pero
  • $n_{biol. replica}$ o $n_{los pacientes}$ es $\ll p$ (orden de magnitud: $10^0 - 10^1$, rara vez de $10^2$)
  • dependiendo de la espectroscópicas método de medición, todas las filas de una, digamos, el paciente puede ser muy similar o bastante distinto ya que los diferentes tipos de espectros han señal-a-ruido (instrumento de error) también varían de un orden de magnitud o así

Personalmente, aún no he encontrar la aplicación en la que para clasificador de desarrollo me sale bastante independiente de los casos para permitir la segregación de una adecuada independiente de la prueba de conjunto. Por lo tanto, he llegado a la conclusión de que si se realiza correctamente el remuestreo de validación es la mejor alternativa, mientras que el método está todavía en desarrollo. Adecuada de los estudios de validación se debe realizar con el tiempo, pero es un enorme desperdicio de recursos (o resultados va a llevar a ninguna información útil a causa de la varianza) haciendo que mientras que el desarrollo del método se encuentra en una etapa donde las cosas cambian.

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