Aplique o PCA em uma matriz esparsa muito grande

Eu estou fazendo uma tarefa de classificação de texto com R, e eu obtenho uma matriz de termo de documento com tamanho 22490 por 120.000 (apenas 4 milhões de entradas diferentes de zero, menos de 1% de entradas). Agora quero reduzir a dimensionalidade utilizando o PCA (Principal Component Analysis). Infelizmente, o R não pode lidar com essa enorme matriz, então eu armazeno esta matriz esparsa em um arquivo no "Matrix Market Format", na esperança de usar algumas outras técnicas para fazer o PCA.

Então, alguém poderia me dar algumas dicas para bibliotecas úteis (qualquer que seja a linguagem de programação), que poderia fazer PCA com essa matriz em grande escala com facilidade, ou fazer um PCA por longo tempo sozinho, em outras palavras,calcular a matriz de covariância em primeiro lugar, e depois calcular os autovalores e autovetores para a matriz de covariância.

O que eu quero écalcular todos os PCs (120.000) e escolher apenas os N PCs mais altos, que são responsáveis ​​por 90% de variação. Obviamente, neste caso, eu tenho que dar um limiar a priori para definir alguns valores de variação muito pequenos para 0 (na matriz de covariância), caso contrário, a matriz de covariância não será esparsa e seu tamanho seria 120.000 por 120.000, o que é impossível lidar com uma única máquina. Além disso, os loadings (autovetores) serão extremamente grandes e devem ser armazenados em formato esparso.

Muito obrigado por qualquer ajuda !

Nota: Estou usando uma máquina com 24 GB de RAM e 8 núcleos de cpu.

questionAnswers(4)

yourAnswerToTheQuestion