dbscanjs

1.0.1 • Public • Published

DBSCAN.js

This library implements a minimal DBSCAN algorithm in javascript.

Installation

npm install dbscanjs

Usage

This library exposes a single function dbscan.

dbscan(data, distance, epsilon, minPts) => labels [array]

  1. data: A list-like object of data to perform the clustering on
  2. distance: a function that takes any two items from the data array and returns a scalar value describing the distance between them.
  3. epsilon: The maximum distance between two points for them to be considered as being in the same neighborhood.
  4. minPts: The minimum number of points in any group for them to be considered a distinct group. All other points are considered to be noise, and will receive a label of -1.

labels is the returned list of clustered group labels. These labels correspond to the data points in data with the same array index. A label of -1 indicates the point is noise. All points with a value >= 0 indicate those points are in the same cluster, e.g. all points with label 1 belong to cluster 1.

Example

const dbscan = require("dbscanjs");
 
const data = [
  [0, 1],
  [1, 1],
  [1, 2],
  [2, 1],
  [3, 2],
  [10, 12],
  [12, 10],
  [13, 11],
  [13, 10],
  [8, 9]
];
 
function distance(a, b) {
  x = Math.pow(a[0] - b[0], 2);
  y = Math.pow(a[1] - b[1], 2);
  return Math.sqrt(+ y);
}
 
epsilon = 3;
minPts = 2;
labels = dbscan(data, distance, epsilon, minPts);
 
console.log(labels);
// [1, 1, 1, 1, 1, 0, 0, 0, 0, -1]

Readme

Keywords

none

Package Sidebar

Install

npm i dbscanjs

Weekly Downloads

4

Version

1.0.1

License

MIT

Unpacked Size

4.21 kB

Total Files

5

Last publish

Collaborators

  • tayden