Accueil / Factory / Algos ML / ACP — factory / algos ML / apprentissage non supervisé

ANALYSE EN COMPOSANTES PRINCIPALES.

L'analyse en composantes principales résume plusieurs variables corrélées en quelques axes qui gardent l'essentiel de l'information. On l'utilise pour voir une base d'un coup d'œil, comprendre quelles variables vont ensemble et préparer un clustering ou un modèle.

Réduction de dimensionVisualisationNon superviséDonnées numériquesNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceQualité du résumé : excellente si les variables sont corrélées
InterprétabilitéLes axes se lisent via les corrélations, avec un peu de pratique
VitesseUn calcul matriciel, instantané sur des millions de lignes
Facilité de réglageUn seul vrai choix : le nombre d'axes à garder
Tolérance aux données brutesStandardisation requise, sensible aux extrêmes et aux manquants
EN 30 SECONDES

Photographier une théière en 2D. Selon l'angle, on reconnaît tout de suite l'objet ou on ne voit qu'un disque. L'ACP cherche l'angle de vue qui montre le plus de relief.

1. On met les variables à la même échelle

Chaque variable est centrée et réduite (moyenne 0, écart-type 1). Sinon, celle qui a les plus grands chiffres, comme la récence en jours, impose sa direction.

2. On cherche la direction qui étale le plus les clients

Le premier axe est la combinaison des variables qui résume le plus de variance. Le deuxième fait de même avec ce qui reste, en étant perpendiculaire au premier, donc sans redire la même chose.

3. On garde les premiers axes et on les nomme

La variance expliquée dit combien d'information chaque axe conserve. Les corrélations entre variables et axes disent ce que chaque axe représente.

LE CAS MÉTIER

connaissance client · retail / e-commerce / banque
EN ENTRÉE

5 indicateurs de comportement par client

Panier moyen, achats par mois, jours depuis le dernier achat, nombre de catégories achetées, part des achats en promotion. Cinq colonnes difficiles à regarder ensemble.

EN SORTIE

Une carte en 2 axes de la base

Sur ce jeu, le premier axe garde environ 77 % de l'information. Il oppose les clients qui achètent souvent, cher et dans beaucoup de rayons à ceux qui achètent peu, en promo, et pas récemment. C'est un axe d'engagement, qui peut servir de score unique. Le second axe, environ 13 %, apporte une nuance secondaire.

CE QU'ON MESURE

La variance expliquée cumulée

Les deux premiers axes gardent ici environ 90 % de l'information : la carte est fidèle. Sous 60 à 70 %, une carte en 2D déforme trop la base et il faut regarder plus d'axes avant de conclure.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Beaucoup de variables numériques corrélées à résumer avant de les présenter
  • Visualiser une base clients ou produits sur une seule carte
  • Préparer un K-means : retirer les redondances et le bruit
  • Construire un score synthétique à partir de plusieurs indicateurs

NON

  • Variables qualitatives (questionnaires, catégories) : utiliser une ACM
  • Structures non linéaires (groupes enroulés, amas complexes) : essayer t-SNE ou UMAP pour la visualisation
  • Variables peu corrélées entre elles : chaque axe ne résume qu'une variable, le gain est nul
  • Prédire une cible : l'ACP ignore la cible, les axes retenus ne sont pas forcément les plus prédictifs
LES 3 CHOIX QUI COMPTENT

L'ACP n'a pas d'hyperparamètre à optimiser, mais trois décisions changent la lecture. Noms donnés pour R (prcomp) et Python (scikit-learn).

scale. = TRUE / StandardScaler

Standardiser avant l'ACP. Sans cela, les variables aux grands nombres dominent les axes. On ne s'en passe que si toutes les variables sont dans la même unité.

Nombre d'axes / n_components

On garde les axes jusqu'à 70 à 90 % de variance cumulée, ou ceux dont la valeur propre dépasse 1 (critère de Kaiser). On regarde aussi où la courbe des variances fait un coude.

Lecture : corrélations et contributions

Les corrélations variable/axe donnent le sens de l'axe. Les contributions disent quelles variables l'ont construit. Le signe d'un axe est arbitraire : R et Python peuvent donner des axes inversés, la lecture reste la même.

LE CODE MINIMAL

jeu d'exemple : clients_segmentation.csv ↓
# Profil clients : ACP en R
clients <- read.csv("clients_segmentation.csv")
vars <- c("panier_moyen", "achats_par_mois", "recence_jours", "nb_categories", "part_promo")

# ACP sur variables standardisées (scale. = TRUE)
acp <- prcomp(clients[, vars], scale. = TRUE)

# Variance expliquée par axe, et cumulée
print(round(summary(acp)$importance, 3))

# Corrélations entre variables et axes : ce qui donne son sens à chaque axe
print(round(cor(clients[, vars], acp$x[, 1:2]), 2))

# Contribution de chaque variable à la construction des axes (en %)
print(round(100 * acp$rotation[, 1:2]^2, 1))

# Coordonnées des clients sur les 2 axes, réutilisables comme scores
clients$axe1 <- acp$x[, 1]
clients$axe2 <- acp$x[, 2]
print(head(clients))

QUESTIONS FRÉQUENTES

Comment interpréter les axes d'une ACP ?

On regarde la corrélation de chaque variable avec l'axe. Les variables fortement corrélées, positivement ou négativement, donnent son sens à l'axe. Si le panier et la fréquence sont à +0,9 et la récence à -0,9, l'axe mesure l'engagement du client.

Combien d'axes garder dans une ACP ?

Assez pour conserver l'essentiel de l'information, souvent 70 à 90 % de variance cumulée. Le critère de Kaiser garde les axes dont la valeur propre dépasse 1 sur données standardisées. Un axe qu'on ne sait pas interpréter n'aide pas à décider.

Faut-il standardiser les données avant une ACP ?

Oui dès que les variables ont des unités différentes, ce qui est le cas le plus courant. En R, prcomp(scale. = TRUE). En Python, StandardScaler avant PCA, qui ne fait que centrer les données.

LES ALGOS VOISINS

à comparer avant de choisir
pour les variables qualitatives

Analyse des correspondances (AFC / ACM)

Le même principe appliqué aux tableaux de catégories. L'outil de référence des enquêtes et questionnaires.

Voir la fiche →
pour les structures non linéaires

UMAP

Une carte 2D qui garde les voisinages même quand les données sont enroulées. Plus puissante pour voir des groupes, mais ses axes n'ont pas de sens.

Voir la fiche →
l'étape suivante

K-means

On segmente souvent sur les premiers axes de l'ACP : moins de bruit, pas de variables en double.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →