【问题标题】:TSNE in sklearn pythonsklearn python中的TSNE
【发布时间】:2016-08-20 01:20:08
【问题描述】:

我在 python 中使用t-SNE 有一个小问题。

我拿了一个小数据集:

A = np.matrix([[0.2,  0.3, 0.6, 0.8], 
               [0.2,  0.25, 0.55, 0.85],
               [0.2,  0.3, 0.6, 0.8],
               [0.64,  0.8, 0.2, 0.2],
               [0.65,  0.8, 0.2, 0.2],
               [0.65,  0.75, 0.2, 0.15], 
               [0.7,  0.8, 0.2, 0.2]])

然后,我使用以下命令在其上运行 t-SNE:

tsne = manifold.TSNE(n_components=2,random_state=0, metric=Distance)

这里,Distance 是一个函数,它以两个数组作为输入,计算它们之间的距离并返回距离。 此功能有效。如果我改变我的值,我可以看到输出发生变化。

def Distance(X,Y):
   Result = spatial.distance.euclidean(X,Y)
   return Result

但是使用 t-sne 的可视化并没有改变......并且可视化不尊重我的点之间的距离。

如果我删除指标:

tsne = manifold.TSNE(n_components=2,random_state=0)

它仍然给我同样的结果......

你有什么解决办法吗?

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    是因为默认metriceuclidean。因此,与默认设置相比,您实际上您不会更改任何内容。您可以在here 看到默认参数。 我也将它们复制并粘贴在这里:

    class sklearn.manifold.TSNE(n_components=2, perplexity=30.0, early_exaggeration=4.0, learning_rate=1000.0, n_iter=1000, n_iter_without_progress=30, min_grad_norm=1e-07, metric='euclidean', init='random', verbose=0, random_state=None, method='barnes_hut', angle=0.5)
    

    【讨论】:

      猜你喜欢
      • 2019-01-16
      • 2017-07-21
      • 2019-05-22
      • 2019-11-08
      • 2019-06-13
      • 2023-04-02
      • 2020-05-05
      • 2018-11-03
      • 2019-02-09
      相关资源
      最近更新 更多