使用sklearn TSNE映射测试数据

时间:2018-12-21 16:00:27

标签: python scikit-learn transform cluster-analysis

是否有一种方法可以在python的sklearn.manifold.TSNE中提取映射过程,以便可以将新数据映射到缩减维空间中?

重要的是,我的意思是在这里不必重新训练新数据。

例如,假设您训练了TSNE地图,如下所示:

import numpy as np
from sklearn.manifold import TSNE
X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
X_embedded = TSNE(n_components=2).fit_transform(X)

如文档所示:https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html

您可以提取转换以便将新数据映射到同一空间吗?

Y = np.array([[0, 0.8, 0.8], [0.1, 0, 1], [1.2, 0.2, 1], [1, 1.1, 1]])

在此问题上的任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

tSNE是非线性,非参数嵌入。

因此,没有使用新点更新它的“封闭式”方法。更糟糕的是:添加新点可能需要移动现有点。

因此,将tSNE应用于新数据将需要对该方法进行实质性的更改,而不再是原始的tSNE。

答案 1 :(得分:0)

参数t-SNE可以选择应用于测试数据,但这在Sklearn中不可用。 Reference issue

设置了这一点,我们已经提到它是在其他地方here

实现的