Density Based Clustering in JavaScript
npm install density-clusteringbash
npm install density-clustering
`
Browser:
`bash
bower install density-clustering
build
npm install
gulp
`
Examples
$3
`js
var dataset = [
[1,1],[0,1],[1,0],
[10,10],[10,13],[13,13],
[54,54],[55,55],[89,89],[57,55]
];
var clustering = require('density-clustering');
var dbscan = new clustering.DBSCAN();
// parameters: 5 - neighborhood radius, 2 - number of points in neighborhood to form a cluster
var clusters = dbscan.run(dataset, 5, 2);
console.log(clusters, dbscan.noise);
/*
RESULT:
[
[0,1,2],
[3,4,5],
[6,7,9],
[8]
]
NOISE: [ 8 ]
*/
`
$3
`js
// REGULAR DENSITY
var dataset = [
[1,1],[0,1],[1,0],
[10,10],[10,11],[11,10],
[50,50],[51,50],[50,51],
[100,100]
];
var clustering = require('density-clustering');
var optics = new clustering.OPTICS();
// parameters: 2 - neighborhood radius, 2 - number of points in neighborhood to form a cluster
var clusters = optics.run(dataset, 2, 2);
var plot = optics.getReachabilityPlot();
console.log(clusters, plot);
/*
RESULT:
[
[0,1,2],
[3,4,5],
[6,7,8],
[9]
]
*/
`
`js
// VARYING DENSITY
var dataset = [
[0,0],[6,0],[-1,0],[0,1],[0,-1],
[45,45],[45.1,45.2],[45.1,45.3],[45.8,45.5],[45.2,45.3],
[50,50],[56,50],[50,52],[50,55],[50,51]
];
var clustering = require('density-clustering');
var optics = new clustering.OPTICS();
// parameters: 6 - neighborhood radius, 2 - number of points in neighborhood to form a cluster
var clusters = optics.run(dataset, 6, 2);
var plot = optics.getReachabilityPlot();
console.log(clusters, plot);
/*
RESULT:
[
[0, 2, 3, 4],
[1],
[5, 6, 7, 9, 8],
[10, 14, 12, 13],
[11]
]
*/
`
$3
`js
var dataset = [
[1,1],[0,1],[1,0],
[10,10],[10,13],[13,13],
[54,54],[55,55],[89,89],[57,55]
];
var clustering = require('density-clustering');
var kmeans = new clustering.KMEANS();
// parameters: 3 - number of clusters
var clusters = kmeans.run(dataset, 3);
console.log(clusters);
/*
RESULT:
[
[0,1,2,3,4,5],
[6,7,9],
[8]
]
*/
`
Testing
Open folder and run:
`bash
mocha -R spec
``