¿Existe una regla general sobre cómo dividir mejor los datos en conjuntos de capacitación y validación? ¿Es aconsejable una división de 50/50? ¿O hay claras ventajas de tener más datos de entrenamiento en relación con los datos de validación (o viceversa)? ¿O esta elección depende de la aplicación?
He estado utilizando principalmente un 80% / 20% de datos de entrenamiento y validación, respectivamente, pero elegí esta división sin ninguna razón de principios. ¿Alguien con más experiencia en aprendizaje automático puede aconsejarme?
machine-learning
robguinness
fuente
fuente
Respuestas:
Hay dos preocupaciones en competencia: con menos datos de entrenamiento, las estimaciones de sus parámetros tienen una mayor variación. Con menos datos de prueba, su estadística de rendimiento tendrá una mayor variación. En términos generales, debe preocuparse por dividir los datos de modo que ninguna de las variaciones sea demasiado alta, lo que tiene más que ver con el número absoluto de instancias en cada categoría en lugar del porcentaje.
Si tiene un total de 100 instancias, probablemente esté atrapado con la validación cruzada ya que ninguna división individual le dará una variación satisfactoria en sus estimaciones. Si tiene 100,000 instancias, realmente no importa si elige una división 80:20 o una división 90:10 (de hecho, puede elegir usar menos datos de entrenamiento si su método es particularmente computacionalmente intensivo).
Suponiendo que tiene suficientes datos para realizar los datos de prueba adecuados (en lugar de la validación cruzada), la siguiente es una forma instructiva de controlar las variaciones:
fuente
Se sorprendería al descubrir que 80/20 es una proporción bastante común, a menudo conocida como el principio de Pareto . Por lo general, es una apuesta segura si usa esa proporción.
Sin embargo, dependiendo de la metodología de capacitación / validación que emplee, la relación puede cambiar. Por ejemplo: si usa una validación cruzada 10 veces, entonces terminaría con un conjunto de validación del 10% en cada pliegue.
Se ha investigado cuál es la proporción adecuada entre el conjunto de entrenamiento y el conjunto de validación :
En su conclusión, especifican una fórmula:
Lo que quieren decir con complejidad es:
Tomando la primera regla de oro (el conjunto de medievalización debe ser inversamente proporcional a la raíz cuadrada del número de parámetros ajustables libres), puede concluir que si tiene 32 parámetros ajustables, la raíz cuadrada de 32 es ~ 5.65, la fracción debe ser 1 / 5.65 o 0.177 (v / t). Aproximadamente el 17.7% debe reservarse para validación y el 82.3% para capacitación.
fuente
El año pasado, tomé el curso de aprendizaje automático en línea del profesor: Andrew Ng. Su recomendación fue:
Entrenamiento : 60%
Validación cruzada : 20%
Prueba : 20%
fuente
in the modern big data era, where, for example, you might have a million examples in total, then the trend is that your dev (cross validation) and test sets have been becoming a much smaller percentage of the total.
Sugiere que podría ser 99.5: 0.25: 0.25.Bueno, deberías pensar en una cosa más.
Si tiene un conjunto de datos realmente grande, como 1,000,000 de ejemplos, la división 80/10/10 puede ser innecesaria, porque 10% = 100,000 ejemplos no es necesario para decir que el modelo funciona bien.
Tal vez 99 / 0.5 / 0.5 es suficiente, porque 5,000 ejemplos pueden representar la mayor parte de la varianza en los datos y puede decir fácilmente que el modelo funciona bien en base a estos 5,000 ejemplos en prueba y desarrollo
fuente
Supongamos que tiene menos datos, sugiero probar 70%, 80% y 90% y probar cuál está dando mejores resultados. En el caso del 90%, hay posibilidades de que para una prueba del 10% obtenga una precisión deficiente.
fuente
Quizás un 63.2% / 36.8% es una opción razonable. La razón sería que si tuviera un tamaño de muestra total n y quisiera muestrear aleatoriamente con reemplazo (también conocido como volver a muestrear, como en el bootstrap estadístico) n casos fuera de la n inicial , la probabilidad de que se seleccione un caso individual en el volver a muestrear sería aproximadamente 0.632, siempre que n no sea demasiado pequeño, como se explica aquí: https://stats.stackexchange.com/a/88993/16263
Para una muestra de n = 250, la probabilidad de que se seleccione un caso individual para una re-muestra de 4 dígitos es 0.6329. Para una muestra de n = 20000, la probabilidad es 0.6321.
fuente
Todo depende de los datos disponibles. Si tiene una cantidad considerable de datos, entonces 80/20 es una buena opción como se mencionó anteriormente. Pero si no realiza la validación cruzada con una división 50/50, podría ayudarlo mucho más y evitar que cree un modelo que ajuste demasiado sus datos de entrenamiento.
fuente