tsnejs, 在Javascript中,可视化算法的实现

分享于 

3分钟阅读

GitHub

  繁體 雙語
Implementation of t-SNE visualization algorithm in Javascript.
  • 源代码名称:tsnejs
  • 源代码网址:http://www.github.com/karpathy/tsnejs
  • tsnejs源代码文档
  • tsnejs源代码下载
  • Git URL:
    git://www.github.com/karpathy/tsnejs.git
    Git Clone代码到本地:
    git clone http://www.github.com/karpathy/tsnejs
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/karpathy/tsnejs
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    tSNEJS

    tSNEJS在Javascript中的可视化算法实现。

    这是一个可视化算法,嵌入了 2或者 3维。 如果你有一些数据,并且可以测量它们的两个差异,可以视化可以帮助你识别数据集群。 请参阅示例 below。

    在线演示

    主项目网站有一个示例和更多描述。

    的CSV演示工具允许你简单地将CSV数据粘贴到文本框中,并在fly计算并可视化embedding嵌入到 fly。

    研究论文

    算法最初是在本文中描述的:

    
    L.J.P. van der Maaten and G.E. Hinton.
    
    
    Visualizing High-Dimensional Data Using t-SNE. Journal of Machine Learning Research
    
    
    9(Nov):2579-2605, 2008.
    
    
    
    

    你可以在这里找到 PDF

    示例代码

    将 tsne.js 导入文档: <script src="tsne.js"></script> 下面是一些示例代码:

    var opt = {}opt.epsilon=10; // epsilon is learning rate (10 = default)opt.perplexity=30; // roughly how many neighbors each point influences (30 = default)opt.dim=2; // dimensionality of the embedding (2 = default)var tsne =newtsnejs.tSNE(opt); // create a tSNE instance// initialize data. Here we have 3 points and some example pairwise dissimilaritiesvar dists = [[1.0, 0.1, 0.2], [0.1, 1.0, 0.3], [0.2, 0.1, 1.0]];tsne.initDataDist(dists);for(var k =0; k <500; k++) {
     tsne.step(); // every time you call this, solution gets better}varY=tsne.getSolution(); // Y is an array of 2-D points that you can plot

    可以使用 tsne.initDataRaw(X) 函数将数据作为一组高维点传递给 tSNEJS,其中X 是数组( 需要嵌入的高维点)的array。 算法在这些点上计算高斯核,然后找到合适的嵌入。

    网络演示

    我们意识到这个库有两个网络接口:

    将问题发送到 @karpathy

    许可证

    MIT