fuzzy_dbscan

Crates.iofuzzy_dbscan
lib.rsfuzzy_dbscan
version0.3.0
sourcesrc
created_at2018-07-19 20:52:03.491259
updated_at2018-12-06 23:16:20.137141
descriptionAn implementation of the FuzzyDBSCAN algorithm
homepagehttps://github.com/schulzch/fuzzy_dbscan
repositoryhttps://github.com/schulzch/fuzzy_dbscan
max_upload_size
id75126
size254,918
Christoph Schulz (schulzch)

documentation

README

fuzzy_dbscan Crates.io Docs.rs

An implementation of the FuzzyDBSCAN algorithm [1].

FuzzyDBSCAN is an agglomerative fuzzy clustering algorithm that groups a set of points in such a way that one point can belong to more than one group. The assignment of a point is expressed as a category (core, border, noise) and a soft label (between 0.0 and 1.0). Only points from the border category can be assigned ambiguously.

Example

An example of two slightly connected clusters (red and blue) where the transition is assigned to both clusters, i.e., fuzzy (red + blue = purple). Core points have an enclosing circle, whereas border points do not. The opacity indicates the degree of membership, i.e., soft label.

Usage

See documentation for an example.

Usage (WASM)

Compile the crate to WASM using wasm-pack build --target=nodejs (or --target=browser), then run it using:

var FuzzyDBSCAN = require('fuzzy_dbscan.js'); // only for Node.js

var fuzzyDBSCAN = new FuzzyDBSCAN.FuzzyDBSCAN();
fuzzyDBSCAN.eps_min = 10.0;
fuzzyDBSCAN.eps_max = 20.0;
fuzzyDBSCAN.pts_min = 1;
fuzzyDBSCAN.pts_max = 2;

console.log(fuzzyDBSCAN.cluster([{x: 0, y: 0}, {x: 100, y: 100}, {x: 105, y: 105}, {x: 115, y: 115}]));

References

[1] Dino Ienco, and Gloria Bordogna. "Fuzzy extensions of the DBScan clustering algorithm." Soft Computing (2016).

Versioning

This project is maintained under the Semantic Versioning guidelines.

License

Licensed under the Apache 2.0 License. Copyright © 2018 Christoph Schulz.

Commit count: 42

cargo fmt