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 zur Durchführung von 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 selbst eine Langhand-PCA erstellen, dh zuerst die Kovarianzmatrix berechnen und Berechnen Sie dann die Eigenwerte und Eigenvektoren für die Kovarianzmatrix .
Was ich möchte, ist, alle PCs (120.000) zu berechnen und nur die Top-N-PCs auszuwählen, die 90% Abweichung ausmachen . 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.