L'ACP n'est en fait qu'une rotation. Sérieusement, c'est tout: c'est une façon intelligente de tourner les données sur une nouvelle base. Cette base a des propriétés qui la rendent utile comme étape de prétraitement pour plusieurs procédures.
La base est orthonormée . Cela est extrêmement utile si vos fonctionnalités présentent une multicolinéarité (deux fonctionnalités ou plus dépendent linéairement): l'application de PCA est garantie de vous donner une base où cela ne pose plus de problème. Cette procédure est connue sous le nom de régression du composant principal
Les vecteurs de base sont significatifs par rapport à la diffusion des données: ce sont les vecteurs propres de la matrice de covariance . Cette deuxième propriété donne naissance à la célèbre utilité de PCA en tant que technique de réduction de dimensionnalité: après rotation des données, la projection des données sur un sous-ensemble des vecteurs de base associés à une partie significative de la variance totale donne une représentation dimensionnelle inférieure qui (souvent) conserve ( la plupart) des propriétés structurelles (intéressantes) des données.
Alors: est-ce un algorithme d'apprentissage? C'est en quelque sorte une question philosophique. Qu'est-ce qui fait de quelque chose un algorithme d'apprentissage? Certes, PCA n'est pas un algorithme d'apprentissage "supervisé" car nous pouvons le faire avec ou sans variable cible, et nous associons généralement des techniques "non supervisées" au clustering.
Oui, PCA est une procédure de prétraitement. Mais avant de l'écrire complètement comme n'apprenant pas quelque chose, j'aimerais que vous considériez ce qui suit: L'ACP peut être calculée en prenant littéralement les vecteurs propres de la matrice de covariance, mais ce n'est pas ainsi que cela se fait généralement dans la pratique. Une procédure numériquement équivalente et plus efficace sur le plan informatique consiste simplement à prendre la SVD des données. Par conséquent, PCA n'est qu'une application spécifique de SVD, donc demander si PCA est un algorithme d'apprentissage demande vraiment si SVD est un algorithme d'apprentissage.
Maintenant, bien que vous puissiez vous sentir à l'aise d'écrire PCA comme un algorithme d'apprentissage, voici pourquoi vous devriez être moins à l'aise de faire de même avec SVD: c'est une méthode étonnamment puissante pour la modélisation de sujets et le filtrage collaboratif . Les propriétés de SVD qui le rendent utile pour ces applications sont exactement les mêmes propriétés qui le rendent utile pour la réduction de dimensionnalité (c'est-à-dire PCA).
SVD est une généralisation de la composition par eigendec, et cela aussi est extrêmement puissant même en tant que version contrainte de SVD. Vous pouvez effectuer une détection de communauté sur un graphique en examinant les vecteurs propres de la matrice d'adjacence, ou déterminer les probabilités en régime permanent d'un modèle de Markov en examinant les vecteurs propres de la matrice de transition, ce qui, par coïncidence, est aussi essentiellement la manière dont le PageRank est calculé.
Sous le capot, PCA effectue une opération d'algèbre linéaire simple. Mais, c'est exactement la même opération qui sous-tend de nombreuses applications auxquelles la plupart des gens ne remettront pas en cause l'application du label "machine learning". Cette classe d'algorithmes est appelée factorisation matricielle , et s'étend même à des techniques sophistiquées comme word2vec : en effet, vous pouvez réellement obtenir des résultats de type word2vec en appliquant littéralement PCA à une matrice de co-reconnaissance de mots . Généralisant à nouveau, un autre mot pour les résultats de l'ACP est une intégration . Word2vec est probablement l'exemple d'incorporation le plus célèbre, mais la construction d'incorporation (en tant qu'intermédiaires) est également un composant important de l'architecture codeur-décodeur utilisée dans les RNN.et les GAN , qui sont actuellement à la pointe de la recherche en ML.
Revenons donc à votre question: le PCA est-il un "algorithme d'apprentissage automatique"? Si ce n'est pas le cas, vous devriez être prêt à en dire autant du filtrage collaboratif, de la modélisation de sujets, de la détection de communauté, de la centralité du réseau et de l'intégration de modèles.
Ce n'est pas parce qu'il s'agit d'une simple algèbre linéaire que ce n'est pas aussi magique.