Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
/somPublic

self-organizing map (SOM) / Kohonen network

License

NotificationsYou must be signed in to change notification settings

mljs/som

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NPM versionbuild statusDavid depsnpm 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

  • x - Dimension of the x axis
  • y - Dimension of the y axis
  • options - Object with options for the algorithm

Options

  • fields - Either a number (size of input vectors) or a map of field descriptions (to convert them to vectors)
  • iterations - Number of iterations over the training set for the training phase (default: 10). The total number of training steps will beiterations *trainingSet.length
  • learningRate - Multiplication coefficient for the learning algorithm (default: 0.1)
  • method - Iteration method of the learning algorithm (default: random)
  • random - Pick an object of the training set randomly
  • traverse - Go sequentially through the training set
  • randomizer - Function that must give numbers between 0 and 1 (default: Math.random)
  • distance - Function that computes the distance between two vectors of the same length (default: squared Euclidean distance)
  • gridType - Shape of the grid (default: rect)
  • rect - Rectangular grid
  • hexa - Hexagonal grid
  • torus - Boolean indicating if the grid should be considered a torus for the selection of the neighbors (default: true)

Example

varSOM=require('ml-som');varoptions={fields:[{name:'r',range:[0,255]},{name:'g',range:[0,255]},{name:'b',range:[0,255]}]};varsom=newSOM(20,20,options);

train(trainingSet)

Train the SOM with the providedtrainingSet.

Arguments

  • trainingSet - Array of training elements. If thefields was a number, each array element must be a normalized vector. If it was an object, each array element must be an object with at least the described properties, within the described ranges

Example

vartrainingSet=[{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 thefields 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()){varnodes=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

  • data - Data point or array of data points (default: training set).
  • computePosition - True if you want to compute the position of the point in the cell, using the direct neighbors (default: false). This option is currently only implemented for rectangular grids.

Example

// create and train the somvarresult1=som.predict({r:45,g:209,b:100});// result1 = [ 2, 26 ]varresult2=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

  • dataset - Array of vectors to for which to calculate fit values. Defaults to the training set.

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 themodel. If the model was created with a custom distance function, thedistance argument should be this function.

Arguments

  • model - JSON object generated withsom.export()
  • distanceFunction - Optionally provide the distance function used to create the model.

License

MIT

About

self-organizing map (SOM) / Kohonen network

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp