Existe-t-il des cas où PCA est plus approprié que t-SNE?

39

Je veux voir comment 7 mesures du comportement de correction de texte (temps passé à corriger le texte, nombre de frappes au clavier, etc.) sont liées les unes aux autres. Les mesures sont corrélées. J'ai exécuté une ACP pour voir comment les mesures étaient projetées sur PC1 et PC2, ce qui évitait le chevauchement de l'exécution de tests de corrélation bidirectionnels distincts entre les mesures.

On m'a demandé pourquoi ne pas utiliser t-SNE, car la relation entre certaines des mesures pourrait être non linéaire.

Je peux voir comment permettre une non-linéarité améliorerait cela, mais je me demande s’il existe une bonne raison d’utiliser PCA dans ce cas et non pas t-SNE? Je ne souhaite pas regrouper les textes en fonction de leur relation avec les mesures, mais plutôt de la relation entre les mesures elles-mêmes.

(Je suppose que EFA pourrait également être une meilleure / une autre approche, mais c'est une discussion différente.) Comparé à d'autres méthodes, il y a peu de contributions sur t-SNE, la question semble donc mériter d'être posée.

utilisateur3744206
la source
3
Le t-SNE ne s'adapte pas bien à la taille du jeu de données, contrairement à l'ACP. Cela vient de l’expérience de l’exploitation des deux sur de grands ensembles de données à l’aide de la mise en œuvre de scikit-learn.
Mai
@ Mai probablement cela s'applique-t-il principalement aux grands ensembles de données? Mon jeu de données est petit (quelques centaines de points de données).
user3744206

Réponses:

65

-SNE est un excellent outil d’apprentissage automatique, mais on peut trouver de nombreuses raisons d’utiliser PCA à la place. Sur le dessus de ma tête, j'en citerai cinq. Comme la plupart des autres méthodes de calcul utilisées, t -SNE n’est pas une solutionmiracle,et il existe de nombreuses raisons qui en font un choix sous-optimal dans certains cas. Permettez-moi de mentionner quelques points en bref:tt

  1. Stochasticité de la solution finale . La PCA est déterministe; -SNE n'est pas. On obtient une belle visualisation, puis son collègue reçoit une autre visualisation, puis ils obtiennent une apparence artistique qui a meilleure apparence et si une différence de 0,03 % dans la divergence K L ( P | | Q ) est significative ... Dans PCA, la réponse correcte à la la question posée est garantie. t -SNE peut avoir plusieurs minima pouvant conduire à des solutions différentes. Cela nécessite plusieurs analyses et soulève des questions sur la reproductibilité des résultats.t0.03%KL(P||Q)t

  2. Interprétabilité de la cartographie . Ceci se rapporte au point ci-dessus, mais supposons qu'une équipe ait accepté un groupe de départ / parcours aléatoire. Maintenant, la question devient ce que cela montre… -SNE essaie de mapper correctement les voisins / voisins de sorte que notre analyse de cette intégration devrait être très prudente; les tendances globales ne sont pas représentées avec précision (et cela peut potentiellement être une bonne chose pour la visualisation). En revanche, PCA n’est qu’une rotation diagonale de notre matrice de covariance initiale et les vecteurs propres représentent un nouveau système axial dans l’espace couvert par nos données originales. Nous pouvons directement expliquer ce que fait une ACP particulière.t

  3. Application aux données nouvelles / invisibles . -SNE n'apprend pas une fonction de l'espace d'origine vers le nouvel espace dimensionnel (inférieur) et c'est un problème. À cet égard, le t -SNE est un algorithme d’apprentissage non paramétrique , ce qui complique approximativement l’algorithme paramétrique. L’intégration est apprise en déplaçant directement les données dans l’espace dimensionnel faible. Cela signifie que l'on n'obtient pas de vecteur propre ou de construction similaire à utiliser dans les nouvelles données. En revanche, en utilisant PCA, les vecteurs propres offrent un nouveau système d’axes pouvant être utilisé directement pour projeter de nouvelles données. [Apparemment , on pourrait essayer la formation d' un profond réseau pour apprendre la tttt-Cartographie SNE (vous pouvez entendre le Dr van der Maaten à ~ 46 'de cette vidéo suggérant quelque chose dans ce sens) mais il n’existe clairement aucune solution simple.]

  4. Données incomplètes . Nativement, -SNE ne traite pas de données incomplètes. Pour être juste, la PCA ne les traite pas non plus, mais de nombreuses extensions de la PCA pour les données incomplètes (par exemple, la PCA probabiliste ) existent déjà et sont des routines de modélisation presque standard . À l'heure actuelle, le t -SNE ne peut pas traiter des données incomplètes (hormis évidemment la formation préalable d'une ACP probabiliste et la transmission des scores PC à la t -SNE en tant qu'entrées).ttt

  5. Le n'est pas (trop) petit cas. k -SNE résout un problème connu sous le nom de problème d'encombrement, qui consiste en fait à ce que des points quelque peu similaires, de dimension supérieure, s'effondrent les uns sur les autres, dans des dimensions inférieures (pour en savoir plus ici ). Maintenant que vous augmentez les dimensions utilisées, le problème d'encombrement devient moins grave, c'est-à-dire. le problème que vous essayez de résoudre en utilisant t -SNE est atténué. Vous pouvez contourner ce problème, mais ce n’est pas anodin. Par conséquent, si vous avez besoin d'un vecteur de dimension k comme ensemble réduit et que k n'est pas tout à fait petit, l'optimalité de la solution de produit est en cause. PCA en revanche offre toujours le kttkkkmeilleure combinaison linéaire en termes de variance expliquée. (Merci à @amoeba d’avoir remarqué que j’ai créé un désordre lors de la première tentative pour expliquer ce point.)

