Étant donné une matrice , la factorisation matricielle non négative (NMF) trouve deux matrices non négatives et (c'est-à-dire avec tous les éléments ) pour représenter la matrice décomposée comme:
Existe-t-il des pratiques courantes pour estimer le nombre en NMF? Comment, par exemple, la validation croisée pourrait-elle être utilisée à cette fin?
cross-validation
unsupervised-learning
latent-variable
matrix-decomposition
nnmf
Steve Sailer
la source
la source
Réponses:
Pour choisir un nombre optimal de facteurs latents dans la factorisation matricielle non négative, utilisez la validation croisée.
Comme vous l'avez écrit, le NMF a pour objectif de trouverW et H faible dimension avec tous les éléments non négatifs minimisant l'erreur de reconstruction ∥V−WH∥2 . Imaginez que nous omettons un élément de V , par exemple Vab , et effectuons la NMF de la matrice résultante avec une cellule manquante. Cela signifie trouver W et H minimisant l'erreur de reconstruction sur toutes les cellules non manquantes: ∑ij≠ab(Vij−[WH]ij)2.
Une fois cela fait, nous pouvons prédire l'élément laissé de côtéVab en calculant [WH]ab et calculer l'erreur de prédiction eab=(Vab−[WH]ab)2. On peut répéter cette procédure en omettant tous les éléments Vab un à la fois, et résumer les erreurs de prédiction sur tous les a et b . Cela se traduira par une valeur de PRESSE globale (somme résiduelle prévue des carrés) E(k)=∑abeab qui dépendra dek . Espérons que la fonctionE(k) aura un minimum qui pourra être utilisé commek «optimal».
Notez que cela peut être coûteux en calcul, car le NMF doit être répété pour chaque valeur omise, et peut également être difficile à programmer (selon la facilité avec laquelle il est possible d'effectuer NMF avec des valeurs manquantes). Dans PCA, on peut contourner cela en omettant des lignes complètes deV (ce qui accélère beaucoup les calculs), voir ma réponse dans Comment effectuer une validation croisée pour PCA pour déterminer le nombre de composants principaux? , mais ce n'est pas possible ici.
Bien sûr, tous les principes habituels de la validation croisée s'appliquent ici, donc on peut laisser de nombreuses cellules à la fois (au lieu d'une seule) et / ou répéter la procédure pour seulement certaines cellules aléatoires au lieu de boucler sur toutes les cellules. Les deux approches peuvent aider à accélérer le processus.
Edit (mars 2019): Voir cette très belle rédaction illustrée par @AlexWilliams : http://alexhwilliams.info/itsneuronalblog/2018/02/26/crossval . Alex utilise https://github.com/kimjingu/nonnegfac-python pour NMF avec des valeurs manquantes.
la source
À ma connaissance, il existe deux bons critères: 1) le coefficient de corrélation cophénétique et 2) la comparaison de la somme résiduelle des carrés avec des données randomisées pour un ensemble de rangs (peut-être qu'il y a un nom pour cela, mais je ne me souviens pas)
Coefficient de corrélation cophénétique: vous répétez NMF plusieurs fois par rang et vous calculez la similitude des résultats. En d'autres termes, quelle est la stabilité des grappes identifiées, étant donné que la graine initiale est aléatoire. Choisissez le K le plus élevé avant que le coefficient cophénétique ne baisse.
RSS contre des données randomisées Pour toute approche de réduction de dimensionnalité, il y a toujours une perte d'informations par rapport à vos données d'origine (estimée par RSS). Maintenant, effectuez NMF pour augmenter K et calculez RSS avec votre ensemble de données d'origine et un ensemble de données randomisé. Lorsque l'on compare RSS en fonction de K, le RSS diminue avec l'augmentation de K dans le jeu de données d'origine, mais c'est moins le cas pour le jeu de données randomisé. En comparant les deux pentes, il devrait y avoir un K là où elles se croisent. En d'autres termes, combien d'informations pourriez-vous vous permettre de perdre (= K le plus élevé) avant d'être dans le bruit.
J'espère que j'ai été assez clair.
Edit: j'ai trouvé ces articles.
1.Jean-P. Brunet, Pablo Tamayo, Todd R. Golub et Jill P. Mesirov. Découverte de métagènes et de modèles moléculaires par factorisation matricielle. In Proceedings of the National Academy of Sciences of the USA, 101 (12): 4164-4169, 2004.
2.Attila Frigyesi et Mattias Hoglund. Factorisation matricielle non négative pour l'analyse de données d'expression génique complexes: identification de sous-types de tumeurs cliniquement pertinents. Cancer Informatics, 6: 275-292, 2008.
la source
Dans la factorisation NMF, le paramètre (noté r dans la plupart des publications) est le rang de l'approximation de V et est choisi tel que k < min ( m , n ) . Le choix du paramètre détermine la représentation de vos données V dans une base trop complète composée des colonnes de W ; le w i , i = 1 , 2 , ⋯ , k . Le résultat est que les rangs des matrices W et H ont une limite supérieure dek r V k<min(m,n) V W wi , i=1,2,⋯,k W H et le produit W H est une approximation de bas rang de V ; aussi k au plus. Par conséquent, le choix de k < min ( m , n ) devrait constituer une réduction de dimensionnalité où V peut être généré / étendu à partir des vecteurs de base susmentionnés.k WH V k k<min(m,n) V
De plus amples détails peuvent être trouvés dans le chapitre 6 de ce livre de S. Theodoridis et K. Koutroumbas.
Après minimisation de votre fonction de coût choisie par rapport à et H , le choix optimal de k ( choisi empiriquement en travaillant avec différents sous-espaces de caractéristiques) devrait donner V ∗ , une approximation de V , avec des caractéristiques représentatives de votre matrice de données initiale V .W H k V∗ V V
Travailler avec différents sous-espaces d'entités en ce sens que, le nombre de colonnes dans W , est le nombre de vecteurs de base dans le sous-espace NMF. Et travailler empiriquement avec différentes valeurs de k équivaut à travailler avec différents espaces d'entités à dimension réduite.k W k
la source