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


60

Supongamos que tenemos a alguien construyendo un modelo predictivo, pero que alguien no está necesariamente versado en los principios estadísticos o de aprendizaje automático adecuados. Tal vez estamos ayudando a esa persona mientras está aprendiendo, o tal vez esa persona está utilizando algún tipo de paquete de software que requiere un conocimiento mínimo para su uso.

Ahora bien, esta persona podría reconocer que la prueba real proviene de la precisión (o cualquier otra métrica) en los datos fuera de la muestra . Sin embargo, mi preocupación es que hay muchas sutilezas de las que preocuparse. En el caso simple, construyen su modelo y lo evalúan en datos de entrenamiento y lo evalúan en datos de prueba destacados. Desafortunadamente, a veces puede ser demasiado fácil volver atrás y modificar algunos parámetros de modelado y verificar los resultados en los mismos datos de "prueba". En este punto, los datos ya no son verdaderos datos fuera de muestra, y el sobreajuste puede convertirse en un problema.

Una forma potencial de resolver este problema sería sugerir la creación de muchos conjuntos de datos fuera de la muestra, de modo que cada conjunto de datos de prueba pueda descartarse después del uso y no reutilizarse en absoluto. Sin embargo, esto requiere una gran cantidad de gestión de datos, especialmente porque la división debe realizarse antes del análisis (por lo que necesitaría saber cuántas divisiones de antemano).

Quizás un enfoque más convencional es la validación cruzada k-fold. Sin embargo, en cierto sentido eso pierde la distinción entre un conjunto de datos de "entrenamiento" y "prueba" que creo que puede ser útil, especialmente para aquellos que todavía están aprendiendo. Además, no estoy convencido de que esto tenga sentido para todos los tipos de modelos predictivos.

¿Hay alguna forma que haya pasado por alto para ayudar a superar el problema de sobreajustar y probar las fugas sin dejar de ser algo claro para un usuario inexperto?


Michael, cerré un hilo duplicado del sitio de ML y fusioné las respuestas aquí. Por favor, siéntase libre de editar esta pregunta para reflejar los cambios que desea realizar. No quiero hacerlo por miedo a cambiar su significado sin darse cuenta.
whuber

Esta pregunta es antigua y tiene una respuesta aceptada, pero no puedo sacar de mi cabeza que la premisa inicial parece estar en conflicto. Si se trata de ejercicios de aprendizaje, entonces la mejor manera de abordarlo es dejarlos fracasar y crear un modelo de sobreajuste que posteriormente no se pronostique bien. (Tal vez mantenga un conjunto de datos de reserva secreta que les muestre el error de sus formas). Pero también parece que hay personas no calificadas que hacen modelos que alguien tomará en serio y actuará y está tratando de minimizar el daño al alcance de la mano. Hay muchas sutilezas, como tú dices.
Wayne

Respuestas:


50

Tiene razón, este es un problema importante en el aprendizaje automático / modelado estadístico. Esencialmente, la única forma de resolver realmente este problema es retener un conjunto de pruebas independiente y mantenerlo en espera hasta que se complete el estudio y usarlo para la validación final.

Sin embargo, inevitablemente las personas verán los resultados en el conjunto de pruebas y luego cambiarán su modelo en consecuencia; sin embargo, esto no necesariamente resultará en una mejora en el rendimiento de generalización, ya que la diferencia en el rendimiento de los diferentes modelos puede deberse en gran medida a la muestra particular de datos de prueba que tenemos. En este caso, al tomar una decisión, estamos ajustando de manera efectiva el error de prueba.

La forma de limitar esto es hacer que la varianza del error de prueba sea lo más pequeña posible (es decir, la variabilidad en el error de prueba que veríamos si utilizáramos diferentes muestras de datos como el conjunto de prueba, extraído de la misma distribución subyacente). Esto se logra más fácilmente utilizando un conjunto de prueba grande si es posible, o por ejemplo, bootstrapping o validación cruzada si no hay muchos datos disponibles.

He descubierto que este tipo de ajuste excesivo en la selección del modelo es mucho más problemático de lo que generalmente se aprecia, especialmente con respecto a la estimación del rendimiento, ver

