Estou executando uma tarefa de classificação de texto com R e 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%). Agora, quero reduzir a dimensionalidade utilizando o PCA (Principal Component Analysis). Infelizmente, R não pode lidar com essa matriz enorme, então eu armazeno essa matriz esparsa em um arquivo no "Matrix Market Format", esperando usar algumas outras técnicas para executar o PCA.
Então, alguém poderia me dar algumas dicas para bibliotecas úteis (qualquer que seja a linguagem de programação), que poderiam fazer o PCA com essa matriz de grande escala com facilidade ou fazer um PCA de mão longa sozinho, ou seja, calcular a matriz de covariância primeiro e calcule 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 principais, responsáveis por 90% de variação . Obviamente, neste caso, eu tenho que dar um limiar a priori para definir alguns valores de variância muito pequenos para 0 (na matriz de covariância), caso contrário, a matriz de covariância não será esparsa e seu tamanho será de 120.000 a 120.000, o que é impossível de manusear com uma única máquina. Além disso, os carregamentos (vetores próprios) 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.