Conjuntos de datos: división del conjunto de datos original

Todos los buenos proyectos de ingeniería de software dedican mucha energía probar sus apps. Del mismo modo, te recomendamos que pruebes tus para determinar la precisión de sus predicciones.

Conjuntos de entrenamiento, validación y prueba

Deberías probar un modelo con un conjunto distinto de ejemplos de los que que se usa para entrenar el modelo. Como aprenderás un poco más tarde de diferentes ejemplos es una prueba más sólida de la aptitud del modelo que poner a prueba con el mismo conjunto de ejemplos. ¿De dónde se obtienen esos ejemplos diferentes? Tradicionalmente, en el aprendizaje automático, obtienes esos ejemplos diferentes dividiendo el conjunto de datos original. Quizás supone, por lo tanto, que debes dividir el conjunto de datos original en dos subconjuntos:

Figura 8: Una barra horizontal dividida en dos partes: aproximadamente el 80%
            es el conjunto de entrenamiento y alrededor del 20% es el conjunto de prueba.
Figura 8: No es una división óptima.

 

Ejercicio: Evalúa tu intuición

Supongamos que entrenas con el conjunto de entrenamiento y que evalúas con el conjunto de prueba. en varias rondas. En cada ronda, usarás los resultados del conjunto de prueba. para guiar cómo actualizar los hiperparámetros y el conjunto de atributos. ¿Puedes no ves algo malo con este enfoque? Elige solo una respuesta.
Realizar muchas rondas de este procedimiento puede provocar que el modelo para que se adapte implícitamente a las peculiaridades del conjunto de prueba.
Sí. Cuanto más seguido uses el mismo conjunto de prueba, más probable será que el modelo se ajuste al conjunto de prueba. Como un profesor que "enseña a hacer un examen", el modelo inadvertidamente se ajusta al conjunto de prueba, lo que puede dificultar que el modelo para adaptarlos a los datos del mundo real.
Este enfoque está bien. Después de todo, estás entrenando el de entrenamiento y la evaluación con un conjunto de prueba independiente.
En realidad, hay un pequeño problema aquí. Piensa en lo que podría fallan gradualmente.
Este enfoque es ineficiente en términos de procesamiento. No cambiar hiperparámetros o conjuntos de atributos después de cada ronda de pruebas.
Las pruebas frecuentes son costosas, pero fundamentales. Sin embargo, es frecuente la prueba es mucho menos costosa que el entrenamiento adicional. Optimizando los hiperparámetros y el conjunto de atributos pueden mejorar drásticamente la calidad del modelo, por lo que siempre debes presupuestar el tiempo y los recursos de procesamiento de trabajar en ellas.

Dividir el conjunto de datos en dos conjuntos es una buena idea, pero un mejor enfoque es dividir el conjunto de datos en tres subconjuntos. Además del conjunto de entrenamiento y el conjunto de prueba, el tercer subconjunto es el siguiente:

Figura 9: Una barra horizontal dividida en tres partes: el 70% de ellas
            es el conjunto de entrenamiento, 15% el conjunto de validación y 15%
            el conjunto de prueba
Figura 9: Una división mucho mejor.

Usa el conjunto de validación para evaluar los resultados del conjunto de entrenamiento. Después de usar el conjunto de validación varias veces, esto sugiere que tu modelo está hacer buenas predicciones, usa el conjunto de prueba para verificar tu modelo.

En la siguiente figura, se sugiere este flujo de trabajo. En la figura, “Ajustar modelo” significa ajustar algo en el modelo (desde cambiar la tasa de aprendizaje hasta agregar o quitar atributos hasta el diseño de un modelo completamente nuevo desde cero. Al final de este flujo de trabajo, eliges el modelo que mejor se desempeñe con el conjunto de prueba.

Figura 10: Un diagrama de flujo de trabajo que consta de las siguientes etapas:
            1) Entrenar el modelo con el conjunto de entrenamiento
            2. Evaluar el modelo con el conjunto de validación
            3. Ajusta el modelo en función de los resultados en el conjunto de validación.
            4. Iterar sobre 1, 2 y 3 y, en última instancia, elegir el modelo que
               mejor en el conjunto de validación.
            5. Confirma los resultados en el conjunto de prueba.
Figura 10: Un buen flujo de trabajo para desarrollo y pruebas

El flujo de trabajo que se muestra en la Figura 10 es óptimo, pero incluso con ese flujo de trabajo, Los conjuntos de prueba y los de validación siguen “desgastándose” con el uso repetido. Es decir, cuanto más uses los mismos datos para tomar decisiones sobre configuración de hiperparámetros u otras mejoras del modelo, menor será la confianza para garantizar que el modelo haga buenas predicciones con datos nuevos. Por este motivo, es una buena idea recopilar más datos para "actualizarlos" la prueba y el de validación. Empezar de nuevo es un gran restablecimiento.

Ejercicio: Evalúa tu intuición

