Crate fuzzy_dbscan

Source
Expand description

An implementation of the FuzzyDBSCAN algorithm.

§Example

extern crate fuzzy_dbscan;

#[derive(Debug)]
struct Point {
    x: f64,
    y: f64,
}

impl fuzzy_dbscan::MetricSpace for Point {
    fn distance(&self, other: &Self) -> f64 {
        ((other.x - self.x).powi(2) + (other.y - self.y).powi(2)).sqrt()
    }
}

fn main() {
    let points = vec![
        Point { x: 0.0, y: 0.0 },
        Point { x: 100.0, y: 100.0 },
        Point { x: 105.0, y: 105.0 },
        Point { x: 115.0, y: 115.0 },
    ];

    let fuzzy_dbscan = fuzzy_dbscan::FuzzyDBSCAN {
        eps_min: 10.0,
        eps_max: 20.0,
        pts_min: 1.0,
        pts_max: 2.0,
    };

    println!("{:?}", fuzzy_dbscan.cluster(&points));
}

Structs§

Assignment
An element of a cluster.
FuzzyDBSCAN
An instance of the FuzzyDBSCAN algorithm.

Enums§

Category
A high-level classification, as defined by the FuzzyDBSCAN algorithm.

Traits§

MetricSpace
A trait to compute distances between points.

Type Aliases§

Cluster
A group of assigned points.