• 15 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 12/08/2022

Cherchez les variables latentes qui expliquent vos données

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Dans la plupart des cas, les variables que nous utilisons pour représenter nos données correspondent à un nombre assez grand de quantités que l'on peut facilement mesurer sur ces données. Par exemple, on représente une image par les valeurs RGB de chacun de ses pixels ; ou les goûts d'un client par l'ensemble des produits qu'il a achetés.

Cependant, le phénomène que l'on cherche à expliquer pourrait souvent être prédit à partir d'un plus petit nombre de variables, mais qui sont elles plus difficiles à mesurer. Par exemple, plutôt que l'ensemble de ses transactions, une seule variable qui décrit si un client est végétarien ou non serait certainement très informative pour décider s'il faut lui proposer des bons de réduction pour le rayon charcuterie.  

La description « accessible » que nous avons de notre client, à savoir la liste de ses achats, est une fonction de cette variable (végétarien ou non) qui nous est cachée. On parle aussi souvent de variable latente. On peut considérer que le but de la réduction de dimension est de retrouver les variables cachées qui décrivent au mieux nos données, à partir des variables observées qui nous sont accessibles.

L’ACP est une factorisation de la matrice des données

Soit   XRp×n   représentant n observations en p dimensions. Fixons-nous un nombre K de composantes principales calculées par une ACP. Ces K composantes peuvent être représentées par une matrice   WRp×K  . Ainsi, la représentation réduite des n observations dans le nouvel espace de dimension K est donnée en projetant X sur les colonnes de W, autrement dit par   H=WX  .

La matrice  HRK×n  peut être interprétée comme la représentation latente de nos données, celle qu'on a cherché à découvrir grâce à l'ACP.

Comme les colonnes de W, étant les vecteurs propres de   XX  , sont des vecteurs orthonormés, on peut écrire   X=WH  . On a donc _factorisé_ la matrice de données X en deux termes : W qui définit de nouvelles dimensions, et H, que l'on appelle parfois les facteurs de X (« factors », en anglais), qui est la représentation latente des données.

Modélisation des relations de covariance entre les variables : l’analyse factorielle

Considérons maintenant que nos données, c'est-à-dire les observations x1,x2,xn   qui forment les colonnes de X, sont générées par un modèle 

xi=Whi+ϵ

où   hiRK   est une représentation latente de   xi   et   ϵ  du bruit gaussien :   ϵN(0,Ψ)   .

Supposons les données centrées en 0 : alors la moyenne de x, et donc de   Wh   , est 0, et sa covariance est celle de   Wh   , à savoir   WW   , plus celle de   ϵ  .

xN(0,WW+Ψ)

Si on considère que la covariance de   ϵ   est isotropique, autrement dit que Ψ=σ2I   , où I est la matrice identité. C'est cette formulation que l'on appelle ACP probabiliste, ou probabilistic PCA, en anglais.

Plus généralement, supposons maintenant que la matrice de covariance du bruit   Ψ  soit une matrice diagonale quelconque :    Ψ=diag(ψ1,ψ2,,ψp)  . Selon ce modèle, les variables observées (   xj  ,    j=1,,p  )  sont conditionnellement indépendantes étant données les valeurs des variables latentes (  hk  ,  k=1,,K  ). Ainsi, les variables latentes expliquent les corrélations entre les variables observées, tandis que chaque   ψj   décrit la variance spécifique à la variable   xj   correspondante.

On peut alors utiliser les données pour estimer les valeurs de   Ψ   et W par maximum de vraisemblance. C'est ce que l'on appelle l'analyse factorielle.

Dans l'analyse factorielle, nous ne faisons plus l'hypothèse que les nouvelles dimensions sont orthogonales. On peut ainsi en particulier se retrouver avec des dimensions dégénérées (des vecteurs colonnes de W dont toutes les entrées soient 0) et moins de dimensions qu'avec une ACP.

L'analyse factorielle est implémentée dans la classe Factor Analysis du module scikit-learn.decomposition  .

Cas des matrices non négatives : la factorisation non négative de matrices

Prenons maintenenant le cas où X représente les scores donnés par des spectateurs à des films.

Un exemple de scores données par 5 spectateurs à 4 films, sur une échelle de 1 à 5.
Un exemple de scores données par 5 spectateurs à 4 films, sur une échelle de 1 à 5.

Dans ce cas, une factorisation de   XRp×n   (p films, n spectateurs) sous la forme   WH   peut s'interpréter de la façon suivante :   HRK×n   représente les goûts des spectateurs selon K variables latentes (par exemple le genre du film, les acteurs, la période...), et   WRp×K   représente les films selon ces mêmes variables. Ainsi on pourrait expliquer le score donné par un spectateur à un film comme une combinaison du score donné « en interne » par le spectateur à différents aspects d'un film, et de la présence dans le film de ces mêmes aspects.

Cependant, cette interprétation est facilitée si, de même que les entrées de X, les entrées de W et de H sont toutes positives.

Dans ce cas, le problème de la réduction de dimension par factorisation de matrice est posé comme

argmin||XWH||2FWRp×K+,HRK×n+

On appelle ce problème la factorisation de matrice non négative, ou NMF pour « non-negative matrix factorization ». Ce problème peut être résolu par exemple par descente de gradient.

Cette méthode est très intéressante pour les systèmes de recommandation, car elle s'applique aussi dans les cas où les données contiennent des valeurs manquantes. Par exemple, le deuxième spectateur n'a pas vu Top Gun. Quel score lui donnerait-on ? Lui recommanderait-on de regarder ce film ?

On remplace alors   ||XWH||2F   par la somme sur les entrées connues de X des termes    (Xij(WH)ij)2  . On obtient ainsi une décomposition WH qui approxime X, et on peut utiliser les entrées correspondantes dans WH pour _prédire_ les valeurs manquantes de X.

La NMF est implémentée dans la classe NMF du module   scikit-learn.decomposition  .

Résumé

  • L'ACP peut être vue comme une factorisation de la matrice de données X=WH, où W contient les nouvelles variables et H la représentation latente des données selon ces variables.

  • Toute une famille de méthodes réduisent la dimension des données par une décomposition approximative, X≈WH.

  • L'analyse factorielle et l'ACP probabiliste sont issues de modèles génératifs utilisant la factorisation de la variable aléatoire x en Wh. Dans le cas de l'ACP probabiliste, on modélise la covariance du bruit comme étant un multiple de l'identité. Dans le cas de l'analyse factorielle, on estime la covariance du bruit indépendante dans chaque direction.

  • L'ACP cherche à maximiser la variance de X selon des directions orthogonales.

  • L'analyse factorielle cherche à modéliser la structure de la covariance des variables observées, et ne définit pas nécessairement des axes orthogonaux.

  • La NMF (factorisation non négative de matrice) s'applique à des matrices X dont les entrées sont toutes positives, et force les entrées de W et de H à être positives aussi. Elle permet aussi de prédire les valeurs manquantes de X.

Exemple de certificat de réussite
Exemple de certificat de réussite