Home

Awesome

ml-som

NPM version build status David deps npm download

self-organizing map (SOM) / Kohonen network

Installation

$ npm install ml-som

Methods

new SOM(x, y, [options])

Creates a new SOM instance with x * y dimensions.

Arguments

Options

Example

var SOM = require('ml-som');
var options = {
  fields: [
    { name: 'r', range: [0, 255] },
    { name: 'g', range: [0, 255] },
    { name: 'b', range: [0, 255] }
  ]
};

var som = new SOM(20, 20, options);

train(trainingSet)

Train the SOM with the provided trainingSet.

Arguments

Example

var trainingSet = [
  { r: 0, g: 0, b: 0 },
  { r: 255, g: 0, b: 0 },
  { r: 0, g: 255, b: 0 },
  { r: 0, g: 0, b: 255 },
  { r: 255, g: 255, b: 255 }
];

som.train(trainingSet);

getConvertedNodes()

Returns a 2D array containing the nodes of the grid, in the structure described by the fields option.

setTraining(trainingSet)

Set the training set for use with the next method

trainOne()

Executes the next training iteration and returns true. Returns false if the training is over. Useful to draw the grid or compute some things after each learning step.

Example

som.setTraining(trainingSet);
while(som.trainOne()) {
  var nodes = som.getConvertedNodes();
  // do something with the nodes
}

predict([data], [computePosition])

Returns for each data point the coordinates of the corresponding best matching unit (BMU) on the grid

Arguments

Example

// create and train the som
var result1 = som.predict({ r: 45, g: 209, b: 100 });
// result1 = [ 2, 26 ]
var result2 = som.predict([{ r: 45, g: 209, b: 100 }, { r: 155, g: 22, b: 12 }], true);
// result2 = [ [ 2, 26, [ 0.236, 0.694 ] ], [ 33, 12, [ 0.354, 0.152 ] ] ]

getFit([dataset])

Returns an array of fit values which are the square root of the distance between the input vector and its corresponding BMU.

Arguments

getQuantizationError()

Returns the mean of the fit values for the training set. This number can be used to compare several runs of the same SOM.

getUMatrix()

Returns a 2D array representing the grid. Each value is the mean of the distances between the corresponding node and its direct neighbors. Currently only available for square nodes

export()

Exports the model to a JSON object that can be written to disk and reloaded

SOM.load(model, [distanceFunction])

Returns a new SOM instance based on the model. If the model was created with a custom distance function, the distance argument should be this function.

Arguments

License

MIT