k-means clustering in configurable dimensions, in-browser and with node.js.
In order to support learning about the algorithm, this library is split into very small bits, so you can use each step separately.
var kmeans = require('kmeans');
var d = [1, 2, 3];
// take a random sample of the array d
var s = kmeans.sample(d, 1);
console.log(s);
// [1]
// Get the euclidean distance between two points represented as
// arrays
console.log(kmeans.dist([0, 0], [0, 1]), 1);
// 1
In order to support a variety of data, accessors are used in functions like
means_clusters(x, means, distance, val)
(though with good defaults -
distance defaults to euclidean, val defaults to function(x) { return x; }
).
var c = kmeans.means_clusters([3], [3, 4])
console.log(c.length);
// 1
npm install --save kmeans
npm test