【问题标题】:Map test data using sklearn TSNE使用 sklearn TSNE 映射测试数据
【发布时间】:2019-05-22 02:19:51
【问题描述】:

有没有办法在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]])

任何关于此事的帮助将不胜感激!

【问题讨论】:

  • 不要认为你可以在 sklearn 中使用 TSNE 保存,尝试搜索“parametric t-sne”,我认为有些是在 tensorflow 中实现的。 github.com/jsilter/parametric_tsne
  • 我不这么认为,在我来问之前似乎会有一个简单的答案:) 谢谢,我会尝试使用它!
  • 附带说明,这对 sklearn.manifold.PCA 是否可行,还是同样的问题?

标签: python scikit-learn transform cluster-analysis


【解决方案1】:

tSNE 是一种非线性、非参数嵌入。

所以没有“封闭形式”的方式来更新它的新点。更糟糕的是:添加新点可能需要移动现有点。

因此,将 tSNE 应用于新数据将需要对方法进行重大更改,它不再是原来的 tSNE。

【讨论】:

    【解决方案2】:

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

    设置后我们提到它在其他地方实现here

    【讨论】:

      猜你喜欢
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      相关资源
      最近更新 更多