GC Cawley y NLC Talbot, Ajuste excesivo en la selección del modelo y posterior sesgo de selección en la evaluación del rendimiento, Journal of Machine Learning Research, 2010. Research, vol. 11, págs. 2079-2107, julio de 2010 (www)

Este tipo de problema afecta especialmente el uso de conjuntos de datos de referencia, que se han utilizado en muchos estudios, y cada nuevo estudio está implícitamente afectado por los resultados de estudios anteriores, por lo que es probable que el rendimiento observado sea una estimación demasiado optimista de la verdadera rendimiento del método. La forma en que trato de evitar esto es mirar muchos conjuntos de datos (para que el método no esté ajustado a un conjunto de datos específico) y también usar múltiples divisiones aleatorias de prueba / entrenamiento para la estimación del rendimiento (para reducir la varianza de la estimación). Sin embargo, los resultados aún necesitan la advertencia de que estos puntos de referencia se han ajustado demasiado.

Otro ejemplo en el que esto ocurre es en las competencias de aprendizaje automático con una tabla de clasificación basada en un conjunto de validación. Inevitablemente, algunos competidores siguen jugando con su modelo para ascender en la clasificación, pero luego terminan en la parte inferior de la clasificación final. La razón de esto es que sus múltiples opciones han sobreajustado el conjunto de validación (aprendiendo efectivamente las variaciones aleatorias en el pequeño conjunto de validación).

Si no puede mantener un conjunto de prueba estadísticamente puro, entonces me temo que las dos mejores opciones son (i) recopilar algunos datos nuevos para hacer un nuevo conjunto de prueba estadísticamente puro o (ii) hacer la advertencia de que se basó el nuevo modelo en una elección realizada después de observar el error del conjunto de prueba, por lo que es probable que la estimación del rendimiento tenga un sesgo optimista.


1
+1 Estoy impresionado por lo bien que esta respuesta está informada por la experiencia y qué tan efectivamente aborda la pregunta.
whuber

3
Saludos, este ha sido mi principal tema de investigación durante un par de años, y he descubierto que muchos procedimientos de selección de modelos ampliamente utilizados en el aprendizaje automático son muy frágiles, y cuanto más exhaustivamente se evalúan, menos funcionan. No me sorprendería que muchos métodos utilizados en el aprendizaje automático no funcionen mejor que los métodos más simples y antiguos, simplemente debido a los procedimientos de selección de modelos sesgados utilizados durante la evaluación del rendimiento. La pregunta es realmente buena, ¡es importante no formar parte del procedimiento de selección de modelo por sí mismo!
Dikran Marsupial

Muy interesante. (También he votado a favor de la pregunta en sí porque su respuesta me hizo apreciarla mejor.)
whuber

2
(+1) Buena respuesta. El uso de varios clasificadores en el mismo conjunto de datos que rinde a una medida demasiado optimista de la precisión de la prueba se ha discutido en la selección del clasificador óptimo y el sesgo negativo en la estimación de la tasa de error: un estudio empírico sobre predicción de alta dimensión , BMC MRM 2009, 9:85 (con algunas diapositivas en PDF aquí ), con otra discusión en el sesgo de reglas múltiples en la comparación de reglas de clasificación (Yousefi et al., Bioinformatics 2011, 27 (12): 1675).
chl

Gracias por los enlaces a los documentos, se ven interesantes.
Dikran Marsupial

15

Una forma de garantizar esto es asegurarse de haber codificado todas las cosas que hace para adaptarse al modelo, incluso "retoques". De esta manera, cuando ejecuta el proceso repetidamente, por ejemplo, mediante validación cruzada, mantiene las cosas coherentes entre las ejecuciones. Esto asegura que todas las posibles fuentes de variación sean capturadas por el proceso de validación cruzada.

La otra cosa de vital importancia es asegurarse de tener una muestra representativa en ambos conjuntos de datos. Si su conjunto de datos no es representativo del tipo de datos que espera utilizar para predecir, entonces no hay mucho que pueda hacer. Todos los modelos se basan en la suposición de que la "inducción" funciona: las cosas que no hemos observado se comportan como las que hemos observado.

