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:
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?
visualization
dimensionality-reduction
tsne
ScientiaEtVeritas
la source
la source
Réponses:
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_state
modifie 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 choisissexi xj pij=pi| j+pj| jepj|i=exp(−||xj−xi||22σ2)∑k≠iexp(−||xj−xi||22σ2) pijxixjpij=pi|j+pj|i2N pij xi xj comme 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 :)
la source