ACP : Analyse en Composantes Principales

L’ACP (Analyse en composantes principales et Principal Component Analysis en anglais) est une méthode d’analyse de données qui permet de résumer l’information d’un dataset. C’est un algorithme utilisé pour analyser les corrélations dans un dataset et pour réduire le nombre de dimensions d’un problème. L’ACP est utilisée surtout dans les phases d’exploration et de préparation des données. C’est une méthode que j’aime beaucoup. C’est une des premières méthodes que j’ai étudié en cours et c’est à ce moment là que j’ai vraiment découvert le potentiel du Machine Learning.

Qu’est ce qu’une Analyse en Composantes Principales ?

L’analyse en composantes principales fait partie des méthodes d’analyse factorielle. Ces méthodes ont pour but de simplifier vos données et réduire le nombre de variables. Elle est facile à reconnaitre, vous avez surement déjà vu un cercle des corrélations comme celui-ci. C’est entre autres ce visuel sous forme de cercle qui va vous aider à comprendre les corrélations existantes au sein de vos données. On ne peut pas représenter nos données sur plus de 3 axes. L’ACP va nous aider à nous approcher d’une vision d’ensemble de nos données. Et si c’est visuel et facile forcément on aime ❤️.

Exemple de cercle des corrélations dans une ACP

Concrètement, une ACP va vous permettre de :

  1. Analyser les corrélations entre les variables de votre dataset
  2. Mieux comprendre vos données avec des résultats visuels
  3. Réduire le nombre de variables de votre dataset en créant de nouvelles variables (combinaisons linéaires des variables initiales).

Quand avez vous besoin d’une ACP ?

L’analyse en composants principales est rarement une fin en soi. C’est plutôt un algorithme qu’on utilise quand on fait de l’exploration de données ou en data prep avant d’appliquer une autre méthode.

Voici les cas pour lesquels je vous conseille d’utiliser l’ACP :

  • Vous avez une dataset avec beaucoup de colonnes : cela peut avoir un impact négatif sur la performance de vos algorithmes. Vous allez donc appliquer une ACP pour réduire le nombre de variables (je vous explique comment juste après).
  • Votre dataset contient des données corrélées : vous en êtes au début de vos analyses et vous vous demandez s’il existe des variables corrélées dans votre dataset (pour en retirer certaines dans votre modèle par exemple). L’ACP est la méthode parfaite pour ça. Cet algorithme va afficher un cercle des corrélations qui vous aidera à comprendre très rapidement quelles sont les variables corrélées.
  • Vous avez des corrélations importantes au sein de vos données : maintenant c’est sûr vous avez que certaines de vos variables sont corrélées voir même très corrélées… il est nécessaire de traiter le problème. L’analyse en composantes principales créé des dimensions qui vont venir remplacer vos anciennes variables. L’avantage c’est que ces dimensions sont classées de celle qui apporte le plus d’information à celle qui en apporte le moins. Vous allez donc pouvoir conserver que les 1eres dimensions qui sont celles qui réunissent le plus d’information.
  • Vous devez calculer une segmentation (avec des algorithmes non supervisés). Dans ce cas là on optimise les résultats en réduisant le nombre de variables. Cela permet de supprimer le bruit dans les données. Les segments sont alors plus clairs et faciles à comprendre en général.

Comment fonctionne cet algorithme ?

Je n’ai pas prévu de vous présenter les formules ni le concept de factorisation des matrices. Pourquoi ? Parce que ce n’est pas ce qui m’intéresse quand je cherche à comprendre le fonctionnement d’un algorithme. J’ai appris (peut être comme vous d’ailleurs) la partie mathématique qui se cache derrière tout ça quand j’étais en cours. Pour autant, les matrices et les formules ne permettent pas toujours de bien comprendre comment fonctionne un algorithme.

Si vous êtes vraiment fan de Mathématiques je ne vous oublie pas, voici quelques liens qui vont vous plaire :

Pour comprendre l’idée derrière l’Analyse en Composantes Principales nous allons utiliser un exemple très simple en 2 dimensions. On prend 12 individus pour lesquels on connait l’âge et le salaire et on les représente sur un graphique. Evidemment avec 2 variables c’est très simple mais on garde en tête que l’objectif d’une ACP c’est de simplifier les informations avec bien plus de variables.

Données pour faire une Analyse en composantes principales

Au lieu d’utiliser le salaire et l’âge l’ACP va chercher à construire de nouvelles variables (combinaison linéaire des variables initiales) qui permettent d’expliquer plus d’informations.

1er axe de l’Analyse en composantes principales

On cherche une première variable qui permettra de résumer le plus possible le salaire et l’âge. C’est à dire un axe pour lequel la variance des projections des points sur cet axe soit maximal. On part du centre de gravité du nuage de point et on cherche donc l’axe qui explique le mieux les données.

Regardez ce que ça donne avec 2 exemples d’axes :

Exemple d'axe ACP : analyse en composantes principales

Ce premier exemple montre l’axe qui explique le mieux les 2 variables, on distingue mieux les points avec cet axe qu’avec le 2e exemple.

Exemple de construction d'axe dans une Analyse en composantes principales