Como regla general, manténgase alejado de los procedimientos de ajuste de modelos complejos a menos que (i) sepa lo que está haciendo y (ii) haya probado los métodos más simples y descubra que no funcionan y cómo el método complejo soluciona problemas con el método simple "Simple" y "complejo" significan en el sentido de "simple" o "complejo" para la persona que hace la adaptación. La razón por la que esto es tan importante es que le permite aplicar lo que me gusta llamar una "prueba de detección" a los resultados. ¿El resultado se ve bien? No puede "oler" los resultados de un procedimiento que no comprende.

NOTA: la siguiente parte, bastante larga, de mi respuesta se basa en mi experiencia, que se encuentra en el área , con posiblemente grande. Estoy casi seguro de que lo que sigue a continuación no se aplicaría a los casos oN>>p p Np N<p

Cuando tiene una muestra grande, la diferencia entre usar y no usar una observación dada es muy pequeña, siempre que su modelado no sea demasiado "local". Esto se debe a que la influencia de un punto de datos dado es generalmente del orden de . Por lo tanto, en conjuntos de datos grandes, los residuos que se obtienen al "mantener" el conjunto de datos de prueba son básicamente los mismos que los residuos que se obtienen al usarlo en el conjunto de datos de entrenamiento. Puedes mostrar esto usando mínimos cuadrados ordinarios. El residuo que obtiene al excluir la ésima observación (es decir, cuál sería el error del conjunto de prueba si colocamos la observación en el conjunto de prueba) es , donde es el residuo de entrenamiento, y1Nieitest=(1hii)1eitraineitrainhiies el apalancamiento del punto de datos . Ahora tenemos que , donde es el número de variables en la regresión. Ahora si , entonces es extremadamente difícil para cualquier ser lo suficientemente grande como para hacer una diferencia apreciable entre el conjunto de prueba y los errores del conjunto de entrenamiento. Podemos tomar un ejemplo simplificado, supongamos que (intersección y variable), matriz de diseño es (conjuntos de entrenamiento y prueba), y el apalancamiento esiihii=ppN>>phiip=21N×pX

hii=xiT(XTX)1xi=1Nsx2(1xi)(x2¯x¯x¯1)(1xi)=1+x~i2N

Donde , y . Finalmente, es la variable predictiva estandarizada, y mide cuántas desviaciones estándar es de la media. Por lo tanto, sabemos desde el principio que el error del conjunto de prueba será mucho mayor que el error del conjunto de entrenamiento para las observaciones "en el borde" del conjunto de entrenamiento. Pero esto es básicamente ese problema representativo nuevamente: las observaciones "en el borde" son menos representativas que las observaciones "en el medio". Además, esto es para ordenar . Entonces, si tienes observaciones, incluso six¯=N1ixix2¯=N1ixi2sx2=x2¯x¯2x~i=xix¯sxxi1N100x~i=5 (un valor atípico en el espacio x según la mayoría de las definiciones), esto significa , y el error de prueba se subestima por un factor de solo . Si tiene un conjunto de datos grande, digamos , es aún más pequeño, , que es menor que . De hecho, para observaciones, necesitaría una observación de para hacer una del error del conjunto de prueba, utilizando el error del conjunto de entrenamiento.hii=26100126100=7410010000126100001%10000x~=5025%

Entonces, para grandes conjuntos de datos, el uso de un conjunto de pruebas no solo es ineficiente, sino que también es innecesario, siempre que . Esto aplica para OLS y también aplica aproximadamente para GLM (los detalles son diferentes para GLM, pero la conclusión general es la misma). En más de dimensiones, los "valores atípicos" están definidos por las observaciones con puntajes grandes de "componente principal". Esto se puede mostrar escribiendo Donde es la matriz de vectores propios (ortogonales) para , con matriz de valores propios . Obtenemos dondeN>>p2hii=xiTEET(XTX)1EETxiEXTXΛhii=ziTΛ1zi=j=1pzji2Λjjzi=ETxies el puntaje del componente principal para .xi

