Quais são as restrições de memória de R?


10

Ao revisar a " Modelagem Preditiva Aplicada ", um revisor declara :

Uma crítica que tenho da pedagogia do aprendizado estatístico (SL) é a ausência de considerações de desempenho computacional na avaliação de diferentes técnicas de modelagem. Com ênfase no bootstrapping e na validação cruzada para ajustar / testar modelos, o SL é bastante intensivo em computação. Acrescente a isso a re-amostragem incorporada em técnicas como ensacamento e reforço, e você tem o espectro do inferno da computação para o aprendizado supervisionado de grandes conjuntos de dados. De fato, as restrições de memória de R impõem limites bastante severos ao tamanho dos modelos que podem ser ajustados por métodos de melhor desempenho, como florestas aleatórias. Embora o SL faça um bom trabalho ao calibrar o desempenho do modelo em relação a pequenos conjuntos de dados, seria bom entender o desempenho versus o custo computacional para dados maiores.

Quais são as restrições de memória de R e elas impõem limites severos ao tamanho dos modelos que podem ser ajustados por métodos de melhor desempenho, como florestas aleatórias ?


Respostas:


10

Como Konstantin apontou, R realiza todo o seu cálculo na memória do sistema, ou seja, RAM. Portanto, a capacidade da RAM é uma restrição muito importante para operações intensivas de computação em R. Superando essa restrição, os dados estão sendo armazenados atualmente nos sistemas HDFS, nos quais os dados não são carregados na memória e o programa é executado, o programa passa para os dados e executa as operações, superando assim as restrições de memória. O RHadoop ( https://github.com/RevolutionAnalytics/RHadoop/wiki ) é o conector que você está procurando.

Chegando ao impacto em algoritmos intensivos em computação, os métodos Random Forests / Decision Trees / Ensemble em uma quantidade considerável de dados (mínimo de 50.000 observações em minha experiência) consomem muita memória e são consideravelmente lentos. Para acelerar o processo, a paralelização é o caminho a seguir e a paralelização está inerentemente disponível no Hadoop! É aí que o Hadoop é realmente eficiente.

Portanto, se você optar por métodos de ensemble intensivos em computação e lentos, convém experimentar o sistema HDFS, que oferece uma melhoria considerável no desempenho.


11
+1 Obrigado por dedicar um tempo para melhorar a resposta existente e, em minha opinião, sua resposta agora é a melhor resposta, selecionei sua resposta como resposta. Felicidades!
erros

Fico feliz em responder!
Binga

8

R executa todo o cálculo na memória para que você não possa executar operações em um conjunto de dados que seja maior que a quantidade de RAM disponível. No entanto, existem algumas bibliotecas que permitem o processamento de dados grandes usando R e uma das bibliotecas populares para processamento de dados grandes como o Hadoop.


3

Essa crítica não se justifica mais:

Embora seja verdade que a maioria das bibliotecas R padrão e mais respeitadas estavam restritas aos cálculos na memória, há um número crescente de bibliotecas especializadas para lidar com dados que não cabem na memória.
Por exemplo, para florestas aleatórias em grandes conjuntos de dados, você tem a biblioteca bigrf. Mais informações aqui: http://cran.r-project.org/web/packages/bigrf/

Outra área de crescimento é a conexão de R com ambientes de big data como o hadoop, que abre outro mundo de possibilidades.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.