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:
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:
Un conjunto de validación
realiza las pruebas iniciales en el modelo mientras se entrena.
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.
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.