2011-07-25 24 views
7

Me pregunto si alguien conoce una implementación java de descomposición de valores singulares (SVD) para matrices dispersas grandes. Necesito esta implementación para el análisis semántico latente (LSA).Implementación de Java de descomposición de valores singulares para grandes matrices dispersas

Probé los paquetes de UJMP y JAMA pero se ahogan cuando el número de fila> = 1000 y col> = 500. Si alguien puede indicarme un psuedocode o algo por el estilo, sería muy apreciado.

+2

La respuesta en [otra pregunta] (http://stackoverflow.com/questions/1750463/singular-value-decomposition-implementation) que era casi lo mismo era intentar [Colt] (http: //acs.lbl .gov/~ hoschek/colt /). –

+0

bueno, el código para la clase SingularValueDecomposition en Colt y JAMA es casi idéntico. además, el código solo funciona cuando m> n (número de filas es mayor que el número de columnas). también, creo que los algoritmos no están optimizados para matrices dispersas. – jake

+0

la condición m> n realmente no me molesta. de hecho, para mí, el 99,99% del tiempo, m> n, siempre será el caso (las filas representan palabras y cols representan los documentos). es solo que esta restricción no está claramente documentada. – jake

Respuesta

3

Hay un list of Java numerical libraries at Wikipedia. La biblioteca NIST, que es bastante buena, desafortunadamente no trata con matrices dispersas. No estoy muy familiarizado con los otros paquetes. Puede echar un vistazo al Colt; también es de muy alta calidad y maneja matrices dispersas para algunas operaciones; No sé sobre SVD, aunque me imagino que sí. También he escuchado que UJMP también merece una visita.

EDIT: Perdón por escuchar que UJMP no resuelve su problema. Había escuchado que valía la pena mirar.

+0

gracias. esa lista ayudó. si alguien está interesado, el paquete matemático Apache commons tiene una implementación SVD. itera solo 30 veces y arroja una excepción. profundizando un poco más en el código, no es evidente cómo aumentar esto (ya que hay clases dentro de las clases dentro de las clases). – jake

Cuestiones relacionadas