Aller au contenu principal

Module 6 — Analyse en composantes principales

Changement de famille : on quitte le partitionnement pour la réduction de dimension. La question n'est plus « quels groupes ? » mais « puis-je décrire ces données avec moins de variables sans perdre l'essentiel ? ». L'ACP est la réponse de référence, et l'un des outils les plus utilisés de toute la science des données.

Le problème : trop de variables, et redondantes

Cinquante variables décrivant un client posent trois difficultés concrètes : on ne peut rien visualiser au-delà de trois dimensions ; les distances perdent leur pouvoir discriminant (la malédiction de la dimension, qui mine k-moyennes et DBSCAN) ; et beaucoup de ces variables redisent la même chose — taille et poids, revenu et dépense, surface et nombre de pièces.

Cette redondance est précisément l'ouverture. Si deux variables sont fortement corrélées, une seule direction bien choisie suffit presque à les résumer toutes deux.

Ce que fait l'ACP : trouver les directions de variation dominantes

L'ACP cherche de nouveaux axes, appelés composantes principales, tels que :

  1. la première composante est la direction où les données varient le plus ;
  2. la deuxième est la direction de plus grande variation restante, perpendiculaire à la première ;
  3. et ainsi de suite.

Chaque composante est une combinaison linéaire des variables d'origine — c'est le produit matriciel du cours de mathématiques appliqué à un but précis. La contrainte de perpendicularité garantit que chaque nouvel axe apporte une information non déjà captée : les composantes sont décorrélées entre elles, la redondance a disparu.

En ne gardant que les premières composantes, on décrit les données avec beaucoup moins d'axes tout en conservant la majeure partie de leur variabilité. Techniquement, l'ACP diagonalise la matrice de covariance : les valeurs propres du cours de mathématiques mesurent la variance portée par chaque axe.

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

X_s = StandardScaler().fit_transform(X) # indispensable : voir l'avertissement
acp = PCA().fit(X_s)
acp.explained_variance_ratio_ # part de variance par composante
acp.explained_variance_ratio_.cumsum() # variance cumulee : la courbe a lire
Standardiser d'abord, sans exception

L'ACP maximise la variance, et la variance dépend des unités. Une variable en euros (variance énorme) accaparerait la première composante face à une variable en années, non par importance mais par choix d'unité. Sans standardisation préalable, une ACP est ininterprétable — et l'erreur est silencieuse, puisque le calcul aboutit malgré tout.

Choisir le nombre de composantes

La variance expliquée est le critère central : chaque composante en porte une part, et le cumul indique ce qu'on conserve. Trois façons de trancher, à choisir selon l'objectif :

CritèreRègleUsage
seuil de variancegarder assez de composantes pour 90 ou 95 %compression, prétraitement
coude de l'ébouliscourbe de variance expliquée par composante, on coupe au décrochementanalyse exploratoire
visualisation2 ou 3 composantes, quoi qu'en dise la varianceaffichage graphique

Le graphique des éboulis se lit exactement comme le coude du module 3 : au-delà du décrochement, les composantes ne captent plus que du bruit. Et scikit-learn permet d'exprimer directement l'objectif : PCA(n_components=0.95) conserve automatiquement le nombre de composantes nécessaires pour 95 % de la variance.

Interpréter les axes

Une composante n'a pas de nom : il faut le lui donner, en examinant les poids de chaque variable d'origine dans sa définition (acp.components_). Si la première composante charge fortement le revenu, la surface du logement et le montant des dépenses, on la nommera « niveau de vie ». Ce travail d'interprétation transforme un résultat mathématique en connaissance métier ; c'est lui qui donne à l'ACP sa valeur explicative, au-delà de la compression.

Limites à connaître

L'ACP est linéaire : elle ne capture que des directions droites de variation, et une structure enroulée lui échappe (d'où t-SNE et UMAP au module suivant). Les composantes sont des combinaisons de toutes les variables, donc moins directement lisibles que les variables d'origine. Enfin, l'ACP privilégie la variance, qui n'est pas toujours l'information utile : une variable de faible variance peut être décisive pour une tâche donnée.

En résumé

  • L'ACP exploite la redondance entre variables pour décrire les données sur moins d'axes.
  • Les composantes principales sont des combinaisons linéaires successivement de variance maximale et perpendiculaires entre elles, donc décorrélées.
  • On choisit leur nombre par seuil de variance cumulée, coude de l'éboulis, ou contrainte de visualisation.
  • La standardisation est obligatoire ; l'interprétation passe par les poids des variables, et la méthode reste linéaire.

Module suivant : t-SNE et UMAP, qui visualisent des structures non linéaires — avec des précautions de lecture strictes.