[][src]Crate linfa_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, a wider effort to bootstrap a toolkit for classical Machine Learning implemented in pure Rust, kin in spirit 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

Right now linfa-clustering only provides a single algorithm, K-Means, with a couple of helper functions.

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

Check here for extensive benchmarks against scikit-learn's K-means implementation.

Structs

KMeans

K-means clustering aims to partition a set of unlabeled observations into clusters, where each observation belongs to the cluster with the nearest mean.

KMeansHyperParams

The set of hyperparameters that can be specified for the execution of the K-means algorithm.

KMeansHyperParamsBuilder

An helper struct used to construct a set of valid hyperparameters for the K-means algorithm (using the builder pattern).

Functions

generate_blob

Generate blob_size data points (a "blob") around blob_centroid.

generate_blobs

Given an input matrix blob_centroids, with shape (n_blobs, n_features), generate blob_size data points (a "blob") around each of the blob centroids.