This is a `playground`

to test code. It runs a full `Node.js`

environment and already has all of `npm`

’s 400,000 packages pre-installed, including `@aidanconnelly/tsnejs`

with all `npm`

packages installed. **Try it out**:

var tsnejs = require("@aidanconnelly/tsnejs")

- all documents on RunKit are public
`require()`

any package directly from npm- use arrow functions, classes, template strings, and most of ES6
`await`

any promise instead of using callbacks (example)- create your own embedded
**node.js**snippets

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

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.

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).

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.

```
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.

syntax sugar

**Parameters**

`opt`

`field`

`defaultval`

return 0 mean unit standard deviation random number

return random normal number

utilitity that creates contiguous vector of zeros of size n

**Parameters**

`n`

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

compute L2 distance between two vectors

compute pairwise distance in all vectors in X

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

helper function

**Parameters**

`x`

t-SNE visualization algorithm

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.

Send questions to @karpathy.

MIT

- package on npmhttps://npmjs.com/package/@aidanconnelly/tsnejs
- licenseMIT

RunKit is a free, in-browser JavaScript dev environment for prototyping **Node.js** code, with every **npm** package installed. Sign up to share your code.

Sign Up for Free