Pourquoi utilisons-nous PCA pour accélérer les algorithmes d'apprentissage alors que nous pourrions simplement réduire le nombre de fonctionnalités?

12

Dans un cours de machine learning, j'ai appris qu'une utilisation courante de PCA ( Principal Component Analysis ) est d'accélérer d'autres algorithmes de machine learning. Par exemple, imaginez que vous entraînez un modèle de régression logistique. Si vous avez un ensemble d'apprentissage pour i de 1 à n et qu'il s'avère que la dimension de votre vecteur x est très grande (disons une dimension), vous peut utiliser PCA pour obtenir une dimension plus petite (disons k dimensions) vecteur de fonctionnalité z. Ensuite, vous pouvez entraîner votre modèle de régression logistique sur l'ensemble d'apprentissage pour i de 1 à n. La formation de ce modèle sera plus rapide car votre vecteur d'entités a moins de dimensions.( z ( i ) , y ( i ) )(x(i),y(i))(z(i),y(i))

Cependant, je ne comprends pas pourquoi vous ne pouvez pas simplement réduire la dimension de votre vecteur d'entités à k dimensions en choisissant simplement k de vos entités au hasard et en éliminant le reste.

Les vecteurs z sont des combinaisons linéaires de vos vecteurs de caractéristiques a. Étant donné que les vecteurs z sont limités à une surface de dimension k, vous pouvez écrire les ak valeurs d'élément supprimées en tant que fonction linéaire des k valeurs d'entité restantes, et ainsi tous les z peuvent être formés par des combinaisons linéaires de vos k entités. Un modèle formé sur un ensemble d'entraînement avec des fonctionnalités éliminées ne devrait-il pas avoir la même puissance qu'un modèle formé sur un ensemble d'entraînement dont la dimension a été réduite par l'ACP? Cela dépend-il uniquement du type de modèle et s'il s'appuie sur une sorte de combinaison linéaire?

user35734
la source
1
supprimer les colonnes entraînera la perte de plus d'informations par rapport à l'utilisation de PCA
Haitao Du
2
Quel est le rapport avec la réaction en chaîne de la polymérase? :-) --- En toute sincérité, vous devez toujours épeler un terme avant d'utiliser une abréviation.
Carl Witthoft
Vous pouvez voir les vecteurs propres obtenus par PCA comme de nouvelles fonctionnalités, donc PCA permet de réduire les fonctionnalités - en recombinant celles que nous avons en celles qui captent plus de variance que celles avec lesquelles nous avons commencé.
mathreadler
1
Très lié: stats.stackexchange.com/questions/141864 .
amibe dit Réintégrer Monica

Réponses:

26

Supposons que vous disposiez initialement de fonctions, mais c'est trop, vous devez donc adapter votre modèle aux fonctionnalités . Vous pouvez choisir de vos fonctionnalités et supprimer le reste. Si est notre matrice d'entités, cela correspond à l'utilisation de où sélectionne exactement les colonnes de que nous voulons inclure. Mais cela ignore toutes les informations dans les autres colonnes, alors pourquoi ne pas envisager une réduction de dimension plus générale où ? C'est exactement ce que fait PCA: on trouve la matrice telle qued < p d X X D D { 0 , 1 } p × d X X V V R p × dpd<pdXXDD{0,1}p×dXXVVRp×dX V X X d p pVXVcontient autant d'informations que possible dansToutes les combinaisons linéaires ne sont pas créées de manière égale. À moins que notre matrice soit si faible qu'un ensemble aléatoire de colonnes puisse (avec une probabilité élevée) s'étendre sur l'espace des colonnes de toutes les colonnes, nous ne serons certainement pas en mesure de le faire aussi bien qu'avec toutes les fonctionnalités . Certaines informations seront perdues, et il nous appartient donc de perdre le moins d'informations possible. Avec PCA, les "informations" que nous essayons d'éviter de perdre sont la variation des données.XXdpp

Quant à savoir pourquoi nous nous limitons aux transformations linéaires des prédicteurs, tout l'intérêt de ce cas d'utilisation est le temps de calcul. Si nous pouvions faire une réduction de dimension non linéaire sophistiquée sur nous pourrions probablement juste adapter le modèle à tout également. PCA se situe donc parfaitement à l'intersection de la rapidité de calcul et de l'efficacité.XXX

jld
la source
2
+1. Il est toujours logique de se demander cependant pourquoi la variation de X (que PCA essaie de conserver) devrait être pertinente pour prédire Y ... Ceci est un fil connexe: stats.stackexchange.com/questions/141864 .
amibe dit Réintégrer Monica
4

PCA réduit les fonctionnalités tout en préservant la variance / information dans les données d'origine. Cela permet d'activer le calcul sans perdre la ressemblance des données avec la réalité.

eiTan LaVi
la source
2

Solution PCA

Tout d'abord, méfiez-vous lorsque vous utilisez PCA à cette fin. Comme je l'ai écrit en réponse à une question connexe, l' ACP ne conduit pas nécessairement à une sélection de caractéristiques informatives pour la régression que vous avez l'intention de faire (voir également Jolliffe 1982 ).

OP solution proposée

reduce the dimension of your feature vector to k dimensions by just choosing k of your features at random and eliminating the rest.dimension of your vector x is very largep

pCkkpp=1000k=58.25×1012k=5k=6p

Solution suggérée

p

conjectures
la source