Principal Component Analysis (PCA)
L’analyse en composantes principales (PCA) projette les données sur les directions orthogonales qui capturent le plus de variance. Découvre son fonctionnement, le choix de k, ses usages et des exemples de code.
L’analyse en composantes principales (PCA) est une technique linéaire de réduction de dimensionnalité qui réexprime les données sous forme de nouvelles variables non corrélées, appelées composantes principales, classées selon la part de variance des données qu’elles capturent. Ne conserver que les premières composantes permet de compresser de nombreuses caractéristiques corrélées en quelques variables, tout en préservant l’essentiel de l’information. Karl Pearson a introduit cette méthode en 1901, puis Harold Hotelling l’a approfondie et nommée en 1933. La PCA est une technique non supervisée qui ignore les étiquettes. Elle sert d’étape standard de prétraitement des données, permet de visualiser rapidement des données de grande dimension en deux ou trois dimensions et constitue une référence pour la compression et la suppression du bruit en apprentissage automatique.
Fonctionnement de PCA#
La PCA centre d’abord chaque caractéristique en soustrayant sa moyenne. La première composante principale est la direction dans laquelle les données centrées varient le plus. Chaque composante suivante indique la direction de variance résiduelle la plus importante, orthogonale à toutes les précédentes. Les composantes sont les vecteurs propres de la matrice de covariance des données, et les valeurs propres correspondantes représentent les variances dans ces directions. Les bibliothèques calculent ces éléments avec une décomposition en valeurs singulières (SVD) des données centrées, méthode plus stable numériquement que la formation de la matrice de covariance. La projection des données sur les k premières composantes fournit la représentation réduite, que l’on peut ensuite reprojeter pour reconstruire une approximation des données d’origine. Parmi toutes les projections linéaires sur k dimensions, celle de la PCA minimise l’erreur quadratique de reconstruction.
La variance dépend des unités. Les caractéristiques mesurées sur des échelles différentes, comme le revenu en dollars et l’âge en années, sont donc standardisées au préalable ; sinon, la caractéristique dont l’amplitude numérique est la plus grande domine la première composante. On choisit généralement le nombre de composantes k à partir du ratio de variance expliquée : on conserve les composantes jusqu’à ce que leur part cumulée de la variance atteigne une valeur cible, par exemple 95 %, ou à partir du coude d’un graphique des éboulis représentant la variance par composante.
La PCA de Scikit-learn accepte directement une cible de variance. Cet exemple compresse des images de chiffres manuscrits de 8 × 8 pixels :
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# 1,797 handwritten digits, each an 8x8 image flattened to 64 pixel values
X, _ = load_digits(return_X_y=True)
# Keep the fewest components that explain 95% of the variance
pca = PCA(n_components=0.95)
X_reduced = pca.fit_transform(X)
print(f"{X.shape[1]} features -> {pca.n_components_} components")
print(f"First two components: {pca.explained_variance_ratio_[:2].sum():.1%} of the variance")Vingt-neuf composantes conservent 95 % de la variance des 64 pixels, ce qui réduit de plus de moitié la taille de l’entrée. Les deux premières composantes à elles seules en conservent 28,5 %. La variance se concentre parce que les pixels voisins sont fortement corrélés et que les pixels des bords gauche et droit des images varient très peu.
Limites#
La PCA ne détecte que les structures linéaires : les données situées sur une surface courbe nécessitent donc plus de composantes que leur dimensionalité réelle. Chaque composante mélange toutes les caractéristiques d’origine, ce qui les rend difficiles à interpréter, et les distances au carré permettent à quelques valeurs aberrantes de les faire basculer. Une variance élevée ne signifie pas non plus une grande utilité : une direction à faible variance peut porter le signal qui sépare deux classes, si bien que l’écarter peut nuire à un classifieur, même si cela ne fait perdre que peu de variance. Réduire de nombreuses caractéristiques à quelques-unes reste utile face à la malédiction de la dimensionnalité, qui oblige les modèles à disposer de beaucoup plus d’échantillons pour généraliser à mesure que le nombre de caractéristiques augmente, et limite le surapprentissage lorsque les caractéristiques sont nombreuses et les échantillons peu nombreux.
La PCA pour les embeddings en vision par ordinateur#
Les modèles de vision décrivent chaque image ou objet à l’aide d’un embedding, un vecteur de plusieurs centaines de nombres, et la PCA constitue une première étape courante pour visualiser, regrouper ou compresser ces vecteurs. Les modèles YOLO26 renvoient un embedding par image via model.embed(), et projeter ces vecteurs sur leurs deux premières composantes principales donne rapidement une représentation linéaire de la façon dont un modèle entraîné sur mesure sépare ses classes. Réduire la dimension des embeddings stockés permet aussi de réduire l’index d’une base de données vectorielle et d’accélérer la recherche vectorielle.
Applications#
- Reconnaissance faciale : la méthode des eigenfaces de Turk et Pentland (1991) représentait chaque visage par ses coordonnées sur les composantes principales d’un ensemble d’images de visages et reconnaissait les personnes en comparant ces coordonnées.
- Détection d’anomalies : la surveillance des processus industriels ajuste une PCA aux données des capteurs en fonctionnement normal et déclenche une alarme lorsqu’une nouvelle mesure est mal reconstruite ou s’écarte fortement des composantes conservées.
- Génétique des populations : la PCA des données génotypiques résume les origines ancestrales et, dans une étude de 2008 portant sur 1 387 Européens, les deux premières composantes ont reproduit une carte reconnaissable de l’Europe.
- Risque de taux d’intérêt : les variations de la courbe des rendements obligataires sont dominées par trois composantes que les analystes appellent niveau, pente et courbure ; les modèles de risque suivent donc trois nombres au lieu de chaque échéance.
PCA et techniques apparentées#
- t-SNE et UMAP : méthodes non linéaires conçues pour la visualisation, qui préservent les voisinages locaux afin de mieux séparer les groupes, tandis que les distances entre groupes éloignés perdent leur sens. La méthode t-SNE de Scikit-learn ne permet pas de transformer de nouveaux points, tandis qu’une PCA ajustée projette de nouvelles données en une seule multiplication matricielle.
- Autoencodeurs : réseaux de neurones qui compressent et reconstruisent les données, et peuvent apprendre des structures non linéaires. Un autoencodeur linéaire entraîné avec l’erreur quadratique apprend le même sous-espace que la PCA.
- Sélection et extraction de caractéristiques : la sélection de caractéristiques conserve un sous-ensemble des colonnes d’origine, qui restent interprétables, tandis que la PCA, méthode classique d’extraction de caractéristiques, construit de nouvelles caractéristiques en combinant toutes les autres.
- Analyse discriminante linéaire (LDA) : méthode apparentée supervisée qui choisit les directions maximisant la séparation entre les classes plutôt que la variance totale, et produit au maximum une composante de moins que le nombre de classes.