Si su conjunto de prueba tiene observaciones, obtendrá una versión matricial , donde y son las filas de la matriz de diseño en el conjunto de prueba. Entonces, para la regresión OLS, ya sabe cuáles habrían sido los errores del "conjunto de prueba" para todas las posibles divisiones de los datos en conjuntos de entrenamiento y prueba. En este caso ( ), no hay necesidad de dividir los datos en absoluto. Puede informar los errores del conjunto de pruebas "mejor caso" y "peor caso" de casi cualquier tamaño sin tener que dividir los datos. Esto puede ahorrarle mucho tiempo y recursos a la PC.ke{k}test=(IkH{k})1e{k}trainH{k}=X{k}(XTX)1X{k}TX{k}N>>p

Básicamente, todo esto se reduce al uso de un término de penalización, para tener en cuenta la diferencia entre errores de entrenamiento y prueba, como BIC o AIC. Esto logra efectivamente el mismo resultado que lo que hace el uso de un conjunto de prueba, sin embargo, no está obligado a tirar información potencialmente útil. Con el BIC, está aproximando la evidencia para el modelo, que se ve matemáticamente como:

p(D|MiI)=p(y1y2yN|MiI)

Tenga en cuenta que en este procedimiento, no podemos estimar ningún parámetro interno: cada modelo debe especificarse completamente o tener sus parámetros internos integrados. Sin embargo, podemos hacer que esto parezca validación cruzada (usando una función de pérdida específica) usando repetidamente la regla del producto y luego tomando el registro del resultado:Mi

p(D|MiI)=p(y1|MiI)p(y2yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3yN|y1y2MiI)
==i=1Np(yi|y1yi1MiI)
log[p(D|MiI)]=i=1Nlog[p(yi|y1yi1MiI)]

Esto sugiere una forma de validación cruzada, pero cuando el conjunto de entrenamiento se actualiza constantemente, una observación a la vez desde el conjunto de prueba, similar al filtro de Kalman. Predecimos la siguiente observación del conjunto de prueba usando el conjunto de entrenamiento actual, medimos la desviación del valor observado usando la probabilidad de registro condicional y luego actualizamos el conjunto de entrenamiento para incluir la nueva observación. Pero tenga en cuenta que este procedimiento digiere completamente todos los datos disponibles, al tiempo que se asegura de que cada observación se pruebe como un caso "fuera de muestra". También es invariante, ya que no importa lo que llames "observación 1" u "observación 10"; el resultado es el mismo (los cálculos pueden ser más fáciles para algunas permutaciones que para otras). La función de pérdida también es "adaptativa" en que si definimos L iLi=log[p(yi|y1yi1MiI)] , entonces la nitidez de depende de , porque la función de pérdida se actualiza constantemente con nuevos datos.Lii

Sugeriría que evaluar modelos predictivos de esta manera funcionaría bastante bien.


44
+1: buenos consejos y discusión interesante sobre apalancamiento (para grandes conjuntos de datos). Tiendo a usar conjuntos de datos que son pequeños, donde es probable que se ajuste demasiado, y en tales situaciones a menudo es muy fácil sobrepasar la probabilidad marginal ("evidencia") y terminar con un modelo peor de lo que se comienza. Sospecho que AIC y BIC son igualmente "frágiles". Esencialmente, la optimización es la raíz de todo mal en las estadísticas, ya que cualquier elección que realice o parámetro que ajuste en función de una muestra finita introduce la posibilidad de un ajuste excesivo. La marginación es mucho más segura, pero generalmente computacionalmente costosa.
Dikran Marsupial

2
+1 - especialmente en el tercer párrafo (use primero métodos simples). Recuerda la buena regla de Pareto. Si los estudiantes de máquinas serían tener eso en cuenta antes de publicar su insuficiente intento de demostrar la superioridad de su nuevo algoritmo de raza ...
Steffen

8

Supongo que la única forma de garantizar esto es que otra persona tenga los datos de prueba . En una relación cliente-consultor, esto se puede gestionar con bastante facilidad: el cliente le brinda al consultor el conjunto de capacitación sobre el cual construir los modelos, y dentro de este conjunto de capacitación, el consultor puede dividir los datos de cualquier manera necesaria para garantizar que el sobreajuste no ocurrir; posteriormente, los modelos se devuelven al cliente para usar en sus datos de prueba.

Para un investigador individual, es lógico pensar que la mejor práctica sería imitar esta configuración. Esto significaría extraer algunos de los datos para probar, después de que se haya realizado toda la selección del modelo. Desafortunadamente, como usted dice, esto no es practicado por muchas personas, ¡e incluso le sucede a las personas que deberían saberlo mejor!