Reorganizaste todos los ejemplos del conjunto de datos y lo dividiste los ejemplos mezclados en entrenamiento, validación y prueba conjuntos. Sin embargo, el valor de pérdida en el conjunto de prueba es asombrosamente bajo que sospeches de un error. ¿Qué podría haber salido mal?
Muchos de los ejemplos del conjunto de prueba son duplicados de ejemplos en el conjunto de entrenamiento.
Sí. Esto puede ser un problema en un conjunto de datos con mucha ejemplos. Te recomendamos que borres los ejemplos duplicados de el conjunto de prueba antes de las pruebas.
El entrenamiento y las pruebas no son deterministas. A veces, por casualidad, la pérdida de prueba es increíblemente baja. Vuelve a ejecutar la prueba para confirmar resultado.
Aunque la pérdida varía un poco en cada ejecución, no debería variar para mucho de lo que crees que ganaste la lotería del aprendizaje automático.
Por casualidad, el conjunto de prueba contenía ejemplos que el conjunto tuvo un buen rendimiento.
Los ejemplos se mezclaron bien, por lo que esto es extremadamente improbable.

Problemas adicionales con los conjuntos de prueba

Como se ilustra en la pregunta anterior, los ejemplos duplicados pueden afectar la evaluación del modelo. Después de dividir un conjunto de datos en conjuntos de entrenamiento, validación y prueba, borrar todos los ejemplos del conjunto de validación o de prueba que sean duplicados de ejemplos en el conjunto de entrenamiento. La única prueba justa de un modelo es en contra los ejemplos nuevos, no los duplicados.

Por ejemplo, considera un modelo que prediga si un correo electrónico es spam usando la línea de asunto, el cuerpo del correo electrónico y la dirección de correo electrónico del remitente como atributos. Supongamos que divides los datos en conjuntos de entrenamiento y prueba, con una división del 80-20. Después del entrenamiento, el modelo alcanza un 99% de precisión en el conjunto de entrenamiento y el conjunto de prueba. Probablemente esperas una precisión menor en el conjunto de prueba, mira los datos de nuevo y descubre que muchos de los ejemplos de la prueba son duplicados de ejemplos en el conjunto de entrenamiento. El problema es que has olvidado de eliminar las entradas duplicadas para el mismo correo electrónico spam de tu entrada en la base de datos antes de dividirlos. De forma involuntaria, entrenaste algunas de tus datos de prueba.

En resumen, un buen conjunto de prueba o de validación cumple con todos los siguientes criterios:

  • Es lo suficientemente grande como para generar resultados de prueba estadísticamente significativos.
  • Representativo del conjunto de datos en su conjunto. En otras palabras, no elijas de prueba con características diferentes a las del conjunto de entrenamiento.
  • Representativos de los datos del mundo real que encontrará el modelo como parte de su objetivo comercial.
  • No hay ejemplos duplicados en el conjunto de entrenamiento.

Ejercicios: Verifica tus conocimientos

Dado un único conjunto de datos con un número fijo de ejemplos, ¿Cuál de las siguientes afirmaciones es verdadera?
Cada ejemplo usado para probar el modelo es un ejemplo menos utilizado en el entrenamiento del modelo.
Dividir los ejemplos en conjuntos de entrenamiento, prueba o validación es un juego de suma cero. Esta es la compensación central.
La cantidad de ejemplos en el conjunto de prueba debe ser mayor que la cantidad de ejemplos en el conjunto de validación.
En teoría, el conjunto de validación y la prueba de prueba deben contener el mismo de ejemplos o casi.
La cantidad de ejemplos en el conjunto de prueba debe ser mayor que la cantidad de ejemplos en el conjunto de validación o entrenamiento.
La cantidad de ejemplos en el conjunto de entrenamiento suele ser mayor que la cantidad de ejemplos en el conjunto de validación o de prueba Sin embargo, No hay requisitos de porcentaje para los diferentes conjuntos.
Supongamos que tu conjunto de prueba contiene suficientes ejemplos para realizar una una prueba con importancia estadística. Además, las pruebas contra el conjunto de prueba produce una pérdida baja. Sin embargo, el modelo realizó mal en el mundo real. ¿Qué deberías hacer?
Determina en qué se diferencia el conjunto de datos original de los datos de la vida real.
Sí. Incluso los mejores conjuntos de datos son solo un resumen de datos de la vida real. la identidad subyacente verdad fundamental tiende a cambiar con el tiempo. Aunque el conjunto de prueba coincidió con conjunto de entrenamiento es lo suficientemente bueno como para sugerir una buena calidad del modelo, que probablemente no coincida de forma adecuada con los datos del mundo real. Es posible que debas entrenar y probar de nuevo con un conjunto de datos nuevo.
Vuelve a probar en el mismo conjunto de prueba. Es posible que los resultados de la prueba tengan haya sido una anomalía.
Si bien volver a probar puede producir resultados ligeramente diferentes, probablemente esta táctica no sea muy útil.
¿Cuántos ejemplos debería contener el conjunto de prueba?
Suficientes ejemplos para obtener una prueba con importancia estadística.
Sí. ¿Cuántos ejemplos es eso? Deberás experimentar.
Al menos el 15% del conjunto de datos original.
El 15% puede o no ser suficiente ejemplos.