Need Public Method

    @aidanconnelly/tsnejs

    0.1.4 • Public • Published

    tSNEJS

    tSNEJS is an implementation of t-SNE visualization algorithm in Javascript.

    t-SNE is a visualization algorithm that embeds things in 2 or 3 dimensions. If you have some data and you can measure their pairwise differences, t-SNE visualization can help you identify clusters in your data.

    Online demo

    The main project website has a live example and more description.

    There is also the t-SNE CSV demo that allows you to simply paste CSV data into a textbox and tSNEJS computes and visualizes the embedding on the fly (no coding needed).

    Research Paper

    The algorithm was originally described in this paper:

    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.
    

    You can find the PDF here.

    Example

    npm --save i @jwalsh/tsnejs
    import * as tsnejs from '@jwalsh/tsnejs';
    
    const opt = {
      epsilon: 10,    // epsilon is learning rate (10 = default)
      perplexity: 30, // roughly how many neighbors each point influences (30 = default)
      dim: 2 // dimensionality of the embedding (2 = default)
    };
    
    const tsne = new tsnejs.tSNE(opt); // create a tSNE instance
    
    // initialize data. Here we have 3 points and some example pairwise dissimilarities
    const dists = [[1.0, 0.1, 0.2], [0.1, 1.0, 0.3], [0.2, 0.1, 1.0]];
    tsne.initDataDist(dists);
    
    // every time you call this, solution gets better
    [...Array(500)].forEach((_, i) => tsne.step());
    
    const Y = tsne.getSolution(); // Y is an array of 2-D points that you can plot

    The data can be passed to tSNEJS as a set of high-dimensional points using the tsne.initDataRaw(X) function, where X is an array of arrays (high-dimensional points that need to be embedded). The algorithm computes the Gaussian kernel over these points and then finds the appropriate embedding.

    API

    getopt

    syntax sugar

    Parameters

    • opt
    • field
    • defaultval

    return_v

    return 0 mean unit standard deviation random number

    randn

    return random normal number

    zeros

    utilitity that creates contiguous vector of zeros of size n

    Parameters

    • n

    randn2d

    utility that returns 2d array filled with random numbers or with value s, if provided

    L2

    compute L2 distance between two vectors

    xtod

    compute pairwise distance in all vectors in X

    d2p

    compute (p_{i|j} + p_{j|i})/(2n)

    sign

    helper function

    Parameters

    • x

    tSNE

    t-SNE visualization algorithm

    Web Demos

    There are two web interfaces to this library that we are aware of:

    • By Andrej, here.
    • By Laurens, here, which takes data in different format and can also use Google Spreadsheet input.

    About

    Send questions to @karpathy.

    License

    MIT

    Install

    npm i @aidanconnelly/tsnejs

    DownloadsWeekly Downloads

    6

    Version

    0.1.4

    License

    MIT

    Unpacked Size

    80.4 kB

    Total Files

    17

    Last publish

    Collaborators

    • aidanconnelly