jupyter笔记本崩溃的scikit tsne dimensionality降低



我正在使用jupyter笔记本电脑和python 2.7。我有大约250,000个维数据集,我需要将其压缩到n个较低的维度。我正在使用Scikit tsne。在为n=5n=10运行TSNE时,它可以正常工作。但是,当我转到n=50或更多时,显示以下消息:"The kernel appears to have died."没有显示错误消息。问题是什么?是由于内存超载吗?我应该在终端中以脚本而不是jupyter运行代码吗?

我的TSNE功能:

def tsne_to_n_dimensions(n):
    start=timer()
    #tsne
    print diff_df.shape
    tsne = sklearn.manifold.TSNE(n_components=n,verbose=2)
    data_nd_tsne =tsne.fit_transform(diff_df)
    calculate stuff from data_nd_tsne        
    return stuff

和diff_df是全局熊猫数据框

我经历了这个这是但找不到解决方案

我已经找到了使用python-bhtsne的解决方案,这也是 barnes-hut的T-Distribed随机邻居嵌入方法的实现。

它非常容易实现,甚至提供了一个选项,可以在tsne的每次运行中都具有相同的参数,这是scikit实现中不存在的。

这是Laurens van der Maaten的原始实施的Python包装。

因此,基本上您只需要执行以下操作,而不是scikit的常规TSNE

from bhtsne import tsne
data_nd_tsne = tsne(diff_df)

相关内容

  • 没有找到相关文章

最新更新