Die klassische Methode der Hauptkomponentenanalyse (PCA) besteht darin, sie auf einer Eingabedatenmatrix durchzuführen, deren Spalten den Mittelwert Null haben (dann kann PCA die Varianz "maximieren"). Dies kann leicht durch Zentrieren der Säulen erreicht werden. Wenn jedoch die Eingabematrix dünn ist, ist die zentrierte Matrix jetzt länger dünn und passt - wenn die Matrix sehr groß ist - nicht mehr in den Speicher. Gibt es eine algorithmische Lösung für das Speicherproblem?
10
Antworten:
Ja, es ist möglich.
Wenn die Datenmatrix nicht in den Arbeitsspeicher passt, ist dies noch nicht das Ende der Welt: Es gibt effiziente Algorithmen, die mit auf einer Festplatte gespeicherten Daten arbeiten können. Siehe z. B. randomisierte PCA, wie in Halko et al., 2010, Ein Algorithmus zur Hauptkomponentenanalyse großer Datenmengen beschrieben .
In Abschnitt 6.2 erwähnen die Autoren, dass sie ihren Algorithmus auf einer 400k mal 100.000 Datenmatrix ausprobiert haben und dass
Beachten Sie, dass dies in den alten Tagen der magnetischen Festplatten war; Heutzutage sind viel schnellere Solid-State-Laufwerke verfügbar, daher würde derselbe Algorithmus vermutlich erheblich schneller arbeiten.
Weitere Informationen zu randomisierten PCA finden Sie in diesem alten Thread: Bester PCA-Algorithmus für eine Vielzahl von Funktionen (> 10 KB)? und diese große Übersicht von 2011 von Halko et al.: Struktur mit Zufälligkeit finden: Probabilistische Algorithmen zur Konstruktion ungefährer Matrixzerlegungen .
quelle