Инструментов Python для основных вычислений/анализа данных
Меня интересуют python mining
наборы данных, слишком большие, чтобы сидеть в оперативной памяти, но сидящие в пределах одного HD.
Я понимаю, что могу экспортировать данные в виде файлов hdf5
, используя pytables
. Кроме того, numexpr
допускает некоторые базовые вычисления вне ядра.
Что будет дальше? Мини-дозирование, когда это возможно, и полагаться на результаты линейной алгебры, чтобы разложить вычисления, когда мини-дозирование не может быть использовано?
Или есть какие-то инструменты более высокого уровня, которые я пропустил?
Спасибо за озарения,
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
, может обучаться постепенно. Я все еще пытаюсь получить жизнеспособный рабочий процесс для таких проблем и был бы заинтересован в обсуждении возможных решений.