Avec ce 2e axe, on résume moins d’informations. Notamment pour les premiers points, on voit qu’il est plus difficile de les différencier. Dans notre exemple c’est le 1er axe qui serait retenu puisque c’est celui dont la variance des projections est la plus élevée. On parle de la composante principale.

2e axe de l’Analyse en composantes principales

On cherche maintenant le 2e axe principal (une ACP a autant d’axes que de variables). Celui-ci doit être orthogonal au premier axe et expliquer au mieux le nuage de point. Dans notre cas en 2 dimensions c’est assez simple.

Présentation des 2 axes de l'Analyse en composantes principales

Notre ACP est terminé, nous avons identifié 2 axes principaux. Le 1er axe est celui qui permet de résumer le mieux le nuage de point. L’ACP produit plusieurs autres résultats qui vont nous aider à comprendre nos données.

Comment interpréter les résultats d’une ACP ?

Le cercle des corrélations

Le résultat le plus visuel que fournit cette méthode factorielle c’est le cercle des corrélations. On représente 2 composantes principales et on projette les variables sur ces 2 axes. Cela nous permet de comprendre quelles sont les variables qui contribuent le plus à la construction de chaque composante. Rappelez vous, les composantes principales sont des combinaisons linéaires de vos variables initiales.

En général on commence par représenter les variables sur les 2 premiers axes qui sont ceux qui résument le plus d’informations.

Interprétation du cercle de corrélations

Comment lire et utiliser le cercle des corrélations ?

La première chose à savoir c’est que toutes les variables vont être représentées mais vous ne pourrez pas tirer de conclusions pour toutes ces variables. Seules celles dont les flèches arrivent près du cercle peuvent être interprétées. Si on prend le 1er axe (horizontal) on voit que la variable âge est la plus proche et a une flèche suffisamment longue. On en déduit que la variable âge contribue fortement à la construction du 1er axe. Idem pour la variable salaire mais le fait que sa flèche soit moins longue prouve qu’elle contribue moins. On en déduit aussi que ces 2 variables âge et salaire sont corrélées.

Pour le 2e axe (vertical) on fait la même conclusion pour la variable région, elle contribue fortement à la construction de la 2e composante

En revanche on ne peut pas conclure que la variable région et la variable CSP sont corrélées négativement. Leurs flèches sont toutes les 2 proches du 2e axe et partent en sens inverse mais la flèche de la variable CSP n’est pas assez longue pour que l’on puisse conclure quoi que ce soit sur cet axe.

Concrètement comment savoir si je peux interpréter une variable ?

Le cosinus carré

Le cosinus carré d’une variable permet de définir la qualité de la représentation de cette variable. Comme nous l’avons vu précédemment, les variables les plus proches du cercle des corrélations sont celles qui sont significatives.

Prenons l’exemple de la variable région pour calculer sa contribution sur le 1er axe.

Calcul du cosinus carré dans une analyse en composantes principale

Le cosinus de l’angle entre cette variable et le 1er axe est égal au côté adjacent divisé par l’hypoténuse. Soit dans notre exemple a/h. On obtient donc un cosinus carré qui sera proche de 0. Ce qui nous montre bien que la variable Région est mal représentée sur le 1er axe.

La variable âge quant à elle aura un cosinus carré beaucoup plus élevé (proche de 1) pour le 1er axe.

Calcul du cosinus carré dans une ACP

Pour savoir si vous pouvez considérer une variable sur un axe 2 possibilités s’offrent donc à vous :

  • Regarder directement le cercle des corrélations et la proximité des variables avec le cercle
  • Lire les cosinus carrés et s’assurer qu’ils soient proches de 1

Utiliser une Analyse en composantes principales pour réduire le nombre de dimensions

L’ACP peut être utilisée de manière descriptive pour mieux comprendre les corrélations qui existent entre les données. Mais généralement elle est surtout utilisée pour réduire le nombre de dimensions d’un problème. Concrètement vous avez à votre disposition un dataset avec beaucoup de variables. Il existe nécessairement des corrélations dans ce jeux de données et vous avez donc des répétitions, des informations présentes plusieurs fois. Même si cela n’est pas visible directement.

Dans ce cas l’ACP va permettre de réorganiser toutes les informations en priorisant sous forme d’axes. L’ACP va créer un premier axe (combinaison linéaire des variables) qui synthétisera le plus d’informations possible. Puis un second, puis un troisième… Une fois tous les axes créés l’ACP vous donnent également l’information sur la part d’informations restituée pour chaque axe.

Pour réduire le nombre de dimensions du problème vous allez utiliser, non pas vos données initiales mais les 1ers axes de l’ACP. En général on cherche à conserver environ 80% de l’information. Cela permet de réduire le nombre de variables mais surtout de réduire le « bruit » dans les données.

Je vous conseille d’appliquer cette méthode avant d’utiliser une CAH pour créer une segmentation. Vous obtiendrez des résultats plus nets.

Pour conclure je dirais que l’ACP, c’est une méthode que l’on apprend en formation et que l’on utilise peu ensuite. Mais elle peut être très utile pour mieux comprendre un dataset et pour réduire le nombre de dimensions avant de construire une segmentation.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *