Answers:
您是对的,T-SNE中的相同值可以分布在不同点上是正确的,如果您查看T-SNE所运行的算法,则发生这种情况的原因很明显。
要解决您对算法应用到数据集后实际上不相同的点的最初担忧。我将做一个练习来亲自验证一下,考虑一个简单的数组和,然后对它运行实际算法,并亲自观察得出的结果点实际上是否相同您可以对此交叉引用您的答案。
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]]))
您还将观察到,更改random_state
实际会修改模型的输出坐标。实际坐标与其输出之间没有任何实际关联。由于TSNE的第一步是计算条件似然。
现在,让我们尝试使用算法来合理化目前发生这种情况的原因,只是使用数学而没有任何直觉。注意,在这种情况下,和都是向量。。现在,如果我们计算,我们可以看到该值为1。应用KL散度后,我们获得了上述值。现在,让我们对此应用一些直觉。非正式地是选择的条件概率作为邻居。这证明了结果为1,有两个原因。第一个是没有其他邻居,因此它必须选择坐标列表中的唯一其他向量。另外,正如我们所看到的,这些点是相同的,被它们选为其他邻居的机会应该很高。
现在讨论的绝对坐标是否具有任何意义。他们真的没有。随机性可以将点重新分布到您希望它们去的任何地方。但是,更有趣的是这些点之间的距离之比是相对的,即使我们将其投影到更高的维度上也是相对的,这是非常有趣的。
因此,事实是,而不是看两个聚类,而是看它们之间的距离,因为它传达的信息比坐标本身多。
希望这回答了您的问题:)