Básicamente, hay dos formas comunes de aprender contra grandes conjuntos de datos (cuando te enfrentas a restricciones de tiempo / espacio):
- Hacer trampa :): use solo un subconjunto "manejable" para el entrenamiento. La pérdida de precisión puede ser insignificante debido a la ley de rendimientos decrecientes: el rendimiento predictivo del modelo a menudo se aplana mucho antes de que se incorporen todos los datos de entrenamiento.
- Computación en paralelo: divida el problema en partes más pequeñas y resuelva cada una en una máquina / procesador separado. Sin embargo, necesita una versión paralela del algoritmo, pero una buena noticia es que muchos algoritmos comunes son naturalmente paralelos: vecino más cercano, árboles de decisión, etc.
¿Hay otros métodos? ¿Hay alguna regla general cuando usar cada uno? ¿Cuáles son los inconvenientes de cada enfoque?
fuente
En lugar de usar solo un subconjunto, podría usar múltiples subconjuntos como en el aprendizaje de mini lotes (por ejemplo, descenso de gradiente estocástico). De esta manera, aún haría uso de todos sus datos.
fuente
Conjuntos como embolsado o mezcla: no se desperdician datos, el problema se vuelve automáticamente trivialmente paralelo y puede haber ganancias significativas de precisión / robustez.
fuente