Skip to content

mljs/svm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ml-svm

NPM version build status David deps npm download

Support Vector Machines in Javascript

⚠️ ⚠️ This is a simplified implementation of SVM, primarily meant for students to understand the algorithm. For real world applications, please check out libsvm-js ⚠️ ⚠️

Implementation of this simplified Sequential Minimization Optimization algorithm

Installation

npm install ml-svm

API

API documentation

Example

// Instantiate the svm classifier
var SVM = require('ml-svm');

var options = {
  C: 0.01,
  tol: 10e-4,
  maxPasses: 10,
  maxIterations: 10000,
  kernel: 'rbf',
  kernelOptions: {
    sigma: 0.5
  }
};

var svm = new SVM(options);

// Train the classifier - we give him an xor
var features = [[0,0],[0,1],[1,1],[1,0]];
var labels = [1, -1, 1, -1];
svm.train(features, labels);

// Let's see how narrow the margin is
var margins = svm.margin(features);

// Let's see if it is separable by testing on the training data
svm.predict(features); // [1, -1, 1, -1]

// I want to see what my support vectors are
var supportVectors = svm.supportVectors();
 
// Now we want to save the model for later use
var model = svm.toJSON();

/// ... later, you can make predictions without retraining the model
var importedSvm = SVM.load(model);
importedSvm.predict(features); // [1, -1, 1, -1] 

Authors

License

MIT