10 releases (6 breaking)
0.7.0 | Oct 16, 2023 |
---|---|
0.6.1 | Dec 3, 2022 |
0.6.0 | Jun 15, 2022 |
0.5.1 | Mar 1, 2022 |
0.1.0 | Nov 23, 2019 |
#268 in Machine learning
20,999 downloads per month
Used in 12 crates
(6 directly)
435KB
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 (Currently an alias for DBSCAN, due to its superior performance)
- Gaussian Mixture Model
Implementation choices, algorithmic details and a tutorial can be found here.
BLAS/Lapack backend
We found that the pure Rust implementation maintained similar performance to the BLAS/LAPACK version and have removed it with this PR. Thus, to reduce code complexity BLAS support has been removed for this module.
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
~6–16MB
~258K SLoC