Journal du développeur

Simplifier la data pour mieux l’analyser, c’est possible !

28 avril 2021

Vous le savez, la data est au cœur de l’économie du XXIème siècle. Malgré tout, parfois, le nombre de données apporte de la complexité et donc des situations problématiques. Plus le nombre de dimensions est importantes, plus il va être compliqué d’interpréter ces données. C’est là qu’intervient l’Analyse en Composantes Principales, ou ACP, qui va permettre de réduire le nombre de dimensions afin d’avoir une interprétation plus simple ou plus propre.

Explications de la part de Philippe Poirier, Data Scientist chez Easy Partner actuellement en mission chez IT-CE.

L’ACP se base sur la capacité humaine à traiter des données. Vous connaissez tous ce principe de simplification sans pour autant connaitre son nom.

Alors, l’ACP, c’est quoi ?!?

Lorsque l’on veut étudier les données d’une entreprise, il n’est pas rare d’avoir un jeu de données avec un grand nombre de dimensions (colonnes). En théorie, plus on a de dimensions sur une observation, meilleure serait notre façon de décrire celle-ci.

Plusieurs difficultés peuvent apparaître. En tant qu’êtres humains, nous évoluons dans un monde en 3 dimensions (Longueur, Largeur, Hauteur), on a alors du mal à se représenter des objets dont la dimension est supérieure à 3. Plus compliqué encore, sur un support papier ou numérique, nous avons du mal à nous représenter un objet en 3D et préférons souvent un objet en 2D !

C’est là qu’intervient l’Analyse en Composantes Principales, ou ACP pour les intimes (PCA en anglais). C’est une méthode mathématique qui va nous permettre d’automatiser la réduction du nombre de dimensions !

L’intérêt de réduire le nombre de dimensions d’un jeu de données est multiple. Voici quelques usages courants :

  • Permet de représenter des objets en 2D (de manière générale, augmente la visibilité et l’explicabilité).
  • Permet de simplifier les algorithmes qui vont traiter ces données (par exemple, en passant d’un jeu de données avec 100 dimensions à un jeu de données avec 10 dimensions, on aura 10 fois moins de calculs et opérations à effectuer !).
  • Permet de réduire le bruit sur nos données.
  • Permet d’obtenir des variables décorrélées.

 

Comment ça fonctionne ?

 

Vous ne le savez sûrement pas, mais vous avez probablement déjà réalisé une ACP de manière inconsciente !

Lorsque l’on procède à une réduction du nombre de dimensions, on appelle ça une projection. Le terme n’est pas choisi au hasard, et on peut penser par exemple à des ombres chinoises.

Une ombre chinoise est une projection d’un objet en 3 dimensions vers un objet en 2 dimensions. C’est donc clairement un exemple d’ACP !

 

En quoi consiste l’ACP ?

 

Souvent, une petite quantité d’informations suffit à rendre compréhensible notre objet, tandis que d’autres informations vont apporter du détail, de la nuance. Pour les personnes qui dessinent, c’est le principe d’un croquis. Un croquis comporte le nombre minimal de traits nécessaires pour faire comprendre notre dessin. On peut ensuite si on le désire ajouter des ombres, des couleurs, des textures mais ce n’est pas nécessaire à la compréhension globale.

L’idée de l’ACP est, dans un premier temps, de considérer notre jeu de données sur l’ensemble de ses dimensions et de regarder les endroits avec le plus de variance, c’est à dire les endroits où se concentre le maximum d’informations.

Pour imager, disons qu’on a notre dessin final, et on cherche à le simplifier au maximum en faisant un croquis à partir de ce dessin.

C’est à dire qu’on cherche à garder seulement les informations qui sont strictement nécessaires à la compréhension de notre jeu de données.

Une fois que nous avons identifié les informations pertinentes, nous allons créer de nouvelles dimensions en combinant celles déjà présentes afin de compresser au maximum l’information dans ces dimensions.

Revenons à nos ombres chinoises pour mieux comprendre !

Si on vous demande de faire l’ombre d’un donut, vous avez tout un tas de possibilités dans l’orientation de votre lampe. En revanche, il y a des orientations plus pertinentes que d’autres. Une orientation de profil n’aura que peu d’intérêts car l’ombre ne nous permettra pas de comprendre l’objet initial. Tandis qu’une orientation sur le dessus sera suffisante pour comprendre que nous avons l’ombre d’un donut !