Sin embargo, en última instancia, depende de para qué se esté utilizando el modelo. Si solo está interesado en la predicción de ese conjunto de datos único, entonces ¿tal vez pueda sobreajustar todo lo que quiera? Sin embargo, si está tratando de promover su modelo como uno que se generalice bien, o use el modelo en alguna aplicación del mundo real, entonces, por supuesto, esto es de gran importancia.

Hay un problema secundario que pensé que debería mencionar, y es que incluso si sigues todos los procedimientos correctamente, aún puedes terminar con modelos que están sobreajustados, debido a que los datos no están realmente identificados . Por ejemplo, si hay correlaciones temporales en los datos, entonces si toma todos sus datos de entrenamiento de los tiempos 1-3 y realiza la prueba en el tiempo 4, entonces puede encontrar que el error de predicción es mayor de lo esperado. Alternativamente, podría haber artefactos específicos del experimento, como el dispositivo de medición que se utiliza o el grupo de sujetos en experimentos humanos, que causan que la generalización de los modelos sea peor de lo esperado.


Sí, soy consciente de que es sorprendentemente difícil crear un conjunto de datos verdaderamente fuera de la muestra, ya que es fácil terminar accidentalmente con correlaciones temporales y demás.
Michael McGowan

1
Algunas compañías hacen esto como una política, implementada, por ejemplo, al viewestablecer los permisos de la base de datos en consecuencia, donde algunos equipos tienen acceso a los datos de prueba y otros son ciegos a los datos de prueba.
ijoseph

6

Esta es una muy buena pregunta y un problema muy sutil. Por supuesto, están los errores mal intencionados, que derivan de alguien que intenta engañarte. Pero hay una pregunta más profunda sobre cómo evitar fugas accidentales y evitar errores honestos.

Permítanme enumerar algunas buenas prácticas operativas. Todos provienen de errores honestos que he cometido en algún momento:

  • Separe sus datos en tres grupos: entrenar, validar y probar.
  • Comprenda la configuración del problema para poder discutir qué es razonable y qué no. Comprenda el problema, muchas veces un malentendido sutil en lo que representan los datos puede conducir a fugas. Por ejemplo, aunque nadie entrenaría y probaría en el mismo cuadro de un video, es más sutil cuando dos cuadros del mismo video caen en pliegues diferentes, dos cuadros del mismo video probablemente compartan las mismas personas con la misma iluminación, etc. .
  • Tenga mucho cuidado con los procedimientos de validación cruzada previamente escritos. Más aún con los no escritos por usted (LIBSVM es un gran delincuente aquí).
  • Repita cada experimento al menos dos veces antes de informar cualquier cosa, incluso si informa a su compañero de oficina. El control de versiones es tu amigo, antes de ejecutar un experimento, confirma y escribe qué versión del código estás ejecutando.
  • Tenga mucho cuidado al normalizar sus datos. Muchas veces, esto lleva a pensar que tendrá el conjunto de datos completo en el que desea realizar la prueba al mismo tiempo, lo que de nuevo a menudo no es realista.

Hubo una pregunta sobre los conjuntos de entrenamiento / evaluación y ofrecí una visión general teórica sobre eso en machinelearning.stackexchange.com/a/196/114 , que explicaba la retención estratificada, la validación cruzada de k-fold y los experimentos repetidos. Para mi mente sin educación, esos métodos abordan completamente la pregunta anterior, y el resto es solo "problema del maestro". Además, todas las prácticas en su lista parecen corregir los "errores simplemente descuidados e inaceptables" y no veo ninguna sutileza allí. Estoy muy interesado en entender lo que me estoy perdiendo, ¿puedes comentar?
andreister

Estoy de acuerdo en que todos provienen de la negligencia. También mencioné que no son teóricos en absoluto (habiendo dicho que son operativos). He editado mi publicación un poco.
carlosdc

5

