Sie haben Recht, dass dieselben Werte in T-SNE auf verschiedene Punkte verteilt werden können. Der Grund dafür ist klar, wenn Sie sich den Algorithmus ansehen, über den T-SNE ausgeführt wird.
Um Ihre erste Besorgnis darüber auszuräumen, dass die Punkte tatsächlich nicht gleich sind, nachdem der Algorithmus auf den Datensatz angewendet wurde. Ich werde Ihnen eine Übung überlassen, um sie selbst zu überprüfen, ein einfaches Array und x 2 = [ 0 , 1 ] zu betrachten und einen tatsächlichen Algorithmus dagegen auszuführen und selbst zu sehen, dass die resultierenden Punkte dies nicht sind Sie können Ihre Antwort darauf verweisen.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]]))
Sie würden auch feststellen, dass durch Ändern der random_state
tatsächlich die Ausgabekoordinaten des Modells geändert werden. Es gibt keine wirkliche Korrelation zwischen den tatsächlichen Koordinaten und ihrer Ausgabe. Seit dem ersten Schritt berechnet TSNE die bedingte Wahrscheinlichkeit.
xixjpj|i=exp(−||xj−xi||22σ2)∑k≠iexp(−||xj−xi||22σ2)pij=pi|j+pj|i2Npijxixj
R2
Die Wahrheit ist also, anstatt die beiden Cluster zu betrachten, die Abstände zwischen ihnen zu betrachten, da dies mehr Informationen vermittelt als die Koordinaten selbst.
Hoffe das hat deine Frage beantwortet :)