{% extends "base.html" %} {% block content %}

A comprehensive toolkit for Statistical Learning in Rust.

Linfa is a comprehensive toolkit for statistical learning, providing algorithms for optimal model and density estimation.

It contains common learning algorithms such as Elastic Net, Support Vector Machines, Kernel Methods, Linear Decision Trees, etc. and bundles them together.

You can find the source code at rust-ml/linfa.

{% for page in examples.pages %} {% if loop.first %}
{% else %}
{% endif %} {{ page.content | safe }}
{% endfor %}

Fast by default

The Rust language allows us to implement everything directly without the need to trade performance for readability.

No need to have a second language for performance reason.

Embedded in the Rust ecosystem

We use many existing tools from the Rust ecosystem to improve the code quality.

We are using rustfmt, clippy, Tarpaulin, Github Actions and approx for testing and verification.

Reason more clearly

Benefit from a clear ownership model and structure your code flow with functional programming.

Many composing algorithms can be expressed more clearly with features missing in older imperative languages.

Published by rust-ml group

We are a group of ML/stats people who are exploring the language space for more performant and readable implementations.

Beginner friendly

No need to be an expert or have years of programming experience.

If you are interest in a specific implementation or need some inspiration to learn Rust for data processing reach out to us. We are happy to help on both sides.

FOSS and accessible

Everything is published under the Apache/MIT license and we are trying constantly to make the code as accessible as possible for humans and machines.

The development of Linfa happens in public and every contribution is welcome.

Clustering

Typical implementations for clustering algorithms, such as K-Means, Gaussian Mixture and DBSCAN.

Dimensionality reduction

Variance preserving algorithms with linear (PCA) and non-linear (Diffusion Maps) implementations.

The implementation uses LOBPCG and can handle high-dimensional data very efficiently.

Target modeling

Regression with shrinkage operators, such as LASSO and Ridge.

Classification of linear, as well as non-linear data with SVM and kernel-methods.

There are many more implementations, which you can find here.

{% endblock content %}