8 releases (5 breaking)

0.6.0 Jun 15, 2022
0.5.1 Mar 1, 2022
0.5.0 Oct 21, 2021
0.4.0 Apr 28, 2021
0.1.0 Nov 23, 2019

#12 in Machine learning

Download history 616/week @ 2022-04-21 469/week @ 2022-04-28 850/week @ 2022-05-05 736/week @ 2022-05-12 538/week @ 2022-05-19 765/week @ 2022-05-26 500/week @ 2022-06-02 427/week @ 2022-06-09 647/week @ 2022-06-16 722/week @ 2022-06-23 369/week @ 2022-06-30 649/week @ 2022-07-07 582/week @ 2022-07-14 282/week @ 2022-07-21 211/week @ 2022-07-28 514/week @ 2022-08-04

1,747 downloads per month
Used in 3 crates (via egobox-moe)

MIT/Apache

425KB
8K SLoC

Clustering

linfa-clustering aims to provide pure Rust implementations of popular clustering algorithms.

The big picture

linfa-clustering is a crate in the linfa ecosystem, an effort to create a toolkit for classical Machine Learning implemented in pure Rust, akin to Python's scikit-learn.

You can find a roadmap (and a selection of good first issues) here - contributors are more than welcome!

Current state

linfa-clustering currently provides implementation of the following clustering algorithms, in addition to a couple of helper functions:

  • K-Means
  • DBSCAN
  • Approximated DBSCAN
  • Gaussian Mixture Model

Implementation choices, algorithmic details and a tutorial can be found here.

WARNING: Currently the Approximated DBSCAN implementation is slower than the normal DBSCAN implementation. Therefore DBSCAN should always be used over Approximated DBSCAN.

BLAS/Lapack backend

See this section to enable an external BLAS/LAPACK backend.

License

Dual-licensed to be compatible with the Rust project.

Licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 or the MIT license http://opensource.org/licenses/MIT, at your option. This file may not be copied, modified, or distributed except according to those terms.

Dependencies

~5–15MB
~234K SLoC