À combien de dimensions réduire lors de la réalisation de l'ACP?

12

Comment choisir K pour PCA? K est le nombre de dimensions à projeter. La seule exigence est de ne pas perdre trop d'informations. Je comprends que cela dépend des données, mais je cherche plus un aperçu général simple sur les caractéristiques à considérer lors du choix de K.

pr338
la source
Cela dépend de la perte de données tolérable, ainsi que de l'énoncé du problème!
Dawny33
Je suis d'accord avec les deux réponses ci-dessous. Cependant, savez-vous qu'il existe un moyen simple de quantifier la perte d'informations, c'est-à-dire en utilisant la diagonale de SVD de la matrice de covariance?
Yuqian

Réponses:

13

Après avoir exécuté l'algorithme PCA, vous obtenez les principaux composants, triés selon la quantité d'informations qu'ils contiennent. Si vous conservez l'ensemble, aucune information n'est perdue. En les supprimant un par un et en les projetant sur l'espace d'origine, vous pouvez calculer la perte d'informations. Vous pouvez tracer cette perte d'informations par rapport au nombre de composants principaux supprimés et voir si cela fait un «coude» là où cela a du sens. Cependant, cela dépend en grande partie de votre cas d'utilisation.

Jan van der Vegt
la source
(+1) Ouais, aussi simple que ça :)
Dawny33
3

Je vérifie normalement le pourcentage des informations détenues par la valeur K. Disons que sur 8 champs, 2 d'entre eux détiennent 90% des informations. Il est alors inutile d'inclure les 6 ou 5 autres champs. Si vous connaissez des données mnistes, sur 768 entrées, je n'en ai utilisé que 250, ce qui a fait passer ma précision de 83 à 96%. Le fait est que plus la dimensionnalité pose plus de problème. Alors coupez-les. Je ne prends généralement que K qui ne détient que 90% des informations, et cela fonctionne pour moi.

Amanuel Negash
la source
Salut .. J'ai un problème similaire où j'aimerais utiliser x% d'informations et je ne sais pas comment faire? J'ai l'intention d'utiliser l' IPCA pour ce faire, je peux laisser les n_components = None mais comment puis-je décider quelles sont les fonctionnalités qui ont x% des données?
Arsenal Fanatic