PCA est-il considéré comme un algorithme d'apprentissage automatique

10

J'ai compris que l'analyse des composants principaux est une technique de réduction de dimensionnalité, c'est-à-dire que compte tenu de 10 entités en entrée, elle produira un plus petit nombre d'entités indépendantes qui sont une transformation orthogonale et linéaire des entités originales.

Est PCAconsidéré en soi comme un algorithme d'apprentissage ou il s'agit d'une étape de prétraitement des données.

Victor
la source

Réponses:

9

Il n'est pas rare que quelqu'un le qualifie de technique non supervisée. Vous pouvez effectuer des analyses sur les vecteurs propres et expliquer le comportement des données. Naturellement, si votre transformation comporte encore de nombreuses fonctionnalités, ce processus peut être assez difficile. Néanmoins c'est possible donc je le considère comme du machine learning.

Éditer:

Depuis que ma réponse a été sélectionnée (je ne sais pas pourquoi), je me suis dit que j'ajouterais plus de détails.

L'ACP fait deux choses qui sont équivalentes. Premièrement, et ce qui est communément référé, il maximise les variances. Deuxièmement, il minimise l'erreur de reconstruction en examinant les distances par paires.

En regardant les vecteurs propres et les valeurs propres, il devient assez simple de déduire quelles variables et caractéristiques contribuent à la variance et aussi comment les différentes variables se déplacent en conjonction avec d'autres.

En fin de compte, cela dépend vraiment de la façon dont vous définissez «l'apprentissage». PCA apprend un nouvel espace de fonctionnalité qui capture les caractéristiques de l'espace d'origine. J'ai tendance à penser que cela peut être significatif.

Est-ce complexe? Non, pas vraiment, mais cela le diminue-t-il en tant qu'algorithme? Non je ne pense pas.

Haut-de-forme
la source
3
J'ai l'impression que cette réponse est purement une opinion et ne présente aucun argument. Peut-être élaborer, inclure et reconnaître les points soulevés par d'autres.
Hobbes
15

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.

  1. 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

  2. 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.

David Marx
la source
6

Absolument, ce n'est pas un algorithme d'apprentissage, car vous n'apprenez rien en PCA. Cependant, il peut être utilisé dans différents algorithmes d'apprentissage pour atteindre de meilleures performances en temps réel, comme la plupart des autres méthodes de réduction de dimension.

OMG
la source
4

PCA est utilisé pour éliminer les fonctionnalités redondantes. Il trouve les directions dans lesquelles les données sont fortement distribuées. Il ne se soucie pas des étiquettes des données, car il s'agit de projections qui représentent des données au sens le moins carré. Analyse discriminante multiple, MDAessayez de trouver des projections qui séparent le mieux les données. Ce dernier considère l'étiquette et trouve les directions selon lesquelles les données peuvent être séparées le mieux, bien qu'il ait quelques détails sur le type de décision qui les trouve. Pour conclure, ce PCAn'est pas un algorithme d'apprentissage. Il essaie simplement de trouver des directions dont les données sont hautement distribuées afin d'éliminer les fonctionnalités corrélées. Des approches similaires comme MDAessayer de trouver des directions afin de classer les données. Bien MDAque cela ressemble beaucoupPCA, mais le premier est utilisé pour le classement, il prend en compte les étiquettes, mais le second n'est pas directement utilisé pour le classement.

Médias
la source