Todo depende de los algoritmos que necesite. Si se pueden traducir al formulario incremental (cuando solo se necesita una pequeña parte de datos en un momento dado, por ejemplo, para Naive Bayes puede mantener en memoria solo el modelo mismo y la observación actual que se está procesando), entonces la mejor sugerencia es realice el aprendizaje automático de forma incremental, leyendo nuevos lotes de datos del disco.
Sin embargo, muchos algoritmos y especialmente sus implementaciones realmente requieren todo el conjunto de datos. Si el tamaño del conjunto de datos se ajusta a su disco (y las limitaciones del sistema de archivos), puede usar el paquete mmap que permite asignar el archivo en el disco a la memoria y usarlo en el programa. Sin embargo, tenga en cuenta que las lecturas de lectura en el disco son costosas y, a veces, a R le gusta mover los datos hacia adelante y hacia atrás con frecuencia. Así que ten cuidado.
Si sus datos no se pueden almacenar ni siquiera en su disco duro, necesitará utilizar sistemas distribuidos de aprendizaje automático. Uno de esos sistemas basados en R es Revolution R que está diseñado para handle conjuntos de datos realmente grandes. Desafortunadamente, no es de código abierto y cuesta bastante dinero, pero puede intentar obtener free academic license. Como alternativa, puede estar interesado en el Apache Mahout basado en Java, una solución no tan elegante, pero muy eficiente, basada en Hadoop e incluye muchos algoritmos importantes.
Eche un vistazo a la subsección "Memoria grande y datos sin memoria" de [vista de tareas de computación de alto rendimiento] (http://cran.r-project.org/web/views/HighPerformanceComputing.html) en CRAN. [bigmemory] (http://cran.r-project.org/web/packages/bigmemory/index.html) y [ff] (http://cran.r-project.org/web/packages/ff/index .html) son dos paquetes populares. Además, considere almacenar datos en una base de datos y leerlos en lotes más pequeños para su análisis. – jthetzel