Инструментов Python для основных вычислений/анализа данных


Меня интересуют python mining наборы данных, слишком большие, чтобы сидеть в оперативной памяти, но сидящие в пределах одного HD.

Я понимаю, что могу экспортировать данные в виде файлов hdf5, используя pytables. Кроме того, numexpr допускает некоторые базовые вычисления вне ядра.

Что будет дальше? Мини-дозирование, когда это возможно, и полагаться на результаты линейной алгебры, чтобы разложить вычисления, когда мини-дозирование не может быть использовано?

Или есть какие-то инструменты более высокого уровня, которые я пропустил?

Спасибо за озарения,

3 13

3 ответа:

В sklearn 0.14 (выйдет в ближайшие дни) есть полноценный пример внепрофильной классификации текстовых документов.

Я думаю, что это может быть отличным примером для начала:

Http://scikit-learn.org/dev/auto_examples/applications/plot_out_of_core_classification.html

В следующем выпуске мы расширим этот пример с помощью дополнительных классификаторов и добавим документацию в руководство пользователя.

NB: этот пример можно воспроизвести и с 0.13, все строительные блоки были уже там.

Что именно вы хотите сделать - не могли бы вы привести пример или два, пожалуйста ?

Онемел.memmap легко -

Создайте карту памяти для массива, хранящегося в двоичном файле на диске.
Файлы, сопоставленные с памятью, используются для доступа к небольшим сегментам больших файлы на диске, без чтения всего файла в память. Включает в memmap - это массивоподобные объекты ...

Смотрите также numpy+memmap на SO.

Scikit-learn Люди очень хорошо осведомлены, но предпочитают конкретные вопросы.

У меня есть аналогичная потребность работать с субкартами-уменьшать размер наборов данных. Я поставил этот вопрос на SO, когда начал исследовать Python pandas как серьезную альтернативу SAS: рабочие потоки "больших данных" с использованием pandas

Ответ, представленный здесь, предполагает использование интерфейса HDF5 от pandas для хранения структур данных pandas непосредственно на диске. После сохранения вы можете получить доступ к данным пакетами и постепенно обучать модель. Например, scikit-learn имеет несколько классов, которые могут тренируйтесь на инкрементных фрагментах набора данных. Один из таких примеров можно найти здесь:

Http://scikit-learn.org/0.13/modules/generated/sklearn.linear_model.SGDClassifier.html

Любой класс, реализующий метод partial_fit, может обучаться постепенно. Я все еще пытаюсь получить жизнеспособный рабочий процесс для таких проблем и был бы заинтересован в обсуждении возможных решений.