Tragen Sie PCA auf eine sehr große, dünne Matrix auf

Ich führe eine Textklassifizierungsaufgabe mit R durch und erhalte eine Dokumentterm-Matrix mit einer Größe von 22490 mal 120.000 (nur 4 Millionen Einträge ungleich Null, weniger als 1% Einträge). Jetzt möchte ich die Dimensionalität mit PCA (Principal Component Analysis) reduzieren. Leider kann R diese riesige Matrix nicht verarbeiten, daher speichere ich diese spärliche Matrix in einer Datei im "Matrix Market Format", in der Hoffnung, einige andere Techniken für PCA zu verwenden.

Könnte mir jemand einige Hinweise für nützliche Bibliotheken (unabhängig von der Programmiersprache) geben, die PCA mit dieser großen Matrix mühelos ausführen können, oder mit anderen Worten, selbst eine Langhand-PCA durchführen?Berechnen Sie zuerst die Kovarianzmatrix und dann die Eigenwerte und Eigenvektoren für die Kovarianzmatrix.

Was ich will, ist zuBerechnen Sie alle PCs (120.000) und wählen Sie nur die Top-N-PCs aus, auf die 90% Abweichung entfallen. In diesem Fall muss ich natürlich von vornherein einen Schwellenwert angeben, um einige sehr kleine Varianzwerte auf 0 zu setzen (in der Kovarianzmatrix). Andernfalls ist die Kovarianzmatrix nicht spärlich und würde eine Größe von 120.000 mal 120.000 haben unmöglich mit einer einzigen Maschine zu handhaben. Außerdem sind die Ladungen (Eigenvektoren) extrem groß und sollten in einem spärlichen Format gespeichert werden.

Vielen Dank für jede Hilfe!

Hinweis: Ich verwende einen Computer mit 24 GB RAM und 8 CPU-Kernen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage