Sto eseguendo un'operazione di classificazione testo con R e ottengo una matrice di termini documento con dimensione 22490 per 120.000 (solo 4 milioni di voci diverse da zero, meno dell'1% di voci). Ora voglio ridurre la dimensionalità utilizzando PCA (Principal Component Analysis). Sfortunatamente, R non può gestire questa enorme matrice, quindi immagazzino questa matrice sparsa in un file in "Matrix Market Format", sperando di usare altre tecniche per fare PCA.Applicare PCA su matrice sparse molto grande
Allora qualcuno mi potrebbe dare qualche suggerimento per le biblioteche utili (qualunque sia il linguaggio di programmazione), che potrebbe fare PCA con questa matrice di grandi dimensioni con facilità, o fare un PCA longhand da me, in altre parole, calcolare il matrice di covarianza in un primo momento, quindi calcolare gli autovalori e gli autovettori per la matrice di covarianza.
Quello che voglio è quello di calcolare tutti i PC (120.000) e scegliere solo i primi N PC, che rappresenta il 90% della varianza. Ovviamente, in questo caso, devo dare una soglia a priori per impostare alcuni valori di varianza molto piccoli su 0 (nella matrice di covarianza), altrimenti la matrice di covarianza non sarà sparsa e la sua dimensione sarebbe 120.000 per 120.000, che è impossibile da gestire con una sola macchina. Inoltre, i loadings (autovettori) saranno estremamente grandi e dovrebbero essere archiviati in un formato sparso.
Grazie mille per qualsiasi aiuto!
Nota: utilizzo una macchina con 24 GB di RAM e 8 core di CPU.
Non so se sia corretto al 100%, ma penso che MatLab possa fare il lavoro. – Anton
Se non trovi alcuna gioia qui, potrebbe valere la pena chiedere su http://stats.stackexchange.com/ – NPE
@aix Grazie per i tuoi consigli, l'ho spostato nella beta della scienza computazionale e mi sono utile suggerimenti. Puoi anche seguirlo in questo [URL] (http://scicomp.stackexchange.com/questions/2313/apply-pca-on-very-large-sparse-matrix) –