rust-ml/linfa

A Rust machine learning framework.

What it solves

Linfa provides a comprehensive toolkit for building machine learning applications in Rust. It aims to bring the functionality of Python's scikit-learn to the Rust ecosystem, offering a standardized way to handle common preprocessing tasks and classical machine learning algorithms.

How it works

Linfa is organized as a collection of sub-packages, each focusing on a specific category of ML. It provides implementations for supervised learning (like Decision Trees and SVMs), unsupervised learning (like K-Means and DBSCAN), and essential preprocessing tools (like PCA and normalization). For performance-critical linear algebra, it defaults to a pure-Rust implementation but allows users to opt into external BLAS/LAPACK backends such as OpenBLAS or Intel MKL.

Who it’s for

It is designed for developers who want to implement classical machine learning workflows within a Rust environment, benefiting from Rust's safety and performance.

Highlights

  • Broad Algorithm Support: Includes Naive Bayes, Random Forests, Logistic Regression, and Support Vector Machines.
  • Clustering & Reduction: Features K-Means, t-SNE, and Principal Component Analysis (PCA).
  • Flexible Backends: Supports pure-Rust linear algebra or high-performance external BLAS/LAPACK libraries.
  • Web Compatibility: Includes a wasm-bindgen feature for running in the browser via WASM.

Related

  • Project
  • Project
  • Project
  • Project
  • Project