t-SNE: Pourquoi des valeurs de données égales ne sont-elles pas visuellement proches?


9

J'ai 200 points de données qui ont les mêmes valeurs sur toutes les fonctionnalités.

Après la réduction de dimension t-SNE, ils ne semblent plus aussi égaux, comme ceci: entrez la description de l'image ici

Pourquoi ne sont-ils pas sur le même point dans la visualisation et semblent même être répartis en deux clusters différents?


4
N'oubliez pas de lire distill.pub/2016/misread-tsne
Emre

Peut-il être causé par la précision (double / flottante) que vous utilisez?
El Burro

La plupart des valeurs sont des entiers. Et c'est très rare, environ 500 fonctionnalités avec principalement des zéros. Je ne sais pas si cela peut être causé par la précision. Mais la distance entre ces grappes et entre ces points de données est relativement grande.
ScientiaEtVeritas

Quels clusters? Je pensais que tous étaient pareils - ou voulez-vous dire l'intrigue?
El Burro

Oui, je veux dire les grappes sur l'intrigue.
ScientiaEtVeritas

Réponses:


3

Vous avez raison de dire que les mêmes valeurs dans T-SNE peuvent être réparties sur différents points, la raison pour laquelle cela se produit est claire si vous regardez l'algorithme que T-SNE exécute.

Pour répondre à votre première préoccupation concernant le fait que les points ne sont pas réellement les mêmes après que l'algorithme a été appliqué à l'ensemble de données. Je vais vous laisser avec un exercice pour le vérifier par vous-même, considérer un tableau simple et et exécuter un algorithme réel contre lui et voir par vous-même que les points résultants ne sont pas réellement identiques . Vous pouvez recouper votre réponse contre cela.x1=[0,1]x2=[0,1]

import numpy as np from sklearn.manifold import TSNE m = TSNE(n_components=2, random_state=0) m.fit_transform(np.array([[0,1],[0,1]]))

Vous remarquerez également que le changement de random_statemodifie en fait les coordonnées de sortie du modèle. Il n'y a pas de réelle corrélation entre les coordonnées réelles et leur sortie. Depuis la première étape de TSNE calcule la vraisemblance conditionnelle.

Essayons maintenant de rationaliser, en utilisant l'algorithme la raison pour laquelle cela se produit, en utilisant simplement les mathématiques, sans aucune intuition, pour le moment. Notez que et sont tous deux des vecteurs dans cette situation. . Maintenant, si nous calculons le , nous pouvons voir que la valeur est 1. Après avoir appliqué la divergence KL, nous obtenons les valeurs indiquées ci-dessus. Maintenant, appliquons une certaine intuition à cela. est, officieusement, la probabilité conditionnelle que choisissexixjpij=pi| j+pj| jepj|i=exp(||xjxi||22σ2)kiexp(||xjxi||22σ2) pijxixjpij=pi|j+pj|i2Npijxixjcomme c'est voisin. Cela justifie le résultat, 1, pour deux raisons. Le premier étant qu'il n'y a pas d'autre voisin, il doit donc choisir le seul autre vecteur dans la liste des coordonnées. De plus, les points sont identiques et les chances qu'ils soient choisis comme les autres voisins devraient être élevés, comme on le voit.

Venons-en maintenant à savoir si les coordonnées absolues dans ont une signification. Ils ne le font vraiment pas. Le caractère aléatoire peut redistribuer les points où vous voulez qu'ils aillent. Cependant, ce qui est plus intéressant, c'est les rapports des distances entre les points et ceux-ci sont relatifs et sont relatifs même lorsque nous le projetons sur des dimensions plus élevées ce qui est assez intéressant.R2

Ainsi, la vérité est que, plutôt que de regarder les deux groupes, regardez les distances entre eux, car cela transmet plus d'informations que les coordonnées elles-mêmes.

J'espère que cela a répondu à votre question :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.