L'analyse en composantes principales (ACP) est généralement expliquée via une décomposition propre de la matrice de covariance. Toutefois, cela peut également être effectué via une décomposition en valeurs singulières (SVD) de la matrice de données . Comment ça marche? Quel est le lien entre ces deux approches? Quelle est la relation entre SVD et PCA?
Ou, en d'autres termes, comment utiliser la SVD de la matrice de données pour effectuer une réduction de dimensionnalité?
Réponses:
Supposons que la matrice de données soit de taille , où représente le nombre d'échantillons et le nombre de variables. Supposons qu'il soit centré , c'est-à-dire que les moyennes des colonnes ont été soustraites et sont maintenant égales à zéro. n × p n pX n×p n p
Alors la matrice de covariance est donnée par . C'est une matrice symétrique et elle peut donc être diagonalisée: où est une matrice de vecteurs propres (chaque colonne est un vecteur propre) et est une matrice diagonale avec des valeurs propres dans l'ordre décroissant sur la diagonale. Les vecteurs propres sont appelés axes principaux ou directions principales des données. Les projections des données sur les axes principaux sont appelées composantes principales , également appelées scores PC.C C = X ⊤ X / ( n - 1 ) C = V L V ⊤ , V L λ i j j X V i i X Vp×p C C=X⊤X/(n−1)
Si nous effectuons maintenant une décomposition en valeurs singulières de , nous obtenons une décomposition où est une matrice unitaire et est la matrice diagonale de valeurs singulières . A partir de là, on peut facilement voir que ce qui signifie que les vecteurs singuliers droits sont les directions principales et que les valeurs singulières sont liées aux valeurs propres de la matrice de covariance viaX = U S V ⊤ , UX
Résumer:
Autres liens
Quelle est la relation intuitive entre SVD et PCA - un fil très populaire et très similaire sur math.SE.
Pourquoi PCA de données au moyen de SVD des données? - une discussion sur les avantages de réaliser une PCA via SVD [réponse courte: stabilité numérique].
PCA et Analyse de correspondance dans leur relation avec Biplot - PCA dans le contexte de certaines techniques congénériques , toutes basées sur la SVD.
La SVD présente-t-elle un avantage par rapport à la PCA? - une question demandant s'il y avait des avantages à utiliser SVD au lieu de PCA [réponse courte: question mal posée].
Donner un sens à l'analyse en composantes principales, aux vecteurs propres et aux valeurs propres - ma réponse donne une explication non technique de l'ACP. Pour attirer l'attention, je reproduis une figure ici:
la source
J'ai écrit un extrait de Python & Numpy qui accompagne la réponse de @ amoeba et je le laisse ici au cas où il serait utile à quelqu'un. Les commentaires sont principalement tirés de la réponse de @ amoeba.
la source
Permettez-moi de commencer par PCA. Supposons que vous avez n points de données composés de d nombres (ou dimensions) chacun. Si vous centrez ces données (soustrayez le point de données moyen de chaque vecteur de données ), vous pouvez empiler les données pour créer une matrice.μ xi
La matrice de covariance
mesures dans quelle mesure les différentes coordonnées dans lesquelles vos données sont données varient ensemble. Il n’est donc peut-être pas surprenant que l’ACP - conçue pour capturer la variation de vos données - puisse être donnée en termes de matrice de covariance. En particulier, la décomposition en valeurs propres de s’avère êtreS
où est la ième composante principale , ou PC, et est la ième valeur propre de et est égale à la variance des données le long du ième PC. Cette décomposition découle d'un théorème général en algèbre linéaire, et un travail doit être effectué pour motiver le relatino à l'APC.vi i λi i S i
SVD est un moyen général de comprendre une matrice en termes d’espace colonne et rangée. (C'est un moyen de réécrire n'importe quelle matrice en termes d'autres matrices avec une relation intuitive à l'espace des lignes et des colonnes.) Par exemple, pour la matrice nous pouvons trouver les directions et dans le domaine et la plageA=(1021) ui vi
Vous pouvez les trouver en considérant comment tant que transformation linéaire, transforme une sphère unité dans son domaine en une ellipse: les demi-axes principaux de l'ellipse alignés sur le et le sont leurs pré-images.A S ui vi
Dans tous les cas, pour la matrice de données ci-dessus (en réalité, définissez simplement ), SVD nous permet d’écrireX A=X
où et sont des ensembles de vecteurs orthonormés.Une comparaison avec la décomposition en valeurs propres de révèle que les "vecteurs singuliers droits" sont égaux aux PC, les "vecteurs singuliers droits" sont{ v i } S v i{ui} {vi} S vi
et les "valeurs singulières" sont liées à la matrice de données viaσi
Il est un fait général que les vecteurs singuliers couvrent l'espace des colonnes de . Dans ce cas particulier, nous donne une projection échelonnée des données sur la direction de la ième composante principale. Les vecteurs singuliers de gauche couvrent en général l’espace de rangée de , ce qui nous donne un ensemble de vecteurs orthonormés qui recouvrent les données de la même manière que les ordinateurs personnels. x u i x i v i xui X ui X i vi X
Je vais dans quelques détails plus et avantages de la relation entre PCA et SVD dans cet article plus long .
la source