{% extends "base.html" %}
{% block content %}
<div class="expose"><div class="grid">
<div class="introduction">
<h1>A comprehensive toolkit for Statistical Learning in Rust.</h1>
<p>
Linfa is a comprehensive toolkit for statistical learning, providing algorithms for optimal model and density estimation.
</p>
<p>
It contains common learning algorithms such as Elastic Net, Support Vector Machines, Kernel Methods, Linear Decision Trees, etc. and bundles them together.
</p>
<p>
You can find the source code at <a href="https://github.com/rust-ml/linfa">rust-ml/linfa</a>.
</p>
</div>
<div class="code-examples">
<select title="Choose a code example to display">
{% set examples = get_section(path="snippets/_index.md") %}
{% for page in examples.pages %}
{% if loop.first %}
<option data-example="{{ page.title }}" selected="selected">
{% else %}
<option data-example="{{ page.title }}">
{% endif %}
{{ page.title }}
</option>
{% endfor %}
</select>
{% for page in examples.pages %}
{% if loop.first %}
<div class="example visible" data-example="{{ page.title }}">
{% else %}
<div class="example" data-example="{{ page.title }}">
{% endif %}
{{ page.content | safe }}
</div>
{% endfor %}
</div>
</div></div>
<div class="highlights">
<div class="colored"><div class="grid">
<section>
<h2>Fast by default</h2>
<p>The Rust language allows us to implement everything directly without the need to trade performance for readability.</p>
<p>No need to have a second language for performance reason.</p>
</section>
<section>
<h2>Embedded in the Rust ecosystem</h2>
<p>We use many existing tools from the Rust ecosystem to improve the code quality.</p>
<p>We are using <a href="https://github.com/rust-lang/rustfmt">rustfmt</a>, <a href="https://github.com/rust-lang/rust-clippy">clippy</a>, <a href="https://github.com/xd009642/tarpaulin">Tarpaulin</a>, Github Actions and <a href="https://docs.rs/approx/0.4.0/approx/">approx</a> for testing and verification.</p>
</section>
<section>
<h2>Reason more clearly</h2>
<p>Benefit from a clear ownership model and structure your code flow with functional programming.</p>
<p>Many composing algorithms can be expressed more clearly with features missing in older imperative languages.</p>
</section>
</div></div>
<div class="not-colored"><div class="grid">
<section>
<h2>Published by <a href="https://github.com/rust-ml">rust-ml</a> group</h2>
<p>We are a group of ML/stats people who are exploring the language space for more performant and readable implementations.</p>
</section>
<section>
<h2>Beginner friendly</h2>
<p>No need to be an expert or have years of programming experience.</p>
<p>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.</p>
</section>
<section>
<h2>FOSS and accessible</h2>
<p>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.</p>
<p>The development of Linfa happens in public and every contribution is welcome.</p>
</section>
</div></div>
<div class="colored"><div class="grid">
<section>
<h2>Clustering</h2>
<p>Typical implementations for clustering algorithms, such as K-Means, Gaussian Mixture and DBSCAN.</p>
</section>
<section>
<h2>Dimensionality reduction</h2>
<p>Variance preserving algorithms with linear (PCA) and non-linear (Diffusion Maps) implementations.</p>
<p>The implementation uses LOBPCG and can handle high-dimensional data very efficiently.</p>
</section>
<section>
<h2>Target modeling</h2>
<p>Regression with shrinkage operators, such as LASSO and Ridge.</p>
<p>Classification of linear, as well as non-linear data with SVM and kernel-methods.</p>
<p>There are many more implementations, which you can find <a href="https://github.com/rust-ml/linfa#current-state">here</a>.</p>
</section>
</div></div>
</div>
{% endblock content %}