Jakie są ograniczenia pamięci R.

10

OceniającZastosowane modelowanie predykcyjnerecenzent stwierdza :

Jedną z moich krytyk pedagogiki uczenia statystycznego (SL) jest brak uwzględnienia wydajności obliczeń w ocenie różnych technik modelowania. Z naciskiem na ładowanie i weryfikację krzyżową w celu dostrojenia / przetestowania modeli, SL wymaga dużej mocy obliczeniowej. Dodaj do tego ponowne próbkowanie, które jest osadzone w technikach takich jak tworzenie worków i boosting, a masz widmo piekła obliczeniowego do nadzorowanego uczenia się dużych zbiorów danych. W rzeczywistości ograniczenia pamięci R nakładają dość surowe ograniczenia na wielkość modeli, które można dopasować przy użyciu najbardziej skutecznych metod, takich jak losowe lasy. Chociaż SL dobrze wykonuje kalibrację wydajności modelu w stosunku do małych zestawów danych, dobrze byłoby zrozumieć wydajność w porównaniu z kosztem obliczeniowym większych danych.

Jakie są ograniczenia pamięci R. i czy nakładają poważne ograniczenia na wielkość modeli, które można dopasować przy użyciu najbardziej skutecznych metod, takich jak losowe lasy ?

błędy
źródło
Zobacz także Czy język R jest odpowiedni dla Big Data .
Amir Ali Akbari

Odpowiedzi:

10

Jak wskazał Konstantin, R wykonuje wszystkie obliczenia w pamięci systemu, tj. W pamięci RAM. Dlatego pojemność pamięci RAM jest bardzo ważnym ograniczeniem dla operacji intensywnie obliczeniowych w R. Po przezwyciężeniu tego ograniczenia dane są obecnie przechowywane w systemach HDFS, w których dane nie są ładowane do pamięci, a program jest zamiast tego uruchamiany, program przechodzi do danych i wykonuje operacje, pokonując w ten sposób ograniczenia pamięci. RHadoop ( https://github.com/RevolutionAnalytics/RHadoop/wiki ) to złącze, którego szukasz.

Jeśli chodzi o wpływ na algorytmy wymagające intensywnych obliczeń, losowe lasy / drzewa decyzyjne / zespoły na znacznej ilości danych (z mojego doświadczenia co najmniej 50 000 obserwacji) zajmują dużo pamięci i są znacznie powolne. Aby przyspieszyć ten proces, paralelizacja jest właściwą drogą, a paralelizacja jest z natury dostępna w Hadoop! Właśnie tam Hadoop jest naprawdę wydajny.

Jeśli więc wybierasz metody zespolone, które są intensywne obliczeniowo i są powolne, warto wypróbować system HDFS, który zapewnia znaczną poprawę wydajności.

binga
źródło
1
+1 Dziękuję za poświęcenie czasu na poprawienie istniejącej odpowiedzi, a biorąc pod uwagę, moim zdaniem, odpowiedź jest teraz lepsza, wybrałem odpowiedź jako odpowiedź. Twoje zdrowie!
błąka się
Miło mi odpowiedzieć!
binga
8

R wykonuje wszystkie obliczenia w pamięci, więc nie można wykonać operacji na zestawie danych większym niż dostępna ilość pamięci RAM. Istnieją jednak biblioteki umożliwiające przetwarzanie bigdata przy użyciu R i jedną z popularnych bibliotek do przetwarzania bigdata, takich jak Hadoop.

Konstantin V. Salikhov
źródło
3

Ta krytyka nie jest już uzasadniona:

Chociaż prawdą jest, że większość standardowych i najbardziej szanowanych bibliotek R była ograniczona do obliczeń w pamięci, rośnie liczba wyspecjalizowanych bibliotek zajmujących się danymi, które nie mieszczą się w pamięci.
Na przykład dla losowych lasów na dużych zestawach danych masz bibliotekę bigrf. Więcej informacji tutaj: http://cran.r-project.org/web/packages/bigrf/

Kolejnym obszarem wzrostu jest połączenie R ze środowiskami dużych zbiorów danych, takimi jak hadoop, co otwiera kolejny świat możliwości.

nassimhddd
źródło