Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 demo
Octocat-spinner-32 examples
Octocat-spinner-32 test
Octocat-spinner-32 .DS_Store
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md
Octocat-spinner-32 kmeans.js
Octocat-spinner-32 package.json
README.md

k-means

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

Usage

npm install --save kmeans

Testing

npm test

License is WTFPL

Something went wrong with that request. Please try again.