Подтвердить что ты не робот

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

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

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

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

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

Спасибо за понимание,

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

numpy.memmap легко:

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

см. также numpy + memmap на SO.

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

Ответ 3

У меня есть аналогичная потребность в работе с базами данных с уменьшением размера карты. Я задал этот вопрос на 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, может обучаться постепенно. Я все еще пытаюсь получить жизнеспособный рабочий процесс для этих проблем и буду заинтересован в обсуждении возможных решений.