t-SNE:为什么相等的数据值在视觉上不接近?


9

我有200个数据点,在所有功能上具有相同的值。

在减少t-SNE尺寸后,它们看起来不再相等,就像这样: 在此处输入图片说明

为什么它们不在可视化中的同一点上,甚至似乎分布在两个不同的群集中?



可能是由您使用的精度(双精度/浮点)引起的吗?
El Burro

大多数值是整数。而且它非常稀疏,大约有500个特征,其中大多数为零。我不知道它是否可以由精度引起。但是这些簇之间以及这些数据点之间的距离相对较大。
ScientiaEtVeritas

哪些集群?我以为都是一样的-还是说情节?
El Burro

是的,我是说情节上的集群。
ScientiaEtVeritas

Answers:


3

您是对的,T-SNE中的相同值可以分布在不同点上是正确的,如果您查看T-SNE所运行的算法,则发生这种情况的原因很明显。

要解决您对算法应用到数据集后实际上不相同的点的最初担忧。我将做一个练习来亲自验证一下,考虑一个简单的数组和,然后对它运行实际算法,并亲自观察得出的结果点实际上是否相同您可以对此交叉引用您的答案。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]]))

您还将观察到,更改random_state实际会修改模型的输出坐标。实际坐标与其输出之间没有任何实际关联。由于TSNE的第一步是计算条件似然。

现在,让我们尝试使用算法来合理化目前发生这种情况的原因,只是使用数学而没有任何直觉。注意,在这种情况下,和都是向量。。现在,如果我们计算,我们可以看到该值为1。应用KL散度后,我们获得了上述值。现在,让我们对此应用一些直觉。非正式地是选择的条件概率xixjpj|i=exp(||xjxi||22σ2)kiexp(||xjxi||22σ2)pij=pi|j+pj|i2Npijxixj作为邻居。这证明了结果为1,有两个原因。第一个是没有其他邻居,因此它必须选择坐标列表中的唯一其他向量。另外,正如我们所看到的,这些点是相同的,被它们选为其他邻居的机会应该很高。

现在讨论的绝对坐标是否具有任何意义。他们真的没有。随机性可以将点重新分布到您希望它们去的任何地方。但是,更有趣的是这些点之间的距离之比是相对的,即使我们将其投影到更高的维度上也是相对的,这是非常有趣的。R2

因此,事实是,而不是看两个聚类,而是看它们之间的距离,因为它传达的信息比坐标本身多。

希望这回答了您的问题:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.