¿Conoces algún software que implemente cálculos de los últimos k vectores singulares de matriz dispersa de entrada? Solía ​​irlba, pero que yo sepa, solo calcula los primeros k vectores singulares

Yo estimaría los valores singulares más pequeños y los vectores singulares de la siguiente manera. Si encuentra esto útil en una aplicación del mundo real, ¡por favor envíeme su trabajo con los resultados!
Nota: Debe ser posible simplemente reemplazar la recursividad del cociente de Rayleigh en su rutina de valor singular k más grande con el cociente de Rayleigh inverso si tiene acceso al código fuente ……….
Aclamaciones
________________
Primero buenas y malas noticias:
Malo: el término disperso es como no lineal, ambos son la ausencia de algo, no lineal es, bueno, no lineal. Medios escasos; muchas entradas no contienen información (es decir, tienen cero entradas). Por lo tanto, una solución no funcionará de forma dispersa, de la misma forma que una solución no funciona de manera no lineal, en ambos casos la naturaleza específica de la “no” importa.
Bien: ¡debido a los problemas matemáticos anteriores como nosotros tenemos seguridad laboral !

Por lo tanto, le proporcionaré una solución para tres casos. Denote con A la matriz que supongo es cuadrada, y R la matriz de producto externa R = AA ‘. Finalmente denotar por lam los valores propios, de R, con lam (min) el más pequeño e igualmente sv denota los valores singulares de A. N denota la dimensión de A.
___________ casos _______
1) A está en bandas con la banda p << n.
En este caso, se puede usar rápidamente el método de iteración inversa de Rayleigh para encontrar los valores singulares más pequeños a través de la rotación de Givans . El libro de Golub y Vanloan ha funcionado. La complejidad es npn, es decir, cuadrática en n versículos cúbicos en n para matrices densas. Esta complejidad también es válida para lo siguiente.
La idea clave aquí es si tenemos una buena suposición, digamos x, para lam (min), entonces inv (R-xI) tiene el mayor valor propio 1 / (lam (min) -x). Golub y Van Loan discuten cómo revertir directamente en A usando este truco. Todos los siguientes trucos usan esta técnica, ¡así que estudie mucho!

2) Existe una matriz P tal que
PRP ‘tiene una banda limitada con p << n,
donde P es una matriz de permutación.
Podemos encontrar esta matriz de permutación rápidamente usando el algoritmo inverso de Cuthill McGee , que está disponible en matlab. Una vez que lo encontramos, el problema vuelve a 1) aplicando P a la resolución A y luego aplicando P ‘a los valores singulares resultantes.

3) La matriz R después de aplicar el Cuthill McGee está casi limitada a la banda con ancho de banda p, excepto por algunas “vetas” que se desangran en unas pocas filas y columnas. En este caso, use las rotaciones de Givans para suprimir las venas volviendo a 2)

4) ninguno de los anteriores se aplica, pero uno o más lo hacen después de encontrar un buen conjunto de bases y transformar los datos. Por supuesto, la transformación debe ser rápida y el resultado escaso o esto es una pérdida de tiempo. Pero a menudo en 3) si hay muchas vetas, la transformación simple (Fourier, etc.) en columnas y filas seleccionadas evidenciará la limitación de banda.
_______
Tenga en cuenta que desarrollé una herramienta con C Rader llamada Householder hiperbólica que a veces ayuda con estos problemas. Está disponible en las revistas ieee y Siam.

La razón por la cual se usan los primeros vectores singulares [math] k [/ math] es porque explican la mayor parte de la variación en los datos; es decir, los datos originales pueden reconstruirse linealmente a partir de estos vectores [matemáticos] k [/ matemáticos] mejor que otros conjuntos de vectores [matemáticos] k [/ matemáticos].

En contraste, los últimos pocos vectores generalmente se atribuyen al ruido y, por lo tanto, se eliminan del análisis. Si se encuentra en una situación en la que necesita los últimos vectores [matemáticos] k [/ matemáticos], entonces quizás desee utilizar un enfoque de reducción de dimensionalidad diferente.