Quali sono i vincoli di memoria di R?


10

Nel rivedere la " Modellazione predittiva applicata " un revisore afferma :

Una critica che ho della pedagogia dell'apprendimento statistico (SL) è l'assenza di considerazioni sulle prestazioni di calcolo nella valutazione delle diverse tecniche di modellizzazione. Con la sua enfasi sul bootstrap e la validazione incrociata per mettere a punto / testare i modelli, SL è piuttosto intenso in termini di calcolo. Aggiungete a ciò il ricampionamento incorporato in tecniche come il bagging e il boosting e avrete lo spettro dell'inferno del calcolo per l'apprendimento supervisionato di grandi set di dati. In effetti, i vincoli di memoria di R impongono limiti piuttosto severi sulla dimensione dei modelli che possono essere adattati da metodi dalle prestazioni più elevate come le foreste casuali. Sebbene SL faccia un buon lavoro nel calibrare le prestazioni del modello rispetto a piccoli set di dati, sarebbe sicuramente utile comprendere le prestazioni rispetto ai costi di calcolo per dati più grandi.

Quali sono i vincoli di memoria di R e impongono limiti severi alle dimensioni dei modelli che possono essere adattati da metodi dalle prestazioni più elevate come le foreste casuali ?


Risposte:


10

Come ha sottolineato Konstantin, R esegue tutti i suoi calcoli nella memoria del sistema, ad esempio RAM. Quindi, la capacità della RAM è un vincolo molto importante per le operazioni ad alta intensità di calcolo in R. Superando questo vincolo, i dati vengono archiviati in questi giorni nei sistemi HDFS, dove i dati non vengono caricati in memoria e il programma viene eseguito invece, il programma passa ai dati e esegue le operazioni, superando così i vincoli di memoria. RHadoop ( https://github.com/RevolutionAnalytics/RHadoop/wiki ) è il connettore che stai cercando.

Venendo all'impatto sugli algoritmi che richiedono molta elaborazione, foreste casuali / alberi decisionali / metodi di ensemble su una notevole quantità di dati (minimo 50.000 osservazioni nella mia esperienza) occupano molta memoria e sono considerevolmente lenti. Per accelerare il processo, la parallelizzazione è la strada da percorrere e la parallelizzazione è intrinsecamente disponibile in Hadoop! Ecco dove, Hadoop è davvero efficiente.

Quindi, se stai cercando metodi ensemble ad alta intensità di calcolo e lenti, ti consigliamo di provare il sistema HDFS che offre un notevole miglioramento delle prestazioni.


1
+1 Grazie per aver dedicato del tempo a migliorare la risposta esistente e, a mio avviso, la tua risposta è ora la risposta migliore, ho selezionato la tua risposta come risposta. Saluti!
errori

Sono contento di rispondere!
Binga,

8

R esegue tutti i calcoli in memoria, quindi non è possibile eseguire operazioni su un set di dati superiore alla quantità di RAM disponibile. Tuttavia ci sono alcune librerie che consentono l'elaborazione di bigdata usando R e una delle librerie più popolari per l'elaborazione di bigdata come Hadoop.


3

Questa critica non è più giustificata:

Mentre è vero che la maggior parte delle librerie R standard e più rispettate erano limitate ai calcoli in memoria, esiste un numero crescente di librerie specializzate per gestire i dati che non rientrano nella memoria.
Ad esempio, per foreste casuali su set di dati di grandi dimensioni, hai la libreria bigrf. Maggiori informazioni qui: http://cran.r-project.org/web/packages/bigrf/

Un'altra area di crescita è la connessione di R ad ambienti di big data come hadoop, che apre un altro mondo di possibilità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.