首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sklearn python中的TSNE

sklearn python中的TSNE
EN

Stack Overflow用户
提问于 2016-04-26 17:41:38
回答 1查看 2.3K关注 0票数 0

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

我取一个小的数据集:

代码语言:javascript
复制
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:

代码语言:javascript
复制
tsne = manifold.TSNE(n_components=2,random_state=0, metric=Distance)

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

代码语言:javascript
复制
def Distance(X,Y):
   Result = spatial.distance.euclidean(X,Y)
   return Result

但可视化不会因为t-sne而改变...可视化并没有考虑到我的点之间的距离。

如果我去掉这个指标:

代码语言:javascript
复制
tsne = manifold.TSNE(n_components=2,random_state=0)

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

你有什么解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-01 12:01:25

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

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36861098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档