t-SNE:为什么相等的数据值在视觉上不接近?
数据挖掘
可视化
降维
特纳
2021-09-17 09:53:19
1个回答
您是正确的,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 的合理性有两个原因。第一个,因为没有其他邻居,所以它必须在坐标列表中选择唯一的其他向量。此外,正如我们所见,这些点是相同的,并且它们被选为其他邻居的机会应该很高。
现在来看看绝对坐标是否在有任何意义。他们真的没有。随机性可以将点重新分配到您希望它们去的任何地方。然而,更有趣的是点之间的距离比是相对的,即使我们将其投影到更高的维度上也是相对的,这非常有趣。
因此,事实是,与其查看两个集群,不如查看它们之间的距离,因为这比坐标本身传达了更多的信息。
希望这回答了你的问题:)
其它你可能感兴趣的问题