Le noyau PCA avec noyau linéaire est-il équivalent au PCA standard?

17

Si dans le noyau PCA, je choisis un noyau linéaire , le résultat sera-t-il différent du PCA linéaire ordinaire ? Les solutions sont-elles fondamentalement différentes ou existe-t-il une relation bien définie?K(X,y)=Xy

tgoossens
la source

Réponses:

27

Résumé: le noyau PCA avec noyau linéaire est exactement équivalent au PCA standard.

Soit la matrice de données centrée de taille N × D avec D variables dans les colonnes et N points de données dans les lignes. La matrice de covariance D × D est alors donnée par XX / ( n - 1 ) , ses vecteurs propres sont les axes principaux et les valeurs propres sont les variances PC. En même temps, on peut considérer la matrice dite de Gram X X de la taille N × N. Il est facile de voir qu'il a les mêmes valeurs propres (c'est-à-dire les variances PC) jusqu'aux n - 1XN×DDND×DXX/(n1)XXN×Nn1 et ses vecteurs propres sont les principaux composants mis à l'échelle de la norme unitaire.

C'était le PCA standard. Maintenant, dans le noyau PCA, nous considérons une fonction qui mappe chaque point de données vers un autre espace vectoriel qui a généralement une plus grande dimensionnalité D n e w , peut-être même infinie. L'idée du noyau PCA est de réaliser le PCA standard dans ce nouvel espace.ϕ(x)Dnew

La dimensionnalité de ce nouvel espace étant très grande (ou infinie), il est difficile, voire impossible, de calculer une matrice de covariance. Cependant, nous pouvons appliquer la deuxième approche à l'ACP décrite ci-dessus. En effet, la matrice de Gram sera toujours de la même taille gérable . Les éléments de cette matrice sont donnés par ϕ ( x i ) ϕ ( x j ) , que nous appellerons fonction du noyau K ( x i , x j ) = ϕ ( x i ) ϕ ( x j )N×Nϕ(xi)ϕ(xj)K(xi,xj)=ϕ(xi)ϕ(xj). C'est ce qu'on appelle l' astuce du noyau : on n'a en fait jamais besoin de calculer , mais seulement K ( ) . Les vecteurs propres de cette matrice de Gram seront les principaux composants de l'espace cible, ceux qui nous intéressent.ϕ()K()

La réponse à votre question devient maintenant évidente. Si , alors la matrice de Gram du noyau se réduit à X X qui est égale à la matrice de Gram standard, et donc les composants principaux ne changeront pas.K(x,y)=xyXX

Une référence très lisible est Scholkopf B, Smola A et Müller KR, Kernel principal component analysis, 1999 , et notez que, par exemple, dans la figure 1, ils font explicitement référence à l'ACP standard comme celle utilisant le produit scalaire comme fonction du noyau:

noyau PCA

amibe dit réintégrer Monica
la source
étaient ces photos dans votre réponse? D'un livre?
Pinocchio
@ Pinocchio, le chiffre est tiré de Scholkopf et al. papier, référencé et lié à dans ma réponse.
amibe dit Réintégrer Monica le
"Il est facile de voir qu'il a les mêmes valeurs propres (c'est-à-dire les variances PC) jusqu'au facteur n-1 " - cela ne signifie-t-il pas qu'elles ne sont pas alors complètement équivalentes? Disons que j'ai une matrice avec n = 10 échantillons, d = 200 dimensions. Dans PCA standard, je serais en mesure de projeter les données à 199 dimensions si je le souhaitais, mais dans le noyau PCA avec noyau linéaire, je ne peux que jusqu'à 10 dimensions.
Cesar
1
@Cesar, non, si vous avez n = 10 échantillons, la matrice de covariance aura le rang 10-1 = 9 et l'APC standard ne trouvera que 9 dimensions (ainsi que l'APC du noyau). Voir ici: stats.stackexchange.com/questions/123318 .
amibe dit Réintégrer Monica le
Je reçois un fichier introuvable pour le lien de référence de Scholkopf B, Smola A et Müller KR.
pbible
5

XN×NX=UΣVUXXX=UΣ2U a les mêmes vecteurs singuliers gauches et donc les mêmes composantes principales.

Martha White
la source
Pour l'ACP standard, je pensais que nous nous soucions de la SVD de la matrice de covariance, donc je ne comprends pas vraiment en quoi la SVD de X est pertinente, pouvez-vous développer?
m0s
@ m0s Pour l'ACP, nous nous soucions de la composition par équigène de la matrice de covariance que nous effectuons habituellement par la SVD de la matrice de données (centrée).
MrDrFenner
1

Il me semble qu'un KPCA avec un noyau linéaire devrait être le même qu'un PCA simple.

La matrice de covariance à partir de laquelle vous allez obtenir les valeurs propres est la même:

linearKPCAmatrix=1lj=1lK(xj,xj)=1lj=1lxjxjT=PCAmatrix

Vous pouvez vérifier avec plus de détails ici .

Jundiaius
la source
3
K(Xje,Xj)