Muchos puntos importantes se han cubierto en las excelentes respuestas que ya se dan.

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

  • Divida los datos en el nivel más alto de la jerarquía de datos (por ejemplo, división entre pacientes)
  • Dividir también independientemente para factores de confusión conocidos o sospechosos, como la variación diaria de los instrumentos, etc.
  • (DoE debe ocuparse de la secuencia aleatoria de mediciones **)
  • Todos los pasos de cálculo que comienzan con el primer paso (generalmente preprocesamiento) que involucra a más de un paciente * deben rehacerse para cada modelo sustituto en la validación de remuestreo. Para la valdiación de conjunto de prueba independiente / independiente, los pacientes de prueba deben separarse antes de este paso.
    • Esto es independientemente de si el cálculo se llama preprocesamiento o se considera parte del modelo real.
    • Los culpables típicos: centrado medio, escalado de varianza (generalmente solo influencia leve), reducción de dimensionalidad como PCA o PLS (pueden causar un sesgo importante, por ejemplo, subestimar la ausencia de errores en un orden de magnitud)
  • Cualquier tipo de optimización basada en datos o selección de modelo necesita otra prueba (externa) para validar de forma independiente el modelo final.
  • Hay algunos tipos de rendimiento de generalización que solo se pueden medir mediante conjuntos de pruebas independientes particulares, por ejemplo, cómo se deteriora el rendimiento predictivo para casos medidos en el futuro (no estoy tratando con pronósticos de series de tiempo, solo con deriva del instrumento). Pero esto necesita un estudio de validación diseñado adecuadamente.
  • Hay otro tipo peculiar de fuga de datos en mi campo: hacemos espectroscopía espacialmente resuelta de tejidos biológicos. El etiquetado de referencia de los espectros de prueba debe cegarse contra la información espectroscópica, incluso si es tentador usar un análisis de conglomerados y luego simplemente descubrir a qué clase pertenece cada conglomerado (eso sería datos de prueba semi-supervisados ​​que no son independiente en absoluto).

  • Por último, pero no menos importante: cuando codifico la validación de remuestreo, en realidad verifico si los índices calculados en el conjunto de datos no conducen a tomar filas de prueba de pacientes en formación, días, etc.

Tenga en cuenta que la "división no realizada para garantizar la independencia" y la "división antes de que ocurra cualquier cálculo que involucre más de un caso" también puede ocurrir con pruebas que afirman usar un conjunto de pruebas independiente, y este último incluso si el analista de datos es cegado a la referencia de los casos de prueba. Estos errores no pueden ocurrir si los datos de la prueba se retienen hasta que se presente el modelo final.

* Estoy usando pacientes como la jerarquía más alta en datos solo por la facilidad de la descripción.
** Soy químico analítico: la deriva del instrumento es un problema conocido. De hecho, parte de la validación de los métodos de análisis químico es determinar con qué frecuencia las calibraciones deben verificarse contra las muestras de validación, y con qué frecuencia la calibración debe rehacerse.


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

  • p está en el orden de magnitud de ,102103
  • pnrows suele ser mayor que , perop
  • n p a t i e n t sp 10 0 - 10 1 10 2nbiol.replicates o es (orden de magnitud: , rara vez )npatientsp100101102
  • Dependiendo del método de medición espectroscópica, todas las filas de una, por ejemplo, el paciente puede ser muy similar o bastante diferente porque los diferentes tipos de espectros tienen una relación señal / ruido (error del instrumento) que también varía en un orden de magnitud

Personalmente, todavía tengo que cumplir con la aplicación donde para el desarrollo de clasificadores obtengo suficientes casos independientes para permitir dejar a un lado un conjunto de pruebas independiente adecuado. Por lo tanto, llegué a la conclusión de que la validación de remuestreo realizada correctamente es la mejor alternativa mientras el método aún está en desarrollo. Eventualmente, se deberán realizar estudios de validación adecuados, pero es un gran desperdicio de recursos (o los resultados no llevarán información útil debido a la variación), mientras que el desarrollo del método se encuentra en una etapa en la que las cosas todavía cambian.


2

Si no recuerdo mal, algunos de los concursos de pronósticos (como Netflix o los de Kaggle) usan este esquema:

Hay un conjunto de entrenamiento, con las "respuestas". Existe el conjunto de pruebas # 1, para el cual el investigador proporciona respuestas. El investigador descubre su puntaje. Existe el conjunto de pruebas # 2, para el cual el investigador proporciona respuestas, PERO el investigador no encuentra su puntaje. El investigador no sabe qué casos de predicción se encuentran en el n. ° 1 y n. ° 2.

