¿Qué sucederá si divido mis datos en 50:50 para capacitación y pruebas?

Más datos de entrenamiento = mejor modelo

Más datos de prueba = mejor precisión en los resultados de la prueba

Imagine que su modelo tiene una precisión “verdadera”. Es decir, si tiene un número infinito de ejemplos de prueba, esta es la precisión que obtendrá si prueba su modelo.

Con un conjunto de entrenamiento más grande, esta verdadera precisión aumenta. Con un conjunto de prueba más grande, obtendrá una mejor estimación de la precisión de su modelo. La forma en que divide los datos depende de la importancia que le dé a estas dos cosas.

60:20:20 es una regla general, pero es una regla con la que no estoy de acuerdo. ¿Realmente le importa que su error de prueba de 5.33% sea realmente 5.35%? Tenga en cuenta que se supone que no debe tomar ninguna decisión basada en eso, ni siquiera la detención anticipada o el ajuste de hiperparámetros. Si no, ¿por qué querría 200,000 ejemplos en su conjunto de prueba si tiene 1 millón de ejemplos en total?

Elegiría la validación y los tamaños de los conjuntos de prueba dependiendo de la precisión que necesite en las pruebas y los errores de validación (por ejemplo, ± 0.05% generalmente es lo suficientemente bueno para aplicaciones prácticas, no concursos), elija la validación y los tamaños de los conjuntos de prueba basados ​​en eso, y dar todo lo demás al conjunto de entrenamiento.

Eso significa que si tengo 1 millón de ejemplos, por ejemplo, lo dividiré 98: 1: 1. Si tengo 10,000, será más como 80:10:10.

La idea de validación es que desea poder evaluar diferentes modelos y hacer comparaciones directas en el mismo subconjunto del conjunto de datos.

Si usa el mismo subconjunto para la selección y prueba del modelo, el modelo estará sujeto al sesgo de selección del modelo. Es decir, el modelo podría sobreajustar y no generalizar bien a datos invisibles.

En palabras simples, seleccionó el modelo porque ya sabía que había funcionado mejor que otros modelos en ese subconjunto particular. Debido a eso, es inherentemente más probable que funcione mejor en ese subconjunto, pero no necesariamente en datos no vistos. Es por eso que necesita un conjunto de pruebas por separado para evaluarlo.

Depende de tus datos.

Sin embargo, durante el entrenamiento, si el modelo no ve suficientes ejemplos (conjunto de trenes más pequeño), existe una alta probabilidad de que el modelo simplemente aprenda los ejemplos del tren, pero no se generalice bien cuando se le pida que prediga una nueva muestra de prueba. Puede resultar en sobreajuste.

Necesita el conjunto de validación para la selección del modelo. Básicamente se usa para minimizar el sobreajuste.

¿Por qué necesita un conjunto de validación? ¿Cuál es la diferencia entre tren, validación y conjunto de prueba en redes neuronales?

Qué es el sobreajuste y cómo evitarlo ->

¿Cómo se explica el sobreajuste en el aprendizaje automático a alguien que no tiene conocimiento del aprendizaje automático?

¿Cómo puedo evitar el sobreajuste?

La pregunta principal no es por qué 50:50 sino por qué [matemáticas] x: 100-x [/ matemáticas] tamaño de partición de entrenamiento / prueba. Cualquier persona que le otorgue algún valor de [math] x [/ math] para ese caso está proporcionando una heurística que puede funcionar para ellos bajo ciertas condiciones. En su división de tren / prueba 50:50, haría una validación cruzada 5 × 2 veces, es decir, dividiría los datos en dos mitades y entrenaría y probaría el clasificador en ambas mitades por separado y lo repetiría 5 veces y aplicaría la prueba f [1] para medir su fuerza estadística (si quiero comparar su rendimiento con otro clasificador). Si solo hay un clasificador, puede elegir cualquier número arbitrario para dividir los datos. En principio, la validación cruzada de dejar uno fuera puede ser la mejor estrategia, es decir, dividir 99: 1, es decir, entrenar en muestras [matemáticas] n-1 [/ matemáticas] y probar en [matemáticas] n ^ {th } [/ math] muestra. Esto maximizará la cantidad de muestras de entrenamiento que puede usar y puede brindar un mayor valor de precisión, siempre que su modelo se ajuste bien a los datos. Con una división 50:50, puede esperar una precisión menor y con 1:99 esto podría ser peor. Sin embargo, si sus datos son linealmente separables (en el espacio original o transformado) y puede encontrar un buen ajuste, entonces puede obtener una mayor precisión con menos cantidad de muestras de entrenamiento. Entonces, su [matemática] x <50 [/ matemática] funcionará bien. Sin embargo, la idea de las divisiones no es solo aumentar o disminuir las muestras de datos de entrenamiento para jugar con precisión. Pero la intención es hacer esto de manera repetitiva para ver si la varianza del error en las diferentes divisiones es alta o baja y cuán estadísticamente significativos son esos resultados. Esto puede darle más confianza sobre el rendimiento de su clasificador.

