Struct dbscan::Model[][src]

pub struct Model<T> where
    T: Copy,
    f64: From<T>, 
{ pub eps: f64, pub mpt: usize, // some fields omitted }

DBSCAN parameters

Fields

Epsilon value - maximum distance between points in a cluster

Minimum number of points in a cluster

Methods

impl<T> Model<T> where
    T: Copy,
    f64: From<T>, 
[src]

Create a new Model with a set of parameters

Arguments

  • eps - maximum distance between datapoints within a cluster
  • min_points - minimum number of datapoints to make a cluster

Change the function used to calculate distance between points. Euclidean distance is the default measurement used.

Run the DBSCAN algorithm on a given population of datapoints.

A vector of Classification enums is returned, where each element corresponds to a row in the input matrix.

Arguments

  • population - a matrix of datapoints, organized by rows

Example

use dbscan::Classification::*;
use dbscan::Model;

let model = Model::new(1.0, 3);
let inputs = vec![
    vec![1.5, 2.2],
    vec![1.0, 1.1],
    vec![1.2, 1.4],
    vec![0.8, 1.0],
    vec![3.7, 4.0],
    vec![3.9, 3.9],
    vec![3.6, 4.1],
    vec![10.0, 10.0],
];
let output = model.run(&inputs);
assert_eq!(
    output,
    vec![
        Edge(0),
        Core(0),
        Core(0),
        Core(0),
        Core(1),
        Core(1),
        Core(1),
        Noise
    ]
);

Auto Trait Implementations

impl<T> Send for Model<T>

impl<T> Sync for Model<T>