Программное обеспечение для статистики и интеллектуального анализа данных для работы с большими наборами данных

27

В настоящее время мне нужно проанализировать около 20 миллионов записей и построить модели прогнозирования. До сих пор я опробовал Statistica, SPSS, RapidMiner и R. Среди них Statistica кажется наиболее подходящим для работы с интеллектуальным анализом данных, а пользовательский интерфейс RapidMiner также очень удобен, но кажется, что Statistica, RapidMiner и SPSS подходят только для небольших наборов данных. ,

Кто-нибудь может порекомендовать хороший инструмент для больших наборов данных?

Спасибо вам!

niko
источник
6
Можете ли вы быть более конкретным? Что вы на самом деле хотите, чтобы мои данные и как вы планируете это сделать? Я использовал R для анализа записей такого же размера, как и у вас, и это вовсе не было плохим опытом.
Suncoolsu
Этот вопрос быстро устареет. Было бы хорошо иметь полугодовые сводки новостей (вики) для последних в таких инструментах.
Итератор

Ответы:

19

Второй комментарий @suncoolsu: размерность вашего набора данных - не единственный критерий, который должен ориентировать вас на конкретное программное обеспечение. Например, если вы просто планируете проводить кластеризацию без контроля или использовать PCA, есть несколько специализированных инструментов, которые справляются с большими наборами данных, что обычно встречается в геномных исследованиях.

Теперь, R (64 бит) обрабатывает большие объемы данных довольно хорошо, и у вас еще есть возможность использовать дисковое хранилище вместо доступа к оперативной памяти, но видеть CRAN Task View High-Performance и параллельные вычисления с R . Стандартный GLM легко разместит 20 000 человек. (но см. также speedglm ) в течение разумного времени, как показано ниже:

> 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

Чтобы дать более конкретную иллюстрацию, я использовал R для обработки и анализа больших генетических данных (800 особей x 800k SNP , где основной статистической моделью был стратифицированный GLM с несколькими ковариатами (2 мин); это стало возможным благодаря эффективному R и C-коды, доступные в пакете snpMatrix (для сравнения, аналогичная модель заняла около 8 минут с использованием специального программного обеспечения C ++ ( plink ). Я также работала над клиническим исследованием (12 тыс. Пациентов х 50 переменных), и R соответствует моим потребностям И наконец, насколько мне известно, пакет lme4 - единственное программное обеспечение, которое позволяет адаптировать модель смешанных эффектов к несбалансированным и большим массивам данных (как в случае крупномасштабной образовательной оценки).

Stata / SE - это еще одна программа, которая может обрабатывать большие объемы данных . SAS и SPSS являются файловым программным обеспечением, поэтому они будут обрабатывать большие объемы данных. Сравнительный обзор программного обеспечения для анализа данных доступен в Data Mining Tools: Какой из них лучше для CRM . Для визуализации есть также много вариантов; может быть, хорошее начало - это Графика больших наборов данных: визуализация миллиона ( рассмотрена в JSS П. Мерреллом) и все связанные темы на этом сайте.

Чл
источник
@chl: Вы уже нашли эффективное решение для параллельных вычислений для 64-битного R? Когда я последний раз смотрел (в конце этого лета), единственные некоммерческие из них работали только в 32-битной R.
whuber
1
@ Whuber Нет. В прошлом году мне пришлось переключиться на 64 бита для управления большими наборами генетических данных, но используемые нами статистические модели не требуют распараллеливания (насколько я знаю). Я думал, что для R существует привязка OpenMP, но не стал исследовать это дальше. Я знаю, что Revolution Analytics приложили усилия в этом смысле ( j.mp/d7dFb5 ), но все еще в 32 битах (это, вероятно, то, что вы упоминали). Тем временем я нашел R / параллельный ( rparallel.org ), но я не знаю, насколько он надежный / зрелый.
chl
@chl Я попробовал их все, но ни один из них не смог заставить их работать.
whuber
@Whuber: вы на Windows или * NIX Box (Mac, Linux, ...)
user603
2
Я бы посоветовал вам установить Ubuntu (Google 'Download Ubuntu') и запускать приложения для Windows только из Ubuntu через Virtualbox ( youtube.com/watch?v=KXgKnd-u2R4 ). R и латексные редакторы работают на Ubuntu как шарм.
user603
8

Большинство алгоритмов Apache Mahout масштабируются далеко за пределы 20М записей, даже с данными большого размера. Если вам нужно только построить модель прогнозирования, есть специальные инструменты, такие как Vowpal Wabbit (http://hunch.net/~vw/), которые могут легко масштабироваться до миллиардов записей на одном компьютере.

Педро Оливейра
источник
Отлично ... Я не знал об этом!
ЧЛ
7

Есть пакет RHIPE (интеграция с R-Hadoop). Это может облегчить (за исключением) анализ больших объемов данных в R.

suncoolsu
источник
У вас есть успех с этим? Если да, то для какого приложения?
ЧЛ
Да, RHIPE это здорово. Некоторые из моих друзей используют его для анализа данных интернет-трафика. Одна из их целей - моделировать попытки взлома. В таких случаях данные огромны, петабайты обычны!
Suncoolsu
4

Трудно дать хороший ответ, не зная, какие модели ты имеешь в виду.

Для линейной регрессии я успешно использовал пакет biglm в R.

NPE
источник
4

Поскольку вы строите прогностические модели из больших наборов данных, вы можете извлечь выгоду из Google BigQuery (размещенной на хосте версии технологии из исследовательской статьи Google по анализу массивных наборов данных с помощью Dremel). Например, вы можете экспортировать результаты запроса как CSV для использования в прогностическом классификаторе.

BigQuery имеет веб-интерфейс, который позволяет выполнять запросы и экспортировать результаты. В бета-версии (v1) BigQuery использовался R-клиент, а в рабочей версии (v2) в конечном итоге также будет R-клиент.

Майкл Манучехри
источник
3

Мы обучили 3,5 млн наблюдений и 44 функции с использованием 64-битного R на экземпляре EC2 с оперативной памятью 32 ГБ и 4 ядрами. Мы использовали случайные леса, и это работало хорошо. Обратите внимание, что нам пришлось предварительно обрабатывать / манипулировать данными перед тренировкой.

sabunime
источник
3

В SAS Enterprise Miner версии 6.2 не возникнет проблем при обработке 20 миллионов наблюдений и различных моделей, которые можно адаптировать к вашей ситуации. Однако проблема с SAS, как правило, заключается в стоимости. Вот краткое изложение того, что SAS EM может сделать: SAS EM 6.2: Что нового

дикая хрю
источник
0

Можете ли вы взглянуть на ScaVis ( http://jwork.org/scavis )? Я не смотрел на 20M, но вы можете попробовать это проверить.

Jim12
источник
0

RHIPE - отличное решение, и я бы, наверное, выбрал его, если бы возникла эта проблема! а вы рассматривали NCSS? Насколько я знаю, новейшая версия 10 может собрать эти модели. Полная версия это очень дорого, но на нескольких сервисах удаленного рабочего стола вы можете запустить приложение только за небольшую плату, но я не знаю .. лучше проверить это

Brandon
источник