19 votos

¿Cuáles son eficientes algoritmos para calcular la descomposición de valor singular (SVD)?

El artículo de la Wikipedia sobre el análisis de componentes principales de los estados que

Algoritmos eficientes que existen para calcular el SVD de a $X$ sin tener que forman la matriz $X^TX$, por lo que el cómputo de la enfermedad vesicular porcina es ahora el estándar para calcular un análisis de componentes principales a partir de una matriz de datos, a menos que sólo un puñado de componentes que son necesarios.

Podría alguien decirme qué son los algoritmos eficientes que el artículo está hablando? No hay ninguna referencia dado (o la URL de la referencia a un artículo en el que propone esta forma de cálculo sería bueno).

17voto

usεr11852 Puntos 5514

El principal caballo de trabajo detrás del cálculo de la SVD es el algoritmo QR. Después de haber dicho que hay muchos tipos diferentes de algoritmos para calcular la descomposición de valor singular de un genérico $M$a$N$ matriz $A$. Un gran esquemática sobre el tema disponible aquí (a partir de la documentación de Intel MKL) es la siguiente: enter image description here

Como se puede ver, dependiendo de su caso de uso existen diferentes enfoques (la rutina de las convenciones de nomenclatura se puede encontrar aquí). Eso es porque, por ejemplo, hay la matriz de las formas, donde un padre de Familia de reducción puede ser más caro que una rotación de Givens (a nombre de dos "obvio" que la manera de llegar QR). Un estándar de referencia en la materia es Golub y Van Loan de la Matriz de Cálculos (me gustaría sugerir el uso de al menos la 3ra edición). También he encontrado Å. Björck de Métodos Numéricos para Problemas de mínimos Cuadrados muy buen recurso en la materia; mientras que la enfermedad vesicular porcina no es el enfoque principal del libro que ayuda a contextualizar el uso.

Si tengo que darte un consejo general en la materia es no tratar de escribir su propia enfermedad vesicular porcina algoritmos a menos que usted se haya tomado un par de clases de Álgebra Lineal Numérica ya y usted sabe lo que está haciendo. Sé que suena ilógico pero en realidad, no como una tonelada de cosas que pueden salir mal y que acabar con (en el mejor), sub-óptima de las implementaciones (si no mal). Hay algunos muy buenos gratis suites en la materia (por ejemplo. Eigen, Armadillo y Trilinos para nombrar unos pocos.)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X