ACP

Bonjour:

Ceci est il juste?
Supposons que l'on étudie $p$ variables quantitatives sur un échantillon de $n$ individus . Si l'on se place donc dans $\R^p$ on peut tracer un nuage de points où chaque individu est identifié par un point de $\R^p$. Néanmoins dès lors que l'on dépasse la dimension 2 voir 3 nous ne sommes plus capable de nous faire une représentation visuelle du problème.

Or si l'on imagine que notre nuage de points de $\R^p$ s'étale approximativement selon un plan (2 dimensions) plongé dans $\R^p$ c'est qu'il y a sans doute 2 directions privilégiées sur lesquelles on souhaite projeter notre nuage de points.

Le problème se ramène donc à trouver parmis tous les plans plongés dans $\R^p$ celui qui se trouve à distance (au sens des moindres carrés) minimale du nuage de point.

Mathématiquement si l'on modélise nos donnée par la matrice $X\in M_{n,p}$ celà revient à chercher l'espace vectoriel $H$ de dimension 2 dont la matrice de projection orthogonaleassociée ${P_H}:=argmin_{P \text{ tel que }P^tP=I_p}\ \|X'-PX'\|^2$

Réponses

  • Oui, c'est une première idée.

    Mais il arrive que deux dimensions principales ne donnent qu'une piètre idée de la situation.

    Cordialement.
  • Mais ce n'est pas parce que le nuage de points peut éventuellement se représenter par deux dimensions que c'est forcément via projection sur un plan.

    Il y a beaucoup d'autres outils de visualisation de données en haute dimension que la PCA, à commencer par la kernel PCA ou bien t-SNE, qui ont l'avantage d'être non linéaires, c'est-à-dire de ne pas faire cette supposition de projection sur un espace vectoriel.

    Par ailleurs l'utilisation de la bonne métrique est un vrai problème. En soi rien ne privilégie la distance $L^2$ si ce n'est la commodité des calculs. Ainsi il peut être nécessaire d'apprendre une métrique ou des features adaptées à partir des données, avant d'appliquer des outils plus sommaires de visualisation.

    On peut aussi faire tout en un, en end-to-end, avec des méthodes d'apprentissage profond.

    Tout cela pour dire que le sujet de la visualisation des données est vaste.

    Quelques ressources : https://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction
  • En fait je viens de trouver ce document: http://bertrand.michel.perso.math.cnrs.fr/Enseignements/5MS04/ACP-AFC-ACM.pdf
    mais je ne comprends pas bien ; j'ai l'impression qu'il y a un problème de dimension pour la svd. En principe On décompose X=VDU' avec V et U des matrices carrés ( https://fr.wikipedia.org/wiki/Décomposition_en_valeurs_singulières )? Ici elles sont rectangulaires et les dimensions ne conincident pas...
  • @Skyffer: merci pour le lien! Les notions de géométrie différentielles sont elles avancées ? Ils parlent de "manifold" (variété je crois); du coup quel est le bagage géométrique à connaître pour comprendre ce sujet passionnant ? (pas pour maintenant car j'ai des choses plus basiques à comprendre en priorité).*


    PS: @Skyffer: HS: est ce qu'un compte Git à plus d'intérêt qu'un simple compte dropbox si l'objectif est de rendre public certains programmes ?
    PS2: @Administrateur: est il possible de mettre une option pour avoir un email lorsqu'une réponse à un fil est posté ? [Edit: ok j'ai trouvé en fait!: icone suivre cette discussion]
  • Le nom "manifold" en machine learning n'a que peu voir avec la variété mathématique. C'est un abus de langage, pour dire que les données reposent sur une surface de dimension $p$ par rapport à leur espace ambiant de dimension $n$. C'est une approximation mais la réalité est différente, les données n'appartiennent pas à une sous-variété en vrai.

    Par ailleurs, quand on lit le mot manifold learning, en fait même si on cherchait à apprendre une "vraie" variété les algorithmes de manifold learning n'y arriveraient pas. Parce que contrairement à l'essence même de la géométrie différentielle, les algos de manifold learning apprennent une paramétrisation globale et non un atlas de cartes locales.

    Néanmoins, des connaissances en géométrie différentielle voire riemannienne, bien que complètement dispensables, peuvent être utiles. A la fois pour la compréhension des choses (si tout le monde maîtrisait la géométrie diff personne n'aurait appelé le manifold learning comme cela), et aussi pour certaines techniques pointues de recherche. La géométrie différentielle reste cependant largement plus utilisée en computational geometry qu'en machine learning, où il est très loin d'être un pré-requis.
    dfshr8 a écrit:
    est ce qu'un compte Git à plus d'intérêt qu'un simple compte dropbox si l'objectif est de rendre public certains programmes ?
    Oui largement.
  • Quel est le rapport avec la SVD ? En quoi notre problème de minimisation au sens des moindre carrés se ramène à un problème de décomposition SVD ? Quelle propriété utilise t'on ?
  • La SVD donne la solution analytique à la PCA. Il y a autant de pdf que tu veux là-dessus, cherche en anglais. Elle donne aussi la solution aux moindres carrés linéaires.
  • Hum j'ai quand même du mal à comprendre. Je ne connais les moindre carré que dans le cadre de la regression linéaire multiple.

    Le problème est le suivant: on cherche $Argmin_{\beta \in R^p} \|Y-X\beta\|^2$ (avec $X\in M_{n,p}, Y \in R^n$) ce qui est équivalent à chercher la projection de $Y$ sur l'espace vectoriel engendré par les colonnes de la matrice $X$. Dans ce cas "l'estimateur des moindres carrés" doit vérifier l' équation normale suivante: $(X'X)\beta=X'Y$.

    Plusieurs cas surviennent:

    1- $dim(X)=p=min(n,p)$ (ie) les $p$ vecteurs colonnes de $X$ sont libres. Alors $X'X$ est de rang $p$ et donc inversible (je crois qu'on dit aussi de 'rang plein' sans certitude)
    2- $dim(X)=r<min(n,p)$ ( $p >n$ où $r<p\leq n$) (ie) certaines colonnes de $X$ sont liées (dès lors $X'X$ n'est pas inversible) néanmoins on peut toujours projeter $Y$ sur les colonnes de $X$ même si plusieurs combinaisons linéaires des colonnes de $X$ conviendront. Est ce dans ce cas que la notion de SVD intervient ? Comment intervient elle ?


    Quand j'aurai compris ce qui précède j'essaierai de faire le lien avec http://bertrand.michel.perso.math.cnrs.fr/Enseignements/5MS04/ACP-AFC-ACM.pdf mais je trouve ça plus dur que prévu pour de l'algèbre linéaire...
  • Bonjour.

    Les calculs matriciels effectués lors d'une Analyse en Composantes Principales supposent que les différentes variables ont une influence additive sur le résultat. Evidemment, si l'on suppose que le "résultat" est une fonction différentiable des "facteurs", et que le domaine très petit, cela est à peu près vérifié. Dans tous les autres cas, il ne faut pas espérer de miracles. Un exemple intéressant à étudier est $z=x \times y + bruit$ sur $[1;3]\times [1;3]$.

    Cordialement, Pierre.
  • Etant donné que je n'ai rien trouvé qui me convienne sur le sujet j'ai commencé à écrire ceci:
    https://snag.gy/G0Ary4.jpg
    En revanche ça ne me donne toujours pas le lien entre l' ACP et la SVD...
  • Bonsoir personne ne sait faire le lien entre la "soit disant équivalence" du problème ?

    1) Quel est le rapport entre
    - chercher l'espace vectoriel $H$ dont la matrice de projection orthogonale : $P_H=Argmin_{P \in \mathcal{P}}\ \sum_{i=1}^n\|x^i-Px^i\|^2$
    - le théorème de Eckart-Young: $\|X-X_d\|_F^2=min_{dim(B)=d}\|X-B\|_F$ http://bertrand.michel.perso.math.cnrs.fr/Enseignements/5MS04/ACP-AFC-ACM.pdf
  • 2) De plus est ce que $ \sum_{i=1}^n\|x^i-Px^i\|^2=\|X-PX\|_F^2$ ? (ça peut aider à faire le lien de la question 1) )
    Edit: je crois avoir trouvé; avec mes notations on peut réecrire $ \sum_{i=1}^n\|x^i-Px^i\|^2=\|X-XP^T\|_F^2$ on note que $P^T=P$ car $P$ projecteur orthogonal)


    PS: les lignes de X sont les $x_i^T$

    Edit: correction faite Poirot
  • Je n'ai pas suivi le fil, mais ta formule fait plutôt penser au carré d'une norme.
  • J'espère que ma question est claire; en attendant je me rabat sur la meilleure source trouvée pour le moment https://perso.univ-rennes1.fr/valerie.monbet/Cours_AD/Cours2017.pdf
  • Je crois que j'ai fait une erreur dès le début... du moins l'excellent document de Saporta [Modéré. Pas de téléchargement illégal de livres. Poirot] me le fait penser.

    Quel est "la meilleur représentation" du nuage de point dans un espace de dimension $k$ ?
    - le point de vue que j'ai adopté en première instance est le suivant: "Le problème se ramène donc à trouver parmis tous les plans plongés dans $\R^p$ celui qui se trouve à distance (au sens des moindres carrés) minimale du nuage de point." Ce qui nous amène à chercher une projection orthogonale du nuage de points
    - Pour Saporta puisque l'on sait qu'une projection est contractante, le meilleur moyen de préserver/approcher le nuage initiale consiste à chercher la projection (pas nécessairement orthogonale) qui maximise la moyenne de la distance entre les points projetés (pour conserver au mieux les distances entres les points du nuage initial).

    Est ce que les deux points de vue sont les mêmes ?
  • Une idée pour expliquer l'équivalence des deux points de vue ?
  • D'autres liens super :
    https://stats.stackexchange.com/questions/2691/making-sense-of-principal-component-analysis-eigenvectors-eigenvalues/140579#140579

    Cependant je suis étonné de voir qu'il n'y a aucun retour ?

    On a déjà vu par [large]P[/large]ythagore que maximiser la variance (où l'inertie) selon un axe donné est équivalent à trouver la projection orthogonalesur cet axe. Cependant ça n'explique toujours pas le lien avec le théorème matriciel de Eckart-Young...

    [Et pourquoi refuser la majuscule de Pythagore ? :-X AD]
  • Ceci est complètement faux: "${P_H}:=argmin_{P \text{ tel que }P^tP=I_p}\ \|X'-PX'\|^2$"
    La seule projection orthogonale qui vérifie $P^tP$ est l'identité (donc attention au vocabulaire et la confusion avec les matrices orthogonales). Une projection orthogonale est juste une projection dont la matrice est symétrique (égale à sa transposée).

    On cherche ${P_H}:=argmin_{P \text{ tel que }P^t=P=P^2} \sum_i \|x_i-Px_i\|^2=argmin_{P \text{ tel que }P^t=P=P^2} trace((X'-PX')(X-PX))$. Le dernier terme n'est autre que $argmin_{P \text{ tel que }P^t=P=P^2} \|X-PX\|_F^2$ où la dernière norme est celle de Froebenius, donnée pour le produit scalaire matriciel.

    Dans le livre de Shae Schalev on prouve même que la "meilleure" transformation linéaire (au sens de la reconstruction) est justement une projection orthogonale du type $P=UU^T$ avec $U^TU=I$ et $U\in R^{d,n}$.

    Maintenant je suis curieux de savoir si quelqu'un est cabale de donner une solution (avec preuve) de $argmin_{P \text{ tel que }P^t=P=P^2} \|X-PX\|_F^2$

    Quelques références utiles:
    http://www.xavierdupre.fr/app/mlstatpy/helpsphinx/c_ml/rn_9_auto.html#problem-acp
Connectez-vous ou Inscrivez-vous pour répondre.