Oprogramowanie do analizy statystyk i eksploracji danych do obsługi dużych zestawów danych

27

Obecnie muszę przeanalizować około 20 milionów rekordów i zbudować modele predykcyjne. Do tej pory wypróbowałem Statistica, SPSS, RapidMiner i R. Wśród nich Statistica wydaje się najbardziej odpowiedni do eksploracji danych, a interfejs użytkownika RapidMiner jest również bardzo przydatny, ale wydaje się, że Statistica, RapidMiner i SPSS są odpowiednie tylko dla mniejszych zestawów danych .

Czy ktoś mógłby polecić dobre narzędzie do dużych zestawów danych?

Dzięki Ci!

niko
źródło
6
Czy możesz być bardziej szczegółowy? Co tak naprawdę chcesz kopać dane i jak zamierzasz to zrobić? Użyłem R do analizy rekordów o podobnej wielkości jak twoje i wcale nie było to złe doświadczenie.
suncoolsu,
To pytanie szybko się ukaże. Dobrze byłoby mieć półroczne podsumowanie (wiki) dotyczące najnowszych narzędzi.
Iterator,

Odpowiedzi:

19

Drugi komentarz @ suncoolsu: wymiarowość twojego zestawu danych nie jest jedynym kryterium, które powinno zorientować cię w kierunku konkretnego oprogramowania. Na przykład, jeśli planujesz po prostu wykonywać bezobsługowe tworzenie klastrów lub używać PCA, istnieje kilka dedykowanych narzędzi, które radzą sobie z dużymi zestawami danych, jak zwykle spotyka się w badaniach genomowych.

Teraz, R (64 bity) obsługuje dużych danych całkiem dobrze, i nadal mieć możliwość używania pamięci dyskowej zamiast dostępu do pamięci RAM, ale zobaczyć CRAN Zadanie Zobacz wysoka wydajność i obliczeń równoległych z R . Standardowy GLM z łatwością pomieści 20 000 obs. (ale patrz także speedglm ) w rozsądnym czasie, jak pokazano poniżej:

> require(MASS)
> n <- 20000
> X <- mvrnorm(n, mu=c(0,0), Sigma=matrix(c(1,.8,.8,1), 2, 2))
> df <- cbind.data.frame(X, grp=gl(4, n/4), y=sample(c(0,1), n, rep=TRUE))
> system.time(glm(y ~ ., data=df))
   user  system  elapsed
  0.361   0.018    0.379

