L'analyse en composantes principales (ACP) est une procédure statistique qui utilise une transformation orthogonale pour convertir un ensemble d'observations de variables possiblement corrélées en un ensemble de valeurs de variables linéairement non corrélées appelées composantes principales. La transformation est définie de sorte que la première composante principale ait la plus grande variance possible (c'est-à-dire qu'elle explique autant que possible la variabilité des données), et que chaque composante suivante ait la variance la plus élevée possible sous la contrainte d'être orthogonale aux composantes précédentes. L'ACP est l'une des techniques les plus fondamentales en apprentissage automatique et en science des données, utilisée pour l'analyse exploratoire des données, la réduction de dimensionnalité et l'extraction de caractéristiques.
La méthode a été introduite par Karl Pearson en 1901, puis développée indépendamment par Harold Hotelling en 1933. Elle est également étroitement liée à la transformée de Karhunen-Loève et à la décomposition en valeurs singulières (SVD). L'ACP est souvent appliquée avant d'autres algorithmes pour réduire le nombre de caractéristiques, atténuer le fléau de la dimensionnalité et améliorer l'efficacité computationnelle. C'est une méthode linéaire, ce qui signifie qu'elle suppose que la structure sous-jacente se trouve sur un sous-espace linéaire, ce qui constitue une limitation pour les données fortement non linéaires.
Formulation mathématique
Étant donné une matrice de données X avec n observations et p variables, l'ACP cherche un ensemble de p vecteurs orthogonaux (les loadings des composantes principales) qui maximisent la variance des données projetées. La première composante principale est la direction de variance maximale, la seconde est orthogonale à la première et capture la variance la plus élevée suivante, et ainsi de suite. Mathématiquement, les composantes principales sont les vecteurs propres de la matrice de covariance des données, et les valeurs propres correspondantes indiquent la quantité de variance expliquée par chaque composante.
Le calcul implique généralement de centrer les données (en soustrayant la moyenne de chaque variable) et éventuellement de les normaliser (en divisant par l'écart type) pour garantir que les variables sont comparables. La matrice de covariance est ensuite calculée, et ses vecteurs propres et valeurs propres sont déterminés. Alternativement, l'ACP peut être réalisée en utilisant la SVD sur la matrice de données centrée, ce qui est numériquement plus stable, en particulier lorsque le nombre de variables est élevé.
Réduction de dimensionnalité et variance expliquée
L'une des principales utilisations de l'ACP est la réduction de dimensionnalité. En sélectionnant uniquement les k premières composantes principales (où k est bien inférieur à p), on peut représenter les données avec moins de dimensions tout en conservant la majeure partie de la variance. La proportion de variance expliquée par chaque composante est donnée par sa valeur propre divisée par la somme de toutes les valeurs propres. Une heuristique courante consiste à choisir k tel que la variance expliquée cumulée atteigne un seuil, par exemple 95 %.
Cette réduction est particulièrement utile dans les contextes de haute dimensionnalité, comme la génomique ou le traitement d'images, où le nombre de caractéristiques peut se compter en milliers ou en millions. L'ACP peut aider à visualiser les données en deux ou trois dimensions, révéler des structures cachées et réduire le bruit en éliminant les composantes à faible variance, souvent associées au bruit.
Applications en apprentissage automatique
L'ACP est largement utilisée comme étape de prétraitement dans les pipelines de apprentissage automatique. Elle peut améliorer les performances des algorithmes sensibles aux caractéristiques corrélées, comme la régression linéaire et la régression logistique. Elle aide également à réduire le sur-apprentissage en diminuant le nombre de paramètres. En apprentissage profond, l'ACP est parfois utilisée pour l'extraction de caractéristiques avant d'alimenter un réseau de neurones, bien que les réseaux modernes gèrent souvent directement les entrées de haute dimensionnalité.
En vision par ordinateur, l'ACP est utilisée pour la reconnaissance faciale (eigenfaces), où chaque image de visage est projetée sur un sous-espace de dimensionnalité réduite. En traitement du langage naturel, l'ACP peut être appliquée aux plongements de mots pour réduire leur dimensionnalité. En finance, l'ACP est utilisée pour identifier les principaux facteurs qui déterminent les rendements des actifs. En bioinformatique, l'ACP est un outil standard pour analyser les données d'expression génique et la génétique des populations.
Relations avec d'autres techniques
L'ACP est étroitement liée à l'analyse factorielle, mais elles diffèrent en ce que l'analyse factorielle suppose l'existence de facteurs latents qui expliquent les corrélations entre les variables, tandis que l'ACP est une technique purement descriptive qui ne suppose pas de modèle sous-jacent. L'ACP est également liée à l'échelonnement multidimensionnel (MDS), qui vise à préserver les distances par paires, et au t-distributed stochastic neighbor embedding (t-SNE), une technique non linéaire souvent utilisée pour la visualisation.
Dans le contexte de l'intelligence artificielle, l'ACP est souvent comparée aux autoencodeurs, qui sont des réseaux de neurones apprenant une représentation non linéaire de faible dimensionnalité. Alors que l'ACP est linéaire et possède une solution en forme fermée, les autoencodeurs peuvent capturer des structures non linéaires mais nécessitent une optimisation itérative. Pour les données à grande échelle, des algorithmes d'ACP randomisés ont été développés pour calculer efficacement des composantes principales approximatives.
Considérations pratiques et limites
L'ACP suppose que les données sont centrées et que les composantes principales sont orthogonales. Elle est sensible à la mise à l'échelle des variables ; par conséquent, la standardisation des données (normalisation z-score) est souvent recommandée, en particulier lorsque les variables sont mesurées dans des unités différentes. L'ACP est également sensible aux valeurs aberrantes, qui peuvent influencer de manière disproportionnée la direction de variance maximale. Des variantes d'ACP robustes ont été développées pour remédier à ce problème.
Une autre limite est que l'ACP est une méthode linéaire, elle peut donc échouer à capturer les relations non linéaires. Dans de tels cas, l'ACP à noyau ou d'autres techniques de réduction de dimensionnalité non linéaires peuvent être plus appropriées. De plus, les composantes principales ne sont pas toujours interprétables, car elles sont des combinaisons linéaires de toutes les variables d'origine, ce qui peut être difficile à expliquer en termes spécifiques au domaine.
Logiciels et implémentation
L'ACP est implémentée dans la plupart des bibliothèques statistiques et d'apprentissage automatique. En Python, la bibliothèque scikit-learn fournit une classe PCA qui utilise la SVD. En R, les fonctions prcomp et princomp sont couramment utilisées. MATLAB et Julia disposent également de fonctions intégrées pour l'ACP. Pour les très grands ensembles de données, des outils comme MLlib d'Apache Spark offrent des implémentations distribuées de l'ACP.
Contexte historique et contributeurs clés
Karl Pearson, mathématicien et statisticien britannique, a introduit l'ACP en 1901 dans un article intitulé « On Lines and Planes of Closest Fit to Systems of Points in Space ». Harold Hotelling, statisticien américain, a ensuite formalisé la méthode en 1933 et a inventé le terme « composantes principales ». La méthode est depuis devenue une pierre angulaire des statistiques multivariées et de l'analyse des données.
Dans les années 1980 et 1990, l'ACP a gagné en importance dans le domaine de la vision par ordinateur avec le développement des eigenfaces pour la reconnaissance faciale. Plus récemment, l'ACP a été intégrée aux flux de travail modernes de apprentissage automatique et est enseignée dans pratiquement tous les cours d'introduction à la science des données. Elle reste un domaine de recherche actif, avec des extensions telles que l'ACP parcimonieuse, l'ACP robuste et l'ACP probabiliste.
Conclusion
L'analyse en composantes principales est un outil puissant et polyvalent pour réduire la dimensionnalité des données tout en préservant autant de variance que possible. Sa simplicité, son élégance mathématique et sa large applicabilité en font une technique essentielle dans la boîte à outils de tout scientifique des données ou praticien de l'apprentissage automatique. Malgré sa nature linéaire et certaines limites, l'ACP continue d'être largement utilisée pour l'exploration des données, le prétraitement et la visualisation dans de nombreux domaines, de l'intelligence artificielle à la finance et à la biologie.