Nous venons de faire une ACP. Nous avons effectué une projection d’un objet en 3 dimensions vers un objet en 2 dimensions tout en cherchant le meilleur angle pour garder le minimum d’information nécessaire.

Lorsque nous travaillons avec un jeu de données, la méthode s’occupe pour nous de chercher le meilleur angle. C’est bien pratique !

 

 

Concrètement, ça donne quoi ?

 

L’ACP est donc une méthode mathématique. L’algorithme est déjà implémenté dans la majorité des outils qui permettent de faire de la data science. Il faut uniquement fournir les bonnes données en entrée et adapter les paramètres selon votre problématique. Bien sûr, Il est aussi possible de reprogrammer l’algorithme à la main mais les implémentations proposées ont déjà été étudiées et optimisées pour prendre le moins de ressource (ressource temps et ressource machine).

On peut trouver l’implémentation la plus utilisée en python ici : https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

En guise d’exemple, on peut utiliser le jeu de données très connu « Iris dataset »:

 

Chaque ligne représente une fleur (Iris) avec ses caractéristiques botaniques et sa variété (3 variétés : Versicolor, Virginica, Setosa).

Les fleurs sont caractérisées par 4 dimensions. On aimerait compresser l’information pour la représenter en 2D et mieux pouvoir étudier ces variétés. Voici les résultats de la PCA, chaque couleur représentant une variété.

 

Nos coordonnées ne représentent plus quelque chose de tangible (c’est une combinaison des coordonnées initiales), en revanche quelque chose d’intéressant ressort : en combinant les dimensions d’origines pour garder le maximum d’information, un schéma apparait qui permet de séparer les variétés de fleurs facilement. Et donc il est possible de s’en servir pour prédire à quelle variété appartient une fleur juste en regardant ses caractéristiques botaniques.

On n’aurait sûrement pas pu voir ce schéma caché dans nos données en prenant seulement nos dimensions initiales. En bonus, la méthode nous indique qu’en utilisant 2 dimensions (au lieu de 4), on a gardé environ 98% de l’information contenue dans les données, donc on n’a pas à hésiter dans ce cas-là !

 

C’est merveilleux, mais…

 

Il y a tout de même des limites à cette méthode, dont deux principales.

La première est que nous créons de nouvelles dimensions à partir d’une combinaison des anciennes.

 

 

Nous avons effectivement réduit le nombre de dimensions, mais en contrepartie nous avons deux nouvelles dimensions qui ne correspondent à aucune valeur intelligible. Nous ne savons pas à quoi ces dimensions correspondent, et donc il peut devenir difficile d’en interpréter les résultats sans d’autres méthodes adaptées.

La deuxième est que nous devons faire un compromis. En compressant nos données, nous gardons seulement une partie de l’information. On doit alors choisir où est-ce qu’on met le seuil. Est-ce qu’on préfère garder un peu plus d’information et donc moins réduire le nombre de dimension, ou est-ce qu’on préfère beaucoup réduire le nombre de dimension et donc garder moins d’information ? Tout va dépendre du contexte.

En conclusion, l’ACP sert dans beaucoup de situations. Elle permet de réduire le bruit dans nos mesures. Elle permet d’avoir des visualisations plus intuitives, qui peuvent notamment mettre en avant des schémas qui seraient passés inaperçus sans. Elle permet de simplifier les algorithmes et la mémoire nécessaire en réduisant énormément le nombre de dimensions. C’est une méthode qui est peu coûteuse en ressource (comparée à d’autres). C’est toujours intéressant de comparer nos résultats avec et sans. Enfin, comparée à d’autres méthodes, elle nous permet de choisir exactement le nombre de dimensions à obtenir grâce une mesure qui nous indique le pourcentage d’information gardée par dimension.

L’ACP est donc un outil que tout Data Scientist devrait savoir maîtriser car il permet de résoudre bien des situations !

Retrouvez nos autres articles Data :

R , le langage pour la data

Comprendre le Big Data

L'auteur Privé : Philippe Poirier

Data Scientist

Privé : Philippe Poirier
Postuler à l'annonce Postuler à toutes les annonces Ingénieur système linux orienté web
Remplissez le formulaire
C'est tout bon

On vous recontact au plus vite !
En attendant, vous pouvez toujours consulter nos autres jobs !

rotate screen

Retourner votre tablette pour une meilleure navigation