Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

24 votos

¿Cómo elegir un número óptimo de factores latentes en la factorización de matrices no negativas?

Dada una matriz Vm×n , Factorización de matrices no negativas (NMF) encuentra dos matrices no negativas Wm×k y Hk×n (es decir, con todos los elementos 0 ) para representar la matriz descompuesta como:

VWH,

por ejemplo exigiendo que no sean negativos W y H minimizar el error de reconstrucción

¿Existen prácticas comunes para estimar el número k en NMF? ¿Cómo podría utilizarse para ello, por ejemplo, la validación cruzada?

15voto

zowens Puntos 1417

Para elegir un número óptimo de factores latentes en la factorización de matrices no negativas, utilice la validación cruzada.

Como usted escribió, el objetivo de NMF es encontrar de baja dimensión \mathbf W y \mathbf H con todos los elementos no negativos minimizando el error de reconstrucción \|\mathbf V-\mathbf W\mathbf H\|^2 . Imaginemos que omitimos un elemento de \mathbf V por ejemplo V_{ab} y realizar el NMF de la matriz resultante con una celda faltante. Esto significa encontrar \mathbf W y \mathbf H minimizando el error de reconstrucción sobre todas las celdas no perdidas: \sum_ {ij\ne ab} (V_{ij}-[\mathbf W\mathbf H]_{ij})^2.

Una vez hecho esto, podemos predecir el elemento que queda fuera V_{ab} por ordenador [\mathbf W\mathbf H]_{ab} y calcular el error de predicción e_{ab}=(V_{ab}-[\mathbf W\mathbf H]_{ab})^2. Se puede repetir este procedimiento omitiendo todos los elementos V_{ab} de uno en uno, y sumar los errores de predicción de todos los a y b . Esto dará como resultado un valor global PRESS (suma de cuadrados residuales previstos) E(k)=\sum_{ab}e_{ab} que dependerá de k . Esperemos que la función E(k) tendrá un mínimo que podrá utilizarse como "óptimo". k .

Tenga en cuenta que esto puede ser costoso computacionalmente, porque el NMF tiene que repetirse para cada valor omitido, y también puede ser difícil de programar (dependiendo de lo fácil que sea realizar el NMF con valores omitidos). En PCA se puede evitar esto omitiendo filas completas de \mathbf V (que acelera mucho los cálculos), véase mi respuesta en ¿Cómo realizar la validación cruzada del ACP para determinar el número de componentes principales? pero aquí no es posible.

Por supuesto, aquí se aplican todos los principios habituales de la validación cruzada, por lo que se pueden omitir muchas celdas a la vez (en lugar de sólo una), y/o repetir el procedimiento sólo para algunas celdas aleatorias en lugar de hacer un bucle sobre todas las celdas. Ambos enfoques pueden ayudar a acelerar el proceso.

Editar (Mar 2019): Véase este magnífico artículo ilustrado de @AlexWilliams : http://alexhwilliams.info/itsneuronalblog/2018/02/26/crossval . Alex utiliza https://github.com/kimjingu/nonnegfac-python para NMF con valores perdidos.

6voto

Jonathan Puntos 11

Que yo sepa, hay dos buenos criterios: 1) el coeficiente de correlación cofenética y 2) la comparación de la suma residual de cuadrados con los datos aleatorios para un conjunto de rangos (tal vez exista un nombre para eso, pero no lo recuerdo).

  1. Coeficiente de correlación cofenética: Se repite el NMF varias veces por rango y se calcula la similitud de los resultados. En otras palabras, cómo de estables son los clusters identificados, dado que la semilla inicial es aleatoria. Elige el K más alto antes de que caiga el coeficiente cofenético.

  2. RSS frente a datos aleatorios Para cualquier enfoque de reducción de la dimensionalidad, siempre hay una pérdida de información en comparación con los datos originales (estimada por RSS). Ejecute ahora el NMF para aumentar K y calcule el RSS tanto con su conjunto de datos original como con un conjunto de datos aleatorio. Al comparar el RSS en función de K, el RSS disminuye al aumentar K en el conjunto de datos original, pero esto ocurre menos en el caso del conjunto de datos aleatorizado. Al comparar ambas pendientes, debe haber un K en el que se crucen. En otras palabras, cuánta información podría permitirse perder (=K más alto) antes de estar dentro del ruido.

Espero haber sido lo suficientemente claro.

Edición: He encontrado esos artículos.

1.Jean-P. Brunet, Pablo Tamayo, Todd R. Golub y Jill P. Mesirov. Metagenes and molecular pattern discovery using matrix factorization. En Proceedings of the National Academy of Sciences of the USA, 101(12): 4164-4169, 2004.

2.Attila Frigyesi y Mattias Hoglund. Non-negative matrix factorization for the analysis of complex gene expression data: identification of clinically relevant tumor subtypes. Cancer Informatics, 6: 275-292, 2008.

0voto

Adam Chance Puntos 8

En la factorización NMF, el parámetro k (anotado r en la mayor parte de la literatura) es el rango de la aproximación de V y se elige de forma que k < \text{min}(m, n) . La elección del parámetro determina la representación de sus datos V en una base sobrecompleta compuesta por las columnas de W ; el w_i \text{ , } i = 1, 2, \cdots, k . El resultado es que los rangos de las matrices W y H tienen un límite superior de k y el producto WH es una aproximación de bajo rango de V También k como máximo. De ahí la elección de k < \text{min}(m, n) debe constituir una reducción de la dimensionalidad en la que V puede generarse/espaciarse a partir de los vectores base mencionados.

Encontrará más información en el capítulo 6 del este libro por S. Theodoridis y K. Koutroumbas.

Tras la minimización de su elegido con respecto a W y H la elección óptima de k , ( elegidos empíricamente trabajando con diferentes subespacios de características) debería dar V^* una aproximación de V con características representativas de su matriz de datos inicial V .

Trabajar con diferentes subespacios de características en el sentido de que, k el número de columnas en W , es el número de vectores base en el subespacio NMF. Y empíricamente trabajando con diferentes valores de k equivale a trabajar con diferentes espacios de características de dimensionalidad reducida.

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