是否有一种方法可以在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]])
在此问题上的任何帮助将不胜感激!
答案 0 :(得分:0)
tSNE是非线性,非参数嵌入。
因此,没有使用新点更新它的“封闭式”方法。更糟糕的是:添加新点可能需要移动现有点。
因此,将tSNE应用于新数据将需要对该方法进行实质性的更改,而不再是原始的tSNE。
答案 1 :(得分:0)
参数t-SNE可以选择应用于测试数据,但这在Sklearn中不可用。 Reference issue。
设置了这一点,我们已经提到它是在其他地方here
实现的