Fonction objectif de l'ACP: quel est le lien entre maximiser la variance et minimiser l'erreur?


32

L'algorithme PCA peut être formulé en termes de matrice de corrélation (supposons que les données ont déjà été normalisées et que nous ne considérons que la projection sur le premier PC). La fonction objectif peut s'écrire:X

maxw(Xw)T(Xw)s.t.wTw=1.

C'est très bien, et nous utilisons des multiplicateurs lagrangiens pour le résoudre, c'est-à-dire le réécrire comme:

maxw[(Xw)T(Xw)λwTw],

ce qui équivaut à

maxw(Xw)T(Xw)wTw,

et donc ( voir ici sur Mathworld ) semble être égal à

maxwi=1n(distance from point xi to line w)2.

Mais cela dit de maximiser la distance entre le point et la ligne, et d'après ce que j'ai lu ici , c'est incorrect - ce devrait être min , pas max . Où est mon erreur?

Ou, quelqu'un peut-il me montrer le lien entre maximiser la variance dans l'espace projeté et minimiser la distance entre le point et la ligne?


Je pense que la distance minimale est utilisée pour répondre au critère d'orthogonalité pour les composants. Les points sont projetés dans les PC orthogonaux entre eux mais dans chaque composante successive la variance restante est maximisée.
Michael R. Chernick

Astuce: que se passe-t-il lorsque vous considérez d'abord la plus petite valeur propre, plutôt que la plus grande?
whuber

@whuber La plus petite valeur propre a probablement le PC qui est la solution à la fonction objectif finale. Mais ce PC ne maximise pas la fonction objectif d'origine.
Cam.Davidson.Pilon

2
Je ne sais pas trop ce que vous entendez par fonction d'objectif "finale" et "originale", Cam. PCA n'est pas (conceptuellement) un programme d'optimisation. Sa sortie est un ensemble de directions principales, pas seulement une. C'est un théorème mathématique (intéressant) que ces directions peuvent être trouvées en résolvant une séquence de programmes quadratiques contraints, mais ce n'est pas fondamental pour les concepts ou la pratique de l'ACP. Je suggère seulement qu'en se concentrant sur la plus petite valeur propre plutôt que sur la plus grande, vous pouvez concilier les deux idées de (1) minimiser les distances et (2) adopter une vue d'optimisation de l'ACP.
whuber

1
Ça va - votre réponse était la version sans erreur de ce que j'essayais de faire.
Cam.Davidson.Pilon

Réponses:


42

Soit une matrice de données centrée avec observations en lignes. Soit sa matrice de covariance. Soit un vecteur unitaire spécifiant un axe dans l'espace variable. Nous voulons que soit le premier axe principal. nXnΣ=XX/(n1)ww

Selon la première approche, le premier axe principal maximise la variance de la projection (variance de la première composante principale). Cette variance est donnée par leXw

Var(Xw)=wXXw/(n1)=wΣw.

Selon la deuxième approche, le premier axe principal minimise l'erreur de reconstruction entre et sa reconstruction , c'est-à-dire la somme des distances au carré entre les points d'origine et leurs projections sur . Le carré de l'erreur de reconstruction est donné par XXwww

XXww2=tr((XXww)(XXww))=tr((XXww)(XwwX))=tr(XX)2tr(XwwX)+tr(XwwwwX)=consttr(XwwX)=consttr(wXXw)=constconstwΣw.

Remarquez le signe moins avant le terme principal. Pour cette raison, minimiser l'erreur de reconstruction revient à maximiser , qui est la variance. Ainsi, minimiser l'erreur de reconstruction équivaut à maximiser la variance; les deux formulations donnent le même .wΣww


Quelque chose que j'ai remarqué, n'est-ce pas une fonction convexe (En ce qui concerne as is PSD? Comment se fait-il que nous essayions de le maximiser?wTΣwwΣ
Royi

@amoeba pouvez-vous expliquer comment vous passez de tr () à const dans la dernière étape?
alberto

1
@alberto Ce qui se trouve à l'intérieur de la trace est un nombre (matrice 1x1); une trace d'un nombre est ce nombre lui-même, de sorte que la trace peut être supprimée. La constante apparaît parce que est égal à , donc il y a ce facteur . ΣXX/n1/n
amibe dit Réintégrer Monica le

1
@Leullame Le calcul tiendra compte textuellement de s'il s'agit d'une matrice avec des colonnes orthonormées. Vous avez besoin de pour passer de la ligne # 3 à la ligne # 4. Si la matrice a des colonnes orthonormées, alors en effet sera une projection de sur le sous-espace couvert par les colonnes de (ici est un vecteur ligne). WWW=IWxWWxWx
amoeba dit Reinstate Monica

1
@ DanielLópez Eh bien, nous recherchons un sous-espace unidimensionnel minimisant l'erreur de reconstruction. Un sous-espace unidimensionnel peut être défini par un vecteur de norme unitaire pointant dans sa direction, ce qui est considéré comme . Il a la norme d'unité par construction. w
amoeba dit Reinstate Monica
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.