Déclaration du problème
Le problème géométrique que PCA essaie d’optimiser m’est clair: PCA essaie de trouver le premier composant principal en minimisant l’erreur de reconstruction (projection), ce qui maximise simultanément la variance des données projetées.
C'est vrai. J'explique le lien entre ces deux formulations dans ma réponse ici (sans math) ou ici (avec des maths).
Cw∥w∥=1w⊤Cw
(Juste au cas où cela ne serait pas clair: si est la matrice de données centrée, alors la projection est donnée par et sa variance est .)XXw1n−1(Xw)⊤⋅Xw=w⊤⋅(1n−1X⊤X)⋅w=w⊤Cw
Par ailleurs, un vecteur propre de est, par définition, tout vecteur tel que .CvCv=λv
Il s'avère que la première direction principale est donnée par le vecteur propre ayant la plus grande valeur propre. C'est une déclaration non triviale et surprenante.
Preuves
Si l’on ouvre un livre ou un tutoriel sur la PCA, on peut y trouver la preuve suivante, presque une ligne, de la déclaration ci-dessus. Nous voulons maximiser sous la contrainte que ; cela peut être fait en introduisant un multiplicateur de Lagrange et en maximisant ; en différenciant, on obtient , qui est l’équation du vecteur propre. On voit que doit en fait être la plus grande valeur propre en substituant cette solution à la fonction objective, ce qui donnew⊤Cw∥w∥=w⊤w=1w⊤Cw−λ(w⊤w−1)Cw−λw=0λw⊤Cw−λ(w⊤w−1)=w⊤Cw=λw⊤w=λλ . En raison du fait que cette fonction objectif doit être maximisée, doit être la plus grande valeur propre, QED.λ
Cela a tendance à ne pas être très intuitif pour la plupart des gens.
Une meilleure preuve (voir par exemple cette réponse soignée de @ cardinal ) dit que, puisque est une matrice symétrique, elle est diagonale dans sa base de vecteur propre. (Ceci est en fait appelé théorème spectral .) On peut donc choisir une base orthogonale, à savoir celle donnée par les vecteurs propres, où est diagonal et a des valeurs propres sur la diagonale. Dans cette base, simplifie en , ou en d'autres termes, la variance est donnée par la somme pondérée des valeurs propres. Il est presque immédiat que pour maximiser cette expression, il suffit de prendreCC w ⊤ C w Σ λ i w 2 i w = ( 1 , 0 , 0 , ... , 0 ) λ 1 w ⊤ C wCλiw⊤Cw∑λiw2iw=(1,0,0,…,0), c’est-à-dire le premier vecteur propre, générant une variance (s’écarter de cette solution et "échanger" des parties de la plus grande valeur propre pour les parties de valeurs plus petites ne fera que réduire la variance globale). Notez que la valeur de ne dépend pas de la base! Passer à la base de vecteur propre équivaut à une rotation. En 2D, on peut donc imaginer simplement faire tourner un morceau de papier avec le diagramme de dispersion; évidemment cela ne peut changer aucun écart.λ1w⊤Cw
Je pense que cet argument est très intuitif et très utile, mais il repose sur le théorème spectral. Je pense donc que la vraie question est la suivante: quelle est l’intuition qui se cache derrière le théorème spectral?
Théorème spectral
Prenez une matrice symétrique . Prenons son vecteur propre avec la plus grande valeur propre . Faites de ce vecteur propre le premier vecteur de base et choisissez d'autres vecteurs de base de manière aléatoire (de sorte qu'ils soient tous orthonormés). À quoi ressemblera dans cette base?Cw1λ1C
Il aura dans le coin supérieur gauche, parce que dans cette base et doit être égal à .λ1w1=(1,0,0…0)Cw1=(C11,C21,…Cp1)λ1w1=(λ1,0,0…0)
Par le même argument, il y aura des zéros dans la première colonne sous le .λ1
Mais comme il est symétrique, il aura aussi des zéros dans la première ligne après . Donc ça va ressembler à ça:λ1
C=⎛⎝⎜⎜⎜⎜λ10⋮00…0⎞⎠⎟⎟⎟⎟,
où espace vide signifie qu'il y a un bloc d'éléments. Parce que la matrice est symétrique, ce bloc sera également symétrique. Nous pouvons donc lui appliquer exactement le même argument, en utilisant efficacement le deuxième vecteur propre en tant que deuxième vecteur de base, et en obtenant et sur la diagonale. Cela peut continuer jusqu'à ce que soit diagonal. C'est essentiellement le théorème spectral. (Notez comment cela fonctionne uniquement parce que est symétrique.)λ1λ2CC
Voici une reformulation plus abstraite du même argument.
Nous savons que , le premier vecteur propre définit donc un sous-espace à une dimension dans lequel agit comme une multiplication scalaire. Prenons maintenant tout vecteur orthogonal à . Ensuite, il est presque immédiat que soit également orthogonal à . En effet:Cw1=λ1w1Cvw1Cvw1
w⊤1Cv=(w⊤1Cv)⊤=v⊤C⊤w1=v⊤Cw1=λ1v⊤w1=λ1⋅0=0.
Cela signifie que agit sur tout le sous-espace restant orthogonal à sorte qu'il reste séparé de . C'est la propriété cruciale des matrices symétriques. Ainsi, nous pouvons y trouver le plus grand vecteur propre, , et procéder de la même manière, en construisant finalement une base orthonormée de vecteurs propres.Cw1w1w2