1

Я хочу собрать 1,5 миллиона химических соединений. Это означает, что матрица расстояния 1,5 х 1,5 млн ...Кластеризация огромной матрицы данных в python?

Я думаю, что я могу создать такую ​​большую таблицу, используя pyTables, но теперь - имея такую ​​таблицу, как я ее сгруппирую?

Я предполагаю, что я не могу просто пройти pyTables объекта к одному из scikit узнать кластеризацию методы ...

Есть ли питон на основе структуры, которые будут принимать мой огромный стол и сделать что-то полезное (ложь) кластерный с ним ? Возможно, в распределенной форме?

+0

Почему это должно быть python? Для такого размера данных естественным путем можно решить его в автономном режиме через специализированное программное обеспечение. Обычно такая матрица была бы очень разреженной или ее можно было бы считать разреженной, применяя некоторый весовой порог. В этом случае это также можно рассматривать как проблему кластеризации графа. – micans

+0

Потому что это вопрос, который я задал. Если вы не знаете ответа, почему вы комментируете? – mnowotka

+1

Я знаю немного о кластеризации, и кажется странным, что вы зависаете на определенном языке программного обеспечения для того, что представляет собой крупномасштабную проблему интеллектуального анализа данных. Вы пытаетесь решить проблему, или вам просто нравится быть snarky? Это неподдельный вопрос - почему он должен быть питоном? – micans

ответ

4

Может быть, вы должны смотреть на алгоритмы, которые не нуждаются в полную дистанцию матрица.

Я знаю, что популярен формулировать алгоритмы как операции с матрицами, поскольку такие инструменты, как R, довольно быстро работают в матрице (и медленны на других вещах). Но существует целая тонна методов, которые не требуют памяти O(n^2) ...

+0

Чтобы этот ответ был конструктивным, можете ли вы привести несколько примеров таких методов? – mnowotka

+0

k-означает определенные типы иерархической кластеризации, DBSCAN, OPTICS, ... –

+0

Я добавлю метод RNSC, Louvain и MCL. – micans

1

Я думаю, что основная проблема - память. 1,5 x 1,5 миллиона x 10B (размер 1 элемента)> 20TB Вы можете использовать базу данных bigdata, такую ​​как pyTables, Hadoop http://en.wikipedia.org/wiki/Apache_Hadoop и алгоритм MapReduce.

Вот несколько советов: http://strata.oreilly.com/2013/03/python-data-tools-just-keep-getting-better.html

Или использовать Google App Engine Datastore с MapReduce https://developers.google.com/appengine/docs/python/dataprocessing/ - но теперь это не серийная версия

 Смежные вопросы

  • Нет связанных вопросов^_^