Crate linfa

source · []
Expand description

linfa aims to provide a comprehensive toolkit to build Machine Learning applications with Rust.

Kin in spirit to Python’s scikit-learn, it focuses on common preprocessing tasks and classical ML algorithms for your everyday ML tasks.

Current state

Such bold ambitions! Where are we now? Are we learning yet?

linfa aims to provide a comprehensive toolkit to build Machine Learning applications with Rust.

Kin in spirit to Python’s scikit-learn, it focuses on common preprocessing tasks and classical ML algorithms for your everyday ML tasks.

Current state

Where does linfa stand right now? Are we learning yet?

linfa currently provides sub-packages with the following algorithms:

NamePurposeStatusCategoryNotes
clusteringData clusteringTested / BenchmarkedUnsupervised learningClustering of unlabeled data; contains K-Means, Gaussian-Mixture-Model and DBSCAN
kernelKernel methods for data transformationTestedPre-processingMaps feature vector into higher-dimensional space
linearLinear regressionTestedPartial fitContains Ordinary Least Squares (OLS), Generalized Linear Models (GLM)
elasticnetElastic NetTestedSupervised learningLinear regression with elastic net constraints
logisticLogistic regressionTestedPartial fitBuilds two-class logistic regression models
reductionDimensionality reductionTestedPre-processingDiffusion mapping and Principal Component Analysis (PCA)
treesDecision treesExperimentalSupervised learningLinear decision trees
svmSupport Vector MachinesTestedSupervised learningClassification or regression analysis of labeled datasets
hierarchicalAgglomerative hierarchical clusteringTestedUnsupervised learningCluster and build hierarchy of clusters
bayesNaive BayesTestedSupervised learningContains Gaussian Naive Bayes
icaIndependent component analysisTestedUnsupervised learningContains FastICA implementation
plsPartial Least SquaresTestedSupervised learningContains PLS estimators for dimensionality reduction and regression
tsneDimensionality reductionTestedUnsupervised learningContains exact solution and Barnes-Hut approximation t-SNE
preprocessingNormalization & VectorizationTestedPre-processingContains data normalization/whitening and count vectorization/tf-idf
nnNearest Neighbours & DistancesTested / BenchmarkedPre-processingSpatial index structures and distance functions

We believe that only a significant community effort can nurture, build, and sustain a machine learning ecosystem in Rust - there is no other way forward.

If this strikes a chord with you, please take a look at the roadmap and get involved!

Re-exports

pub use composing::*;
pub use dataset::Dataset;
pub use dataset::DatasetBase;
pub use dataset::DatasetPr;
pub use dataset::DatasetView;
pub use dataset::Float;
pub use dataset::Label;
pub use error::Error;
pub use param_guard::ParamGuard;

Modules

Composition models

Correlation analysis for dataset features

Datasets

Error types in Linfa

Common metrics functions for classification and regression

Linfa prelude.

Provide traits for different classes of algorithms