En algún momento, el conjunto # 2 tiene que hacerse visible, pero al menos ha limitado la contaminación.


2

En algunos casos, como los predictores basados ​​en secuencias biológicas, no es suficiente garantizar que los casos no aparezcan en más de un conjunto. Aún debe preocuparse por la dependencia entre los conjuntos.

Por ejemplo, para los predictores basados ​​en secuencias, es necesario eliminar la redundancia asegurando que las secuencias en diferentes conjuntos (incluidos los diferentes conjuntos de validación cruzada) no compartan un alto nivel de similitud de secuencia.


2

Yo diría que la "validación cruzada k-fold" es la respuesta correcta desde el punto de vista teórico, pero su pregunta parece más sobre cuestiones de organización y enseñanza, por lo que responderé de manera diferente.


Cuando las personas "todavía están aprendiendo", a menudo se piensa como si estuvieran aprendiendo cómo aplicar "rápida y suciamente" los algoritmos y todo el conocimiento "adicional" (motivación del problema, preparación del conjunto de datos, validación, análisis de errores, errores prácticos, etc.) ) se aprenderán "más tarde" cuando estén "más preparados".

Esto es completamente incorrecto.

  1. Si queremos que un estudiante o quien sea que entienda la diferencia entre un conjunto de pruebas y un conjunto de entrenamiento, lo peor será dar los dos conjuntos a dos tipos diferentes como si pensáramos que "en esta etapa" el "conocimiento adicional" es perjudicial. Esto es como un enfoque en cascada en el desarrollo de software: unos meses de diseño puro, luego unos meses de codificación pura, luego unos meses de pruebas puras y un resultado lamentable al final.

  2. El aprendizaje no debe ir como una cascada. Todas las partes del aprendizaje (motivación del problema, algoritmo, problemas prácticos, evaluación de resultados) deben unirse, en pequeños pasos. (Como enfoque ágil en el desarrollo de software).

Tal vez todos aquí hayan pasado por ml-class.org de Andrew Ng . Yo pondría su curso como un ejemplo de un estilo de aprendizaje "ágil" robusto, el que nunca daría una pregunta de "cómo asegúrese de que los datos de prueba no se filtren en los datos de entrenamiento ".


Tenga en cuenta que es posible que haya entendido mal su pregunta, así que ¡disculpas! :)


El aprendizaje para el ser humano (es decir, aprender a modelar en general) no debe ser una cascada, sino el aprendizaje para el modelo . De lo contrario, fragmentos de los datos de prueba se colaran en los datos de entrenamiento, y su modelo es más propenso a sobreajustar.
Michael McGowan

Y lo estaba pensando más desde el final del software. Un usuario crea un modelo que obtiene un 90% de precisión en el entrenamiento y un 75% de precisión en las pruebas. Luego ajustan algunas perillas y configuraciones en el software y obtienen un 80% de precisión en las "pruebas". Vuelven de nuevo y hacen más ajustes y obtienen un 85% de precisión en las "pruebas". Pero este llamado conjunto de datos de "prueba" ya no está fuera de la muestra, y el modelo ha sido sobreajustado.
Michael McGowan

Exactamente. Este es un problema de aprendizaje humano (problema del maestro, por así decirlo). Debe revelarse lo antes posible, en lugar de ocultarse por medios artificiales para "garantizar que X no se filtre en Y",
registre

Las personas que deberían saber mejor aún cometerán este error. Puede mitigar este efecto hasta cierto punto en un paquete de software con un flujo de trabajo que fomenta implícita o explícitamente las buenas prácticas y desalienta las malas prácticas. Que el humano sepa mejor no es motivo para ignorar el problema.
Michael McGowan

@MichaelMcGowan: también ignora los beneficios de las fugas, ya que su algoritmo se ha mejorado potencialmente utilizando el conjunto de prueba (es decir, tren + prueba es más datos que solo tren). Realmente es solo una compensación diferente, precisión mejorada versus medición mejorada de precisión. Para el mío lo primero es más importante.
probabilidad es
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.