Expand description
§ferrolearn-cluster
Clustering algorithms for the ferrolearn machine learning framework.
This crate provides unsupervised clustering methods:
KMeans— K-Means clustering with k-Means++ initialization and parallelized assignment via Rayon (REQ-6).DBSCAN— Density-Based Spatial Clustering of Applications with Noise (REQ-7).GaussianMixture— Gaussian Mixture Models via the Expectation-Maximisation algorithm, with four covariance types (full, tied, diagonal, spherical) (REQ-3).AgglomerativeClustering— Bottom-up hierarchical clustering with Ward, Complete, Average, and Single linkage (REQ-5).MeanShift— Non-parametric mode-seeking clustering (REQ-23).SpectralClustering— Graph Laplacian eigenmap clustering (REQ-23).OPTICS— Ordering Points To Identify the Clustering Structure (REQ-23).Hdbscan— Hierarchical DBSCAN with automatic cluster detection.Birch— Balanced Iterative Reducing and Clustering using Hierarchies.LabelPropagation— Semi-supervised label propagation through a similarity graph.LabelSpreading— Semi-supervised label spreading via normalized graph Laplacian.AffinityPropagation— Exemplar-based clustering via message passing, automatically determines number of clusters.BisectingKMeans— Divisive hierarchical clustering that recursively bisects the largest cluster.BayesianGaussianMixture— Variational Bayesian GMM with automatic component pruning via Dirichlet Process or Dirichlet Distribution priors.FeatureAgglomeration— Hierarchical clustering of features (columns) with pooling-based dimensionality reduction.
§Design
All algorithms follow the compile-time safety pattern:
- The unfitted config struct implements
FitwithY = ()(unsupervised). KMeansproducesFittedKMeans, which implementsPredict(assign to nearest centroid) andTransform(distance to each centroid).DBSCANproducesFittedDBSCAN, which only stores labels and core sample indices — it does not implementPredict.GaussianMixtureproducesFittedGaussianMixture, which implementsPredict(hard assignment) andTransform(soft responsibilities).AgglomerativeClusteringproducesFittedAgglomerativeClustering, which stores labels and the merge tree — it does not implementPredict.MeanShiftproducesFittedMeanShift, which implementsPredict(assign to nearest center).SpectralClusteringproducesFittedSpectralClustering, which stores labels — it does not implementPredict.OPTICSproducesFittedOPTICS, which stores the reachability ordering and distances — it does not implementPredict.HdbscanproducesFittedHdbscan, which stores labels and probabilities — it does not implementPredict.BirchproducesFittedBirch, which stores labels and subcluster centers — it does not implementPredict.LabelPropagationproducesFittedLabelPropagation, which implementsPredictfor new data via nearest-neighbor lookup.LabelSpreadingproducesFittedLabelSpreading, which implementsPredictfor new data via nearest-neighbor lookup.AffinityPropagationproducesFittedAffinityPropagation, which stores exemplar indices and labels — it does not implementPredict.BisectingKMeansproducesFittedBisectingKMeans, which implementsPredict(assign to nearest center).BayesianGaussianMixtureproducesFittedBayesianGaussianMixture, which implementsPredict(hard assignment).FeatureAgglomerationproducesFittedFeatureAgglomeration, which implementsTransform(pool features).
§Float Generics
All algorithms are generic over F: num_traits::Float + Send + Sync + 'static,
supporting both f32 and f64.
Re-exports§
pub use affinity_propagation::AffinityPropagation;pub use affinity_propagation::FittedAffinityPropagation;pub use agglomerative::AgglomerativeClustering;pub use agglomerative::FittedAgglomerativeClustering;pub use agglomerative::Linkage;pub use bayesian_gmm::BayesianCovType;pub use bayesian_gmm::BayesianGaussianMixture;pub use bayesian_gmm::FittedBayesianGaussianMixture;pub use bayesian_gmm::WeightPriorType;pub use birch::Birch;pub use birch::FittedBirch;pub use bisecting_kmeans::BisectingKMeans;pub use bisecting_kmeans::BisectingStrategy;pub use bisecting_kmeans::FittedBisectingKMeans;pub use dbscan::DBSCAN;pub use dbscan::FittedDBSCAN;pub use feature_agglomeration::AgglomerativeLinkage;pub use feature_agglomeration::FeatureAgglomeration;pub use feature_agglomeration::FittedFeatureAgglomeration;pub use feature_agglomeration::PoolingFunc;pub use gmm::CovarianceType;pub use gmm::FittedGaussianMixture;pub use gmm::GaussianMixture;pub use hdbscan::FittedHdbscan;pub use hdbscan::Hdbscan;pub use kmeans::FittedKMeans;pub use kmeans::KMeans;pub use label_propagation::FittedLabelPropagation;pub use label_propagation::LabelPropagation;pub use label_propagation::LabelPropagationKernel;pub use label_spreading::FittedLabelSpreading;pub use label_spreading::LabelSpreading;pub use label_spreading::LabelSpreadingKernel;pub use mean_shift::FittedMeanShift;pub use mean_shift::MeanShift;pub use mini_batch_kmeans::FittedMiniBatchKMeans;pub use mini_batch_kmeans::MiniBatchKMeans;pub use mini_batch_kmeans::MiniBatchKMeansInit;pub use optics::FittedOPTICS;pub use optics::OPTICS;pub use spectral::FittedSpectralClustering;pub use spectral::SpectralClustering;
Modules§
- affinity_
propagation - Affinity Propagation clustering.
- agglomerative
- Agglomerative (bottom-up) hierarchical clustering.
- bayesian_
gmm - Bayesian Gaussian Mixture Models via Variational Inference.
- birch
- BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies).
- bisecting_
kmeans - Bisecting K-Means clustering.
- dbscan
- DBSCAN (Density-Based Spatial Clustering of Applications with Noise).
- feature_
agglomeration - Feature Agglomeration — hierarchical clustering of features.
- gmm
- Gaussian Mixture Models (GMM) using the Expectation-Maximisation algorithm.
- hdbscan
- HDBSCAN (Hierarchical Density-Based Spatial Clustering of Applications with Noise).
- kmeans
- K-Means clustering with k-Means++ initialization.
- label_
propagation - Label Propagation for semi-supervised classification.
- label_
spreading - Label Spreading for semi-supervised classification.
- mean_
shift - Mean Shift clustering.
- mini_
batch_ kmeans - Mini-Batch K-Means clustering.
- optics
- OPTICS — Ordering Points To Identify the Clustering Structure.
- spectral
- Spectral Clustering via graph Laplacian eigenmaps.