Estoy haciendo una tarea de clasificación de texto con R, y obtengo una matriz de término de documento con tamaño 22490 por 120,000 (solo 4 millones de entradas distintas de cero, menos de 1% de entradas). Ahora quiero reducir la dimensionalidad utilizando PCA (análisis de componentes principales). Desafortunadamente, R no puede manejar esta gran matriz, por lo que almaceno esta matriz dispersa en un archivo en el "Formato Matrix Market", con la esperanza de utilizar algunas otras técnicas para hacer PCA.Aplicar PCA en matriz dispersa muy grande
Entonces, ¿podría alguien darme algunos consejos para las bibliotecas útiles (cualquiera que sea el lenguaje de programación), lo que podría hacer PCA con esta matriz a gran escala con facilidad, o hacer un PCA escritura a mano por mí mismo, en otras palabras, calcular el matriz de covarianza al principio, y luego calcular los valores propios y vectores propios para la matriz de covarianza.
Lo que yo quiero es calcular todos los PC (120.000), y elegir sólo los mejores PCs N, que representa el 90% de la varianza. Obviamente, en este caso, tengo que dar un umbral a priori para establecer algunos valores de varianza muy pequeños en 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 deberían almacenarse en formato disperso.
Muchas gracias por cualquier ayuda!
Nota: Estoy utilizando una máquina con 24GB de RAM y 8 núcleos de CPU.
No estoy seguro de si es 100% correcto, pero creo que MatLab puede hacer el trabajo. – Anton
Si no le agrada esto, podría valer la pena preguntar en http://stats.stackexchange.com/ – NPE
@aix Gracias por sus consejos, lo pasé a la versión beta de la ciencia computacional y obtuve algunos consejos útiles. consejos. También puede seguirlo en esta [URL] (http://scicomp.stackexchange.com/questions/2313/apply-pca-on-very-large-sparse-matrix) –