Aby dać bardziej konkretną ilustrację, użyłem R do przetworzenia i analizy dużych danych genetycznych (800 osobników x 800 tys. SNP , gdzie głównym modelem statystycznym był warstwowy GLM z kilkoma współzmiennymi (2 min); było to możliwe dzięki wydajnemu R i Kody C dostępne w pakiecie snpMatrix (dla porównania, ten sam rodzaj modelu zajął około 8 minut przy użyciu dedykowanego oprogramowania C ++ ( plink ). Pracowałem również nad badaniem klinicznym (12 tys. Pacjentów x 50 zmiennych) i R odpowiada moim potrzebom Wreszcie, o ile mi wiadomo, pakiet lme4 jest jedynym oprogramowaniem, które pozwala dopasować model efektów mieszanych do niezrównoważonych i dużych zbiorów danych (jak ma to miejsce w przypadku oceny edukacyjnej na dużą skalę).

Stata / SE to kolejne oprogramowanie, które może obsługiwać duży zestaw danych . SAS i SPSS to oprogramowanie oparte na plikach, więc będą obsługiwać duże ilości danych. Porównawczy przegląd oprogramowania do analizy danych jest dostępny w Narzędziu Data Mining: Które jest najlepsze dla CRM . Do wizualizacji istnieje również wiele opcji; być może dobrym początkiem jest grafika dużych zbiorów danych: wizualizacja miliona ( sprawdzona w JSS przez P Murrella) i wszystkie powiązane wątki na tej stronie.

chl
źródło
@chl: Czy znalazłeś już skuteczne rozwiązanie do przetwarzania równoległego dla 64-bitowego R? Kiedy ostatnio szukałem (późnym latem), jedyne niekomercyjne wydawały się działać tylko w 32-bitowej wersji R.
whuber
1
@whuber Nope. W zeszłym roku musiałem przejść na 64 bity, aby zarządzać dużymi zbiorami danych genetycznych, ale stosowane przez nas modele statystyczne nie wymagają równoległości (o ile mi wiadomo). Myślałem, że dla R istnieje wiązanie OpenMP, ale nie badałem tego dalej. Wiem, że Revolution Analytics poczyniło wysiłki w tym sensie ( j.mp/d7dFb5 ), ale wciąż w 32 bitach (prawdopodobnie o tym właśnie wspomniałeś). W międzyczasie znalazłem R / parallel ( rparallel.org ), ale nie wiem, jak wiarygodny / dojrzały.
chl
@chl Próbowałem ich wszystkich, ale nie mogłem zmusić żadnego z nich do pracy.
whuber
@Whuber: jesteś na Windowsie lub w * Nix Box (Mac, Linux, ...)
user603 16.10.10
2
Radzę zainstalować Ubuntu (Google „Pobierz Ubuntu”) i uruchomić aplikacje tylko w systemie Windows z poziomu Ubuntu za pośrednictwem VirtualBox ( youtube.com/watch?v=KXgKnd-u2R4 ). Edytory R i lateksowe działają na ubuntu jak urok.
user603
8

Większość algorytmów w Apache Mahout skaluje się daleko poza rekordy 20M, nawet w przypadku danych wielowymiarowych. Jeśli potrzebujesz tylko zbudować model predykcyjny, istnieją specjalne narzędzia, takie jak Vowpal Wabbit (http://hunch.net/~vw/), które można łatwo skalować do miliardów rekordów na jednym komputerze.

Pedro Oliveira
źródło
Świetnie ... Nie byłam tego świadoma!
chl
7

Istnieje pakiet RHIPE (integracja R-Hadoop). Może to bardzo ułatwić (z wyjątkami) analizę dużych ilości danych w R.

suncoolsu
źródło
Czy masz z tym sukces? Jeśli tak, dla jakiego rodzaju aplikacji?
chl
Tak, RHIPE jest świetny. Niektórzy z moich znajomych używają go do analizy danych o ruchu w Internecie. Jednym z ich celów jest modelowanie prób włamań. W takich przypadkach dane są ogromne, petabajty są powszechne!
suncoolsu
4

Trudno jest udzielić dobrej odpowiedzi, nie wiedząc, jakie modele masz na myśli.

Do regresji liniowej z powodzeniem użyłem pakietu biglm w R.

NPE
źródło
4

Ponieważ budujesz modele predykcyjne z dużych zestawów danych, możesz skorzystać z Google BigQuery (hostowanej wersji technologii z dokumentu badawczego Google na temat masowej analizy zestawu danych z Dremel). Można na przykład wyeksportować wyniki zapytania jako CSV w celu przetworzenia do predykcyjnego klasyfikatora.

BigQuery ma WebUI, który pozwala uruchamiać zapytania i eksportować wyniki. Wersja BigQuery w wersji beta (v1) zawierała klienta R, a wersja produkcyjna (v2) ostatecznie będzie miała również klienta R.

Michael Manoochehri
źródło
3

Przeszkoliliśmy obserwacje 3,5M i 44 funkcje przy użyciu 64-bitowej wersji R na instancji EC2 z 32 GB pamięci RAM i 4 rdzeniami. Korzystaliśmy z przypadkowych lasów i działało to dobrze. Pamiętaj, że musieliśmy wstępnie przetwarzać / manipulować danymi przed treningiem.

sabunime
źródło
3

SAS Enterprise Miner wersja 6.2 nie miałby problemu z obsługą 20 milionów obserwacji i różnych modeli, które można dostosować do twojej sytuacji. Jednak problemem z SAS jest zazwyczaj koszt. Oto podsumowanie możliwości SAS EM: SAS EM 6.2: Nowości

Feral Oink
źródło
0

Czy możesz spojrzeć na ScaVis ( http://jwork.org/scavis )? Nie patrzyłem na 20M, ale możesz spróbować to sprawdzić.

Jim12
źródło
0

RHIPE to świetne rozwiązanie i prawdopodobnie wybrałbym to, jeśli mam ten problem! ale czy zastanawiałeś się nad NCSS? O ile mi wiadomo, najnowsza wersja 10 może budować te modele. Pełna wersja jest bardzo drogi, ale na kilku usługach pulpitu zdalnego można uruchomić aplikację tylko za niewielką opłatą, ale nie wiem .. raczej to sprawdź

Brandon
źródło