2013-11-28 9 views
5

Für den Zweck habe ich die Lösung von diesem Thread link bis jetzt, aber es gibt Speicherfehler wie erwartet, da meine Matrix A Größe 6 Millionen bis 40000 Matrix ist. Daher suche ich nach einer anderen Lösung, um dennoch die Korrelationsmatrix zu approximieren. Wie kann ich dieses Problem impfen? Jede Hilfe wird geschätzt.Wie approximiert man die Korrelationsmatrix in Large Sparse Scipy Matrizen?

+0

Zuerst müssen Sie die folgende Frage beantworten: Wie viele Elemente ungleich Null haben Sie in Ihrer Matrix? Nennen Sie diese Nummer 'nnz'. Der Speicher, der benötigt wird, um sie zu speichern, ist etwa 16e-9 * nnz' Gigabyte. Wie viele Gigabyte würden Sie brauchen? –

Antwort

1

Ihr Problem ist, dass Sie das Ergebnis nicht im Speicher halten können (6e6^2 Werte?).

Sie können Zeilen aus der ursprünglichen Matrix löschen. Wenn Sie beispielsweise nach stark korrelierten Zeilen suchen, möchten Sie möglicherweise die Zeilen gruppieren, um das Problem zu lösen.

Sie können auch scipy.sparse.linalg.svds verwenden, um die Anzahl der Spalten zu verringern. Aber Sie müssen immer noch mit den Korrelationen von Zeilen^2 umgehen.

Verwandte Themen