Попытка эффективно вычислить матрицу корреляции в Python

У меня очень большой массив данных (100K столбцов на 7K строк), и я хочу вычислить все попарные корреляции Пирсона (~ (100 000 ^ 2) / 2 = 5 миллиардов корреляций) между столбцами. Массив едва умещается в ОЗУ, поэтому простые методы его не обрезают, и я тоже хочу сделать это достаточно эффективно. Есть ли способы сделать это (желательно на Python, хотя C / C ++ также будет приемлемым)? Любые способы распараллеливания этого также были бы очень полезны, потому что я хотел бы сделать это за разумное время.

Я уже пытался использовать numpy.corrcoef функция, но для этого использовался только один процессор, и он также выдал ошибку памяти.

0

Решение

Я делаю это с помощью DeepGraph библиотека, чтобы запустить это параллельно. Я следовал учебнику, который у них был там, чтобы создать большие матрицы корреляции. Сейчас он работает, и кажется, что это займет (только !!) 2 часа на моей машине 8 * 3,4 ГГц. Для этого я использую большую часть своих 16 ГБ ОЗУ, но кажется, что все держится вместе.

1

Другие решения

Других решений пока нет …