Otras lecturas

La respuesta de Shehroz Khan a ¿Qué es un conjunto de datos de entrenamiento y un conjunto de datos de prueba en aprendizaje automático? ¿Cuáles son las reglas para seleccionarlos?

Notas al pie

[1] https://www.cmpe.boun.edu.tr/~et

Para manejar los datos futuros, dividimos el conjunto de datos en Tren, Validación y Prueba. Creamos particiones de prueba para proporcionarnos evaluaciones honestas del rendimiento de nuestros modelos. ¿Qué pasa si no dividimos nuestros datos correctamente? Entonces, nuestro modelo no aprenderá el tipo de datos que nos perdimos en la fase de capacitación, y sigue cometiendo errores cada vez que dichos datos ocurren en la fase de prueba. En el mundo real, la fase de prueba es la evaluación de nuestro modelo actual en conjuntos de datos futuros. Aunque en realidad nunca podremos tener un conjunto de datos futuro con nosotros, pero perder algunos en la fase de capacitación podría costarnos mucho en el futuro. Más allá de la necesidad de demostrar el rendimiento de una manera convincente y de sentido común para nuestro modelo, la partición de prueba juega un papel crítico en la selección del modelo.

Solía ​​dividir numerosas veces. Teóricamente no hay reglas para la división del conjunto de datos. Trabajo con pocas combinaciones para ver cuál funciona mejor. He observado que todo depende del tipo de conjunto de datos en el que esté trabajando. Estaba trabajando en un conjunto de datos médicos que construí desde cero y mostró mejores resultados con la división 65:15:20. Entonces, en lugar de tener una división 50:50, puedes jugar con combinaciones como 55:45, 65:35, 70:30, y así sucesivamente, y ver los resultados.

Espero que esto aclare tus dudas.

Con todo respeto a Andrew Ng, estas son recetas de libros de cocina que no tienen aplicabilidad universal ni una base rigurosa. Si desea hacer las cosas (casi) rigurosamente, debe hacer múltiples divisiones de su conjunto de datos en subconjuntos de entrenamiento y prueba con diferentes proporciones de tamaño y luego seleccionar el conjunto de entrenamiento más pequeño que produzca una precisión mayor que un umbral aceptable en el conjunto de PRUEBAS. Dado que este enfoque es computacionalmente intensivo, muchos investigadores de ML optan por una regla más general, como la que usted describe. Estaría muy cansado de eso si fuera tú.

EDITAR: ¡Después de leer algunas de las respuestas restantes, debo duplicar! ¡NO, NO ES MEJOR TENER UN GRAN CONJUNTO DE ENTRENAMIENTO COMO POSIBLE! Esa es la plaga del aprendizaje automático. Tener un conjunto de entrenamiento demasiado grande en relación con los conjuntos de prueba (o validación) solo termina produciendo un FIT, no un modelo predictivo, ¡y el resultado no se generalizará miserablemente!

