La méthode classique de l'analyse en composantes principales (ACP) consiste à le faire sur une matrice de données d'entrée dont les colonnes ont une moyenne nulle (alors l'ACP peut "maximiser la variance"). Ceci peut être réalisé facilement en centrant les colonnes. Cependant, lorsque la matrice d'entrée est clairsemée, la matrice centrée sera désormais plus clairsemée et - si la matrice est très grande - ne rentrera donc plus en mémoire. Existe-t-il une solution algorithmique pour le problème de stockage?
10
Réponses:
Oui c'est possible.
Si la matrice de données ne rentre pas dans la RAM, ce n'est pas encore la fin du monde: il existe des algorithmes efficaces qui peuvent travailler avec des données stockées sur un disque dur. Voir par exemple l'ACP randomisée comme décrit dans Halko et al., 2010, Un algorithme pour l'analyse en composantes principales de grands ensembles de données .
Dans la section 6.2, les auteurs mentionnent qu'ils ont essayé leur algorithme sur une matrice de données 400k fois 100k et que
Notez que c'était dans l'ancien temps des disques durs magnétiques; aujourd'hui, il existe des disques SSD beaucoup plus rapides, donc je suppose que le même algorithme fonctionnerait beaucoup plus rapidement.
Voir aussi ce vieux fil pour plus de discussion sur la PCA randomisée: Meilleur algorithme PCA pour un grand nombre de fonctionnalités (> 10K)? et cette grande revue de 2011 de Halko et al.: Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions .
la source