Awesome Open Source
Awesome Open Source


npm npm GitHub stars


The JavaScript Machine Learning Toolkit, or JSMLT, is an open source JavaScript library for education in machine learning. It implements several well-known supervised learning algorithms in an understandable, modular and well-commented way. Furthermore, visualization examples are provided which allow you to explore the way different machine learning algorithms work. Ultimately, JSMLT is intended to provide students with a better learning experience when studying machine learning algorithms.

If you want to explore a visualization of the machine learning algorithms in JSMLT, check out It provides an interactive environment for using JSMLT's algorithms.

Getting started

This short guide will help you get started with JSMLT.


We're assuming you've got Node.js and npm installed. If you haven't, you should: download and install it from

To install JSMLT into your npm project via npm, run

npm install @jsmlt/jsmlt

A simple example

In this small example, we're going to train an SVM on a small example dataset. The code example below starts with loading JSMLT, creating some dummy training and test data, and running an SVM classifier on it. It's pretty simple!

If you want to run this example without having to set up anything by yourself, check out the JSMLT examples repository. It includes the example below, and requires no further setup: it's ready to run!

// Import JSMLT library
var jsmlt = require('@jsmlt/jsmlt');

// Training data
train_X = [[-1,-1], [-1,1], [1,1], [1,-1]];
train_y = [0, 0, 1, 1];

// Testing data
test_X = [[1,2], [1,-2], [-1,-2], [-1,2]];

// Create and train classifier
var clf = new jsmlt.Supervised.SVM.SVM({
  kernel: new jsmlt.Kernel.Linear(),
clf.train(train_X, train_y);

// Make predictions on test data

Running this simple example will output the classification result [1,1,0,0], meaning it classified the first two points as 0, and the second two points as 1.


The entire API documentation can be found here. You can also build the documentation locally by downloading and installing JSMLT and running npm run-script build-documentation: the documentation will then be available in the docs folder.

Supervised learning algorithms (classifiers)

Unsupervised learning algorithms (clustering)



Model selection



Classification boundaries


JSMLT is maintained by Jesper van Engelen, and is in active development. It is currently not ready to be used in any production environments.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (69,571
machine-learning (3,567
classification (274
javascript-library (210
svm (58
logistic-regression (53
random-forest (53
knn (29