Lo siguiente podría ser un buen alimento para el pensamiento: http://web.mit.edu/cocosci/Paper … (Cómo hacer crecer una mente: Estadísticas, Estructura y Abstracción). El punto importante que se hace allí es el siguiente: si le muestra a un niño pequeño 10 o tal vez 50 imágenes de un gato, el niño en adelante, con una precisión asombrosa, reconocerá casi cualquier imagen de un gato. Con nuestros modelos actuales de redes neuronales, la máquina necesita “ver” decenas de miles de gatos antes de que realmente pueda reconocer a los gatos. Claramente, a este respecto, ¡ más es menos !

Cuanta menos información alimente su modelo de entrenamiento, menos precisa será su capacidad predictiva en un nuevo conjunto de datos. Esta es la razón para alimentar el modelo de entrenamiento con la mayor cantidad de datos posible.

La idea de dividir el conjunto de datos en el conjunto de datos de entrenamiento y prueba es capturar suficiente información para entrenar el modelo e información razonable para validar el modelo creado (utilizando los datos del tren).

La mayoría de las personas usa el 70:30 o 60:40 mientras divide el conjunto de datos en el tren y el conjunto de datos de prueba. El aspecto clave detrás de estas proporciones es cuando dividimos el 70% de nuestros datos en datos del tren. Tendremos una alta probabilidad de obtener toda la observación detallada de la clase objetivo en el conjunto de datos de entrenamiento. Esto nos ayudará a modelar.

Cuando dividimos el conjunto de datos considerando la ración 50:50 . No tendremos mucha confianza para capturar toda la observación relacionada con la clase objetivo en el conjunto de datos de entrenamiento.

Nota:

Los criterios de división son obtener la información suficiente para entrenar el modelo y la información razonable para validar el modelo creado y no sobre las raciones que estábamos considerando.

Depende.

El problema es simplemente que desea tener tantos datos como sea posible. Si tiene un gran conjunto de datos en un espacio dimensional relativamente bajo, puede hacer la división 50:50 porque la mitad del conjunto de datos sería más que suficiente para entrenar su modelo.

Si tiene una cantidad limitada de muestras de entrenamiento, esto sería mucho más problemático.

La idea aquí es que se asegure de no perder ninguna área relevante del espacio de entrada, porque sus predicciones se caerían si este tipo de entrada se alimenta a su modelo.

TL; DR: desea que su modelo sea entrenado en muestras variadas.

No tendría ninguna implicación grave. 60:20:20 está idealmente diseñado para casos en los que no tiene muchos datos de entrenamiento para entrenar a su modelo. Supongamos que tiene 20 puntos de datos, y usa solo 10 puntos para entrenar a su modelo, lo peor que puede suceder es que podría terminar de no ajustar su modelo de entrenamiento.

More Interesting

¿Cuál es la diferencia entre la regresión logística y Naive Bayes?

¿Cambridge o Stanford / Berkeley son mejores en aprendizaje automático?

¿Qué algoritmos de optimización son buenos candidatos para la paralelización con MapReduce?

¿Los modelos de aprendizaje automático en automóviles sin conductor utilizan aprendizaje supervisado, no supervisado o de refuerzo?

¿Existe algún proyecto de código abierto que implemente algoritmos de aprendizaje profundo que aproveche la enorme potencia informática paralela de la GPU?

¿Cuáles son algunos ejemplos del uso del aprendizaje automático en sistemas distribuidos?

¿Cuándo se ajusta bien un modelo de mezcla gaussiana?

¿Cuáles son los grandes problemas en la inferencia variacional?

¿Cuál es el mejor método de selección de características cuando los datos del tren tienen más características que el número de puntos de datos? ¿Asumir que los datos son muy grandes?

¿Cuáles serán los casos de uso de aprendizaje automático más grandes de 2017?

¿Qué son las redes neuronales convolucionales?

¿Debo aprender el aprendizaje automático para IoT?

¿Qué es la factorización de bajo rango y cuáles son sus aplicaciones en el aprendizaje automático?

¿Por qué algunos profesores dicen que nunca entendieron realmente las matemáticas o las estadísticas hasta que primero enseñaron un curso sobre ese tema?

Hay muchas críticas positivas para Pytorch. Actualmente uso Keras y TensorFlow. ¿Recomienda hacer un cambio o apegarse a Tensorflow y dominarlo?