Estoy haciendo una tarea de clasificación de texto con R, y obtengo una matriz de términos de documentos con un tamaño de 22490 por 120,000 (solo 4 millones de entradas distintas de cero, menos del 1% de entradas). Ahora quiero reducir la dimensionalidad utilizando PCA (Análisis de componentes principales). Desafortunadamente, R no puede manejar esta enorme matriz, por lo que almaceno esta matriz dispersa en un archivo en el "Formato de mercado de matriz", con la esperanza de utilizar algunas otras técnicas para hacer PCA.
Entonces, ¿alguien podría darme algunas sugerencias para bibliotecas útiles (cualquiera que sea el lenguaje de programación), que podrían hacer PCA con esta matriz a gran escala con facilidad, o hacer un PCA de larga data por mí mismo, en otras palabras, calcular la matriz de covarianza al principio, y luego calcule los valores propios y los vectores propios para la matriz de covarianza .
Lo que quiero es calcular todas las PC (120,000) y elegir solo las mejores PC N, que representan una variación del 90% . Obviamente, en este caso, tengo que dar un umbral a priori para establecer algunos valores de varianza muy pequeños a 0 (en la matriz de covarianza), de lo contrario, la matriz de covarianza no será escasa y su tamaño sería de 120,000 por 120,000, que es imposible de manejar con una sola máquina. Además, las cargas (vectores propios) serán extremadamente grandes y deben almacenarse en formato disperso.
Muchas gracias por la ayuda !
Nota: Estoy usando una máquina con 24 GB de RAM y 8 núcleos de CPU.