Ich führe eine Textklassifizierungsaufgabe mit R durch und erhalte eine Dokument-Begriffs-Matrix mit einer Größe von 22490 mal 120.000 (nur 4 Millionen Nicht-Null-Einträge, weniger als 1% Einträge). Nun möchte ich die Dimensionalität mit Hilfe der PCA (Principal Component Analysis) reduzieren. Leider kann R mit dieser riesigen Matrix nicht umgehen, also speichere ich diese dünnbesetzte Matrix in einer Datei im "Matrix Market Format", in der Hoffnung, dass ich andere Techniken für die PCA verwenden kann.
Könnte mir also jemand Tipps für nützliche Bibliotheken (unabhängig von der Programmiersprache) geben, mit denen sich eine PCA mit dieser großen Matrix problemlos durchführen lässt, oder eine PCA per Hand, mit anderen Worten, selbst durchführen, zunächst die Kovarianzmatrix und dann die Eigenwerte und Eigenvektoren der Kovarianzmatrix zu berechnen .
Was ich möchte ist, dass Berechnen Sie alle PCs (120.000) und wählen Sie nur die besten N PCs aus, die 90% der Varianz ausmachen. . In diesem Fall muss ich natürlich a priori einen Schwellenwert festlegen, um einige sehr kleine Varianzwerte (in der Kovarianzmatrix) auf 0 zu setzen. Andernfalls wäre die Kovarianzmatrix nicht spärlich und ihre Größe würde 120.000 mal 120.000 betragen, was mit einer einzigen Maschine unmöglich zu bewältigen ist. Auch die Ladungen (Eigenvektoren) werden extrem groß sein und sollten im Sparse-Format gespeichert werden.
Vielen Dank für jede Hilfe!
Hinweis: Ich verwende einen Rechner mit 24 GB RAM und 8 Prozessorkernen.