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:
Name | Purpose | Status | Category | Notes |
---|---|---|---|---|
clustering | Data clustering | Tested / Benchmarked | Unsupervised learning | Clustering of unlabeled data; contains K-Means, Gaussian-Mixture-Model and DBSCAN |
kernel | Kernel methods for data transformation | Tested | Pre-processing | Maps feature vector into higher-dimensional space |
linear | Linear regression | Tested | Partial fit | Contains Ordinary Least Squares (OLS), Generalized Linear Models (GLM) |
elasticnet | Elastic Net | Tested | Supervised learning | Linear regression with elastic net constraints |
logistic | Logistic regression | Tested | Partial fit | Builds two-class logistic regression models |
reduction | Dimensionality reduction | Tested | Pre-processing | Diffusion mapping and Principal Component Analysis (PCA) |
trees | Decision trees | Experimental | Supervised learning | Linear decision trees |
svm | Support Vector Machines | Tested | Supervised learning | Classification or regression analysis of labeled datasets |
hierarchical | Agglomerative hierarchical clustering | Tested | Unsupervised learning | Cluster and build hierarchy of clusters |
bayes | Naive Bayes | Tested | Supervised learning | Contains Gaussian Naive Bayes |
ica | Independent component analysis | Tested | Unsupervised learning | Contains FastICA implementation |
pls | Partial Least Squares | Tested | Supervised learning | Contains PLS estimators for dimensionality reduction and regression |
tsne | Dimensionality reduction | Tested | Unsupervised learning | Contains exact solution and Barnes-Hut approximation t-SNE |
preprocessing | Normalization & Vectorization | Tested | Pre-processing | Contains data normalization/whitening and count vectorization/tf-idf |
nn | Nearest Neighbours & Distances | Tested / Benchmarked | Pre-processing | Spatial index structures and distance functions |
ftrl | Follow The Reguralized Leader - proximal | Tested / Benchmarked | Partial fit | Contains L1 and L2 regularization. Possible incremental update |
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 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;
pub use composing::*;
Modules§
- composing
- Composition models
- correlation
- Correlation analysis for dataset features
- dataset
- Datasets
- error
- Error types in Linfa
- metrics
- Common metrics functions for classification and regression
- param_
guard - prelude
- Linfa prelude.
- traits
- Provide traits for different classes of algorithms