2013-11-28 19 views
5

Do tej pory użyłem rozwiązania z tego wątku link, jednak daje on błąd pamięci zgodnie z oczekiwaniami, ponieważ mój rozmiar macierzy A wynosi od 6 milionów do 40000 macierzy. Dlatego też szukam innego rozwiązania, aby zbliżyć macierz korelacji. Jak mogę zaszczepić ten problem? Każda pomoc jest doceniana.Jak przybliżać macierz korelacji w dużych rzadkich matrycach scipy?

+0

Najpierw musisz odpowiedzieć na następujące pytanie: ile niezerowych elementów masz w swojej macierzy. Zadzwoń pod ten numer 'nnz'. Pamięć wymagana do ich przechowywania to około '16e-9 * nnz' gigabajtów. Ile gigabajtów potrzebujesz? –

Odpowiedz

1

Twój problem polega na tym, że nie możesz zatrzymać wyniku w pamięci (wartości 6e6^2?).

Możesz upuścić wiersze z oryginalnej macierzy. Jeśli, na przykład, szukasz silnie skorelowanych wierszy, możesz chcieć grupować wiersze, aby rozwiązać problem.

Można również użyć scipy.sparse.linalg.svds, aby zmniejszyć liczbę kolumn. Ale nadal będziesz musiał obsłużyć korelacje wierszy^2.

Powiązane problemy