¿Cuántas muestras de entrenamiento se necesitan para obtener un modelo confiable en ML?

No existen reglas estrictas para saber cuántos datos necesitamos para respaldar la creación de un buen modelo. Cada problema en el que trabajamos es diferente, con una variedad de limitaciones y compensaciones que deben considerarse. La cantidad correcta de datos es la cantidad necesaria para admitir un modelo que cumple con una serie de requisitos del producto. Comencemos mirando los enfoques más formulados (aunque ingenuos) para responder esta pregunta. Al final, proporcionaré una respuesta más realista que considere la complejidad del mundo real en la construcción de un software que haga predicciones buenas y relevantes.

El primer enfoque es una regla general simple y fechada que dice que deberíamos tener 10N filas para N columnas. Si bien esta regla tiene cierta justificación teórica, se basa en definiciones estrictas de calidad utilizando una gama limitada de modelos. Si tiene muchas observaciones, puede usar esto como un objetivo para la cantidad de datos a muestrear para comenzar, pero no lo vea como una restricción del mundo real.

Otro enfoque es medir el error de prueba en el conjunto de retención utilizado en la validación del modelo. Esto enmarca nuestro “problema de más datos” como una entrada a nuestra consideración de la compensación de sesgo-varianza. Dado que tanto el alto sesgo como la alta varianza pueden contribuir a un modelo deficiente, podemos rastrear sus niveles a medida que se agregan más datos. (Algunos enmarcan esto como un problema de dimensión VC, pero el enfoque de variación de sesgo es más directo y práctico).

Cuando se trata de variación, nos preguntamos si nuestro modelo es demasiado complicado para la cantidad de datos que tenemos. Podemos intentar responder esta pregunta comparando el error de entrenamiento con el error de prueba a medida que se agregan más datos (si el error de entrenamiento es mucho más bajo que el error de prueba, consideramos que este es un problema de alta varianza). Desde la perspectiva de la recopilación de datos, se puede abordar una gran variación reduciendo el número de características (columnas) en los datos o aumentando el número de ejemplos (filas). En el caso de un alto sesgo , estamos preguntando si nuestro modelo es demasiado simple para explicar los datos que tenemos disponibles. Aquí, agregar más datos (filas) no ayuda, sin embargo, agregar más características (columnas) puede ayudar a compensar el problema agregando complejidad al modelo (el modelo ahora necesita considerar más parámetros). En ambos casos, agregar más datos puede ayudar (agregar filas y agregar columnas son ejemplos de agregar datos).

La siguiente figura muestra un ejemplo de cómo podemos detectar un problema de alta varianza al rastrear el tren y el error de prueba a medida que agregamos más datos. Podemos ver que existe una brecha entre el tren y el error de prueba, independientemente de la cantidad de datos (filas) que agreguemos. Esto nos dice que 1) tenemos un problema de alta varianza y 2) agregar más filas no alivia el problema. También hay signos reveladores de alto sesgo que podemos buscar, como una caída inicial en el error de prueba que se nivela a medida que se agregan más datos, pero no mostramos ese ejemplo aquí.

Aquí hay un resumen de cosas para probar cuando detectamos problemas con sesgo o varianza.

  • Si tenemos un alto sesgo, podemos obtener más datos (columnas), hacer que el modelo sea más complejo o cambiar el modelo;
  • Si tenemos una gran varianza, podemos obtener más datos (filas) o disminuir la complejidad (eliminar columnas).

De qué tener cuidado:

  • Alto sesgo : error de prueba que disminuye al principio y luego establece un valor alto;
  • Alta varianza : espacio entre ambas curvas.

Por lo tanto, podemos ver que hay una manera de rastrear cómo se desarrollan los problemas de sesgo y varianza a medida que se agregan más datos, lo que proporciona un mecanismo por el cual los científicos de datos pueden argumentar una cantidad mínima de datos para respaldar un mejor modelo.

Pero el problema no es tan sencillo. Más datos no siempre significan un mejor modelo. Es posible ajustar modelos subdeterminados , donde el número de columnas excede el número de filas. En los casos en que se utiliza la regularización para restringir la complejidad del modelo, es posible ajustar modelos buenos con menos filas que columnas. Esta es una práctica común en el procesamiento del lenguaje natural donde cada palabra (las características) excede en gran medida el número de documentos (las filas).

Esto significa que “más datos” es una de las muchas cosas a tener en cuenta. Cada paso del flujo de trabajo de aprendizaje automático tiene muchos “botones” para girar, y cada uno tiene un impacto en el resultado final. ¿Qué tal la calidad de los datos? Si eliminamos los valores atípicos e imputamos datos faltantes, el modelo podría mejorar con menos datos. ¿Qué pasa si cambiamos el algoritmo de aprendizaje? Diferentes algoritmos tienen diferentes niveles de sesgo y complejidad. ¿Qué estamos usando para validar el rendimiento? La precisión bruta es para competencias de Kaggle, no para la ciencia de datos del mundo real. ¿Deberían sus modelos ser más agresivos o conservadores? ¿Deben sus modelos confiar en sus predicciones o simplemente obtener la respuesta correcta? ¿Nuestros modelos necesitan trabajar en línea o bastarán por lotes?

La frustración que sienten los recién llegados es que sienten que hay un problema de huevo de gallina en sus esfuerzos por saber por dónde empezar. (Necesito construir el modelo para ver cuántos datos necesito, pero necesito saber cuántos datos necesito para construir el modelo). Solo ha habido una forma de resolver un problema de huevo de gallina y se llama iteración. Tiene que tomar la cantidad incorrecta de datos, construir el modelo incorrecto, verificar una variedad de métricas importantes para el producto, probarlo y cambiarlo; una y otra vez. Esa es la versión del mundo real.

Para una buena discusión sobre este tema, ver:

Coelho, Luis Pedro y Willi Richert. Creación de sistemas de aprendizaje automático con Python. Birmingham: Packt, 2015. Imprimir

No estoy seguro de los artículos clásicos, pero Scikit-learn, una conocida biblioteca de aprendizaje automático de Python para el aprendizaje, sugiere la siguiente hoja de trucos:

Elegir el estimador correcto

La regla general tradicional es tener al menos 10 veces más muestras que características, pero como señala Sean McClure, cualquier regla como esa es demasiado simplista.

Como con todo lo demás en ML, depende del conjunto de datos y del problema que está tratando de resolver.

La dimensión VC se utiliza para medir la complejidad del modelo de aprendizaje automático. La dimensión VC puede considerarse como el número de parámetros que se ajustan para ajustarse al hiperplano. La dimensión VC se explica en la Lección 07 – La dimensión VC.

La regla general es que se necesitan diez veces las muestras de entrenamiento de dimensiones VC para el entrenamiento. Esta es la regla general y no es necesario seguirla.

Una buena regla general es que n = 10 * p está justo donde puede comenzar a obtener resultados “confiables”, pero también donde más datos todavía hacen una gran diferencia.