¿Cuáles son las restricciones de memoria de R?


10

Al revisar el " Modelo predictivo aplicado ", un revisor declara :

Una crítica que tengo de la pedagogía del aprendizaje estadístico (SL) es la ausencia de consideraciones de rendimiento de cómputo en la evaluación de diferentes técnicas de modelado. Con su énfasis en bootstrapping y validación cruzada para ajustar / probar modelos, SL requiere bastante computación. Agregue a eso el nuevo muestreo que está integrado en técnicas como embolsado y refuerzo, y tiene el espectro del infierno de la computación para el aprendizaje supervisado de grandes conjuntos de datos. De hecho, las restricciones de memoria de R imponen límites bastante severos en el tamaño de los modelos que pueden ajustarse mediante métodos de alto rendimiento como los bosques aleatorios. Si bien SL hace un buen trabajo al calibrar el rendimiento del modelo con conjuntos de datos pequeños, seguramente sería bueno comprender el rendimiento versus el costo computacional para datos más grandes.

¿Cuáles son las restricciones de memoria de R? ¿Imponen límites severos al tamaño de los modelos que pueden ajustarse mediante métodos de alto rendimiento como los bosques aleatorios ?


Respuestas:


10

Como Konstantin ha señalado, R realiza todos sus cálculos en la memoria del sistema, es decir, la RAM. Por lo tanto, la capacidad de RAM es una restricción muy importante para las operaciones intensivas de cómputo en R. Superando esta restricción, los datos se almacenan actualmente en los sistemas HDFS, donde los datos no se cargan en la memoria y el programa se ejecuta, el programa va a los datos y realiza las operaciones, superando así las restricciones de memoria. RHadoop ( https://github.com/RevolutionAnalytics/RHadoop/wiki ) es el conector que estás buscando.

Al llegar al impacto en los algoritmos que son intensivos en computación, los métodos de bosques aleatorios / árboles de decisión / conjunto en una cantidad considerable de datos (mínimo 50,000 observaciones en mi experiencia) ocupan mucha memoria y son considerablemente lentos. Para acelerar el proceso, la paralelización es el camino a seguir y la paralelización está inherentemente disponible en Hadoop. Ahí es donde, Hadoop es realmente eficiente.

Por lo tanto, si opta por métodos de conjunto que requieren mucha computación y son lentos, debería probar el sistema HDFS, que ofrece una mejora considerable en el rendimiento.


1
+1 Gracias por tomarse el tiempo para mejorar la respuesta existente, y dado que en mi opinión su respuesta es ahora la mejor respuesta, he seleccionado su respuesta como la respuesta. ¡Salud!
errores el

Me alegra responder!
binga

8

R realiza todos los cálculos en la memoria, por lo que no puede realizar operaciones en un conjunto de datos que es mayor que la cantidad de RAM disponible. Sin embargo, hay algunas bibliotecas que permiten el procesamiento de bigdata utilizando R y una de las bibliotecas populares para el procesamiento de bigdata como Hadoop.


3

Esta crítica ya no está justificada:

Si bien es cierto que la mayoría de las bibliotecas R estándar y más respetadas estaban restringidas a los cálculos en memoria, hay un número creciente de bibliotecas especializadas para manejar datos que no caben en la memoria.
Por ejemplo, para bosques aleatorios en grandes conjuntos de datos, tiene la biblioteca bigrf. Más información aquí: http://cran.r-project.org/web/packages/bigrf/

Otra área de crecimiento es la conexión de R con entornos de big data como hadoop, que abre otro mundo de posibilidades.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.