Je ne mentionne pas de problèmes liés aux exigences de calcul (par exemple, la vitesse ou la taille de la mémoire), ni à la sélection d'hyperparamètres pertinents (par exemple, la perplexité). Je pense que ce sont des problèmes internes de la méthodologie -SNE et sont sans importance quand on le compare à un autre algorithme.t

ttt

usεr11852 dit Réintégrer Monic
la source
tk=2,3,4
@ amoeba: Merci de l'avoir mentionné. J'ai mis à jour ma réponse en conséquence.
usεr11852 dit Rétablir Monic
3
En ce qui concerne votre point 3: voici le document de 2009 sur les paramètres paramétriques lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf . Il semble que le projet n’a pas vraiment décollé (il contient 25 fois moins de citations que le document t-sne original), mais il est en fait assez facile à mettre en œuvre avec les technologies / bibliothèques actuelles. Je l'ai mis en place à Keras; J'ai travaillé sur l'investigation (et éventuellement l'extension) ces dernières semaines.
amibe dit de réintégrer Monica
Cool! (+1) Si vous obtenez une impression flottante de pré-impression arXiv, merci de me le faire savoir (ici ou 10 fois), je serai très curieux des résultats. Oui, j’ai vu ce document au moment de la rédaction de cette réponse (c’est en fait un document bien connu, je dirais), mais comme vous l’avez dit, il ne semble pas avoir été repris. Le point 3 reste également parfaitement valable: vous devez créer un DNN pour obtenir quelque chose que PCA propose via un produit croisé matriciel unique.
usεr11852 dit Rétablir Monic
12

https://stats.stackexchange.com/a/249520/7828

est une excellente réponse générale.

Je voudrais me concentrer un peu plus sur votre problème. Vous voulez apparemment voir comment vos échantillons se rapportent à vos 7 variables d’entrée. C'est quelque chose que le T-SNE ne fait pas. L'idée de SNE et t-SNE est de placer les voisins proches les uns des autres, en ignorant (presque) complètement la structure globale.

Ceci est excellent pour la visualisation, car des éléments similaires peuvent être tracés les uns à côté des autres (et non les uns sur les autres, cf encombrement).

Ce n'est pas bon pour une analyse plus approfondie. La structure globale est perdue, certains objets ont peut-être été empêchés de passer chez leurs voisins et la séparation entre différents groupes n'est pas préservée quantitativement. C'est en grande partie pourquoi, par exemple, le regroupement sur la projection ne fonctionne généralement pas très bien.

PCA est tout le contraire. Il essaie de préserver les propriétés globales (vecteurs propres à variance élevée) tout en perdant des écarts de variance faibles entre voisins.

Anony-Mousse
la source
Ah c'est exactement ce que j'ai supposé. Je ne m'intéresse pas à la façon dont les points de données sont situés dans l'espace, mais plutôt à la façon dont les mesures elles-mêmes sont liées les unes aux autres. Ces deux choses sont liées, bien sûr, mais en termes de visualisation et d’interprétation de ces relations, je suppose que seule la PCA fait ce que je veux. Par exemple, il existe des relations positives et négatives entre les mesures et ce qui m'intéresse vraiment, c'est la valeur absolue des associations, ce qui, encore une fois, est plus facile à interpréter / à voir si j'utilise PCA.
user3744206
1
Pour ce cas d'utilisation, il peut être préférable de regarder plutôt la matrice de corrélation elle-même, c'est-à-dire ne faire que des comparaisons par paires. Ensuite, vous pouvez également gérer la non-linéarité, par exemple en utilisant la corrélation de Spearman.
Anony-Mousse
Pouvons-nous utiliser T-SNE pour des problèmes de cluster? pour autant que je sache, pouvons-nous projeter un nouveau point à venir et essayer de nous regrouper sur les dimensions inférieures? C'est possible ?
Catbuilts
Non, parce que tSNE n'est pas linéaire, vous ne pouvez pas simplement le calculer pour de nouvelles données (voir ci-dessus). Et il y a eu une longue discussion sur le fait qu'il peut également être trompeur de regrouper les données projetées.
Anony-Mousse
1

Pour donner un angle appliqué, PCA et t-SNE ne sont pas mutuellement exclusifs. Dans certains domaines de la biologie, nous traitons avec des données hautement dimensionnelles (par exemple, scRNA-seq est des milliers de dimensions) où t-SNE n'est simplement pas à l'échelle. Par conséquent, nous utilisons PCA d’abord pour réduire la dimensionnalité des données, puis, en prenant les principales composantes principales, nous calculons le graphe de voisinage, puis intégrons le graphe en 2 dimensions à l’aide de t-SNE (ou une approche similaire non linéaire de réduction de dimensionnalité). comme UMAP) pour visualiser les données.

Chris_Rands
la source