Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
ml-som
Advanced tools
Readme
self-organizing map (SOM) / Kohonen network
$ npm install ml-som
Creates a new SOM instance with x * y dimensions.
Arguments
x
- Dimension of the x axisy
- Dimension of the y axisoptions
- Object with options for the algorithmOptions
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 be iterations
* 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 randomlytraverse
- Go sequentially through the training setrandomizer
- 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: square euclidean distance)gridType
- Shape of the grid (default: rect)rect
- Rectangular gridhexa
- Hexagonal gridtorus
- Boolean indicating if the grid should be considered a torus for the selection of the neighbors (default: true)Example
var SOM = require('ml-som');
var options = {
fields: {
r: [0, 255],
g: [0, 255],
b: [0, 255]
}
};
var som = new SOM(20, 20, options);
Train the SOM with the provided trainingSet
.
Arguments
trainingSet
- Array of training elements. If the fields
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 rangesExample
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);
Returns a 2D array containing the nodes of the grid, in the structure described by the fields
option.
Set the training set for use with the next method
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
}
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 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 ] ] ]
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.Returns the mean of the fit values for the training set. This number can be used to compare several runs of the same SOM.
Exports the model to a JSON object that can be written to disk and reloaded
Arguments
includeDistance
- Boolean indicating if the distance function should be included in the model as a String (not recommended). Note that there is no need to include the default function and that it cannot work if the function depends on variables that are out of its scope (default: false).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
model
- JSON object generated with som.export()
distanceFunction
- Optionally provide the distance function used to create the model.MIT
FAQs
Self-organizing map (SOM) / Kohonen network
The npm package ml-som receives a total of 79 weekly downloads. As such, ml-som popularity was classified as not popular.
We found that ml-som demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.