t-SNE对最近的邻居有意义吗?


10

对此回答表明,t-SNE中的尺寸是没有意义的,并且点之间距离不是相似性的量度

但是,基于t-SNE空间中最接近的点,我们能说点什么吗?为什么完全相同的点不会聚类的答案表明,在较低和较高尺寸的表示形式之间,点之间的距离比是相似的。

例如,下图显示了我的一个数据集(15个类)上的t-SNE。

我可以说cro 479(右上方)是一个离群值吗?是fra 1353(左下)更类似于cir 375比其他图像fra类,等等?还是这些仅仅是人工制品,例如fra 1353被卡在了几个集群的另一端而无法强行进入另一类fra

在此处输入图片说明



Answers:


8

不,没有必要如此,但是,以一种令人费解的方式,这是T-SNE的目标。

在深入探讨答案之前,让我们从数学和直观角度看一些基本定义。

[RdX1个Xñ[RdX[Rd||X1个-X||||Xñ-X||[Rd

dÿXddd+ķ。因此,我们有一个直觉,那就是在不同尺寸上保持距离,或者至少这是我们的目标。让我们尝试用一些数学来证明这一点。

pĴ|一世=ËXp-||XĴ-X一世||22σ2ķ一世ËXp-||XĴ-X一世||22σ2[Rķ

现在最后是一个简洁的编码示例,它也演示了这个概念。

from sklearn.manifold import TSNE
from sklearn.neighbors import KNeighborsClassifier
X = [[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]]
y = [0,1,2,3,4,5,6,7,8,9]
neighs = KNeighborsClassifier(n_neighbors=3)
neighs.fit(X, y)
X_embedded = TSNE(n_components=1).fit_transform(X)
neighs_tsne = KNeighborsClassifier(n_neighbors=3)
neighs_tsne.fit(X_embedded, y)
print(neighs.predict([[1.1]]))
>>>[0]
print(neighs_tsne.predict([[1.1]]))
>>>[0]

尽管这是一个非常幼稚的示例,并且没有反映出复杂性,但是通过一些简单示例的实验,它确实可以工作。

编辑:另外,针对问题本身添加一些要点,因此没有必要是这种情况,但是,通过数学对其进行合理化将证明您没有具体结果(没有确定的是或否) 。

我希望这可以消除您对TSNE的一些担忧。


感谢您的好答案。总结一下:具有高度相似性的点很可能保持接近。我猜想,困惑度参数控制着用于概率计算的点数,因此,如果困惑度低,则簇可能会脱节。您能对早期夸张发表评论吗?此外,我假设使用TSNE空间将点离群或分类错误(将所有NN归类为另一类)的概率是否增加,如果在多次TSNE和随机初始化之后它们一致,则该概率会增加吗?
geometrikal

是的,困惑是影响彼此之间保持近距离关系的主要因素之一。从直观上讲,早期夸张是原始空间中的簇很紧密,而在嵌入式空间中簇之间会有多少空间(因此,既是困惑又是早期夸张的混合体,这会影响点之间的距离。关于最后一个问题,答案是的,这是因为规范的幂,可能会导致嵌入空间出现问题,所以存在分类错误的可能性
PSub
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.