All Projects → rust-ml → Linfa

rust-ml / Linfa

Licence: other
A Rust machine learning framework.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Linfa

Numcpp
C++ implementation of the Python Numpy library
Stars: ✭ 2,031 (+150.12%)
Mutual labels:  algorithms, scientific-computing
Algorithm
Algorithm is a library of tools that is used to create intelligent applications.
Stars: ✭ 787 (-3.08%)
Mutual labels:  algorithms
Mfem
Lightweight, general, scalable C++ library for finite element methods
Stars: ✭ 667 (-17.86%)
Mutual labels:  scientific-computing
Cpprobotics
cpp implementation of robotics algorithms including localization, mapping, SLAM, path planning and control
Stars: ✭ 727 (-10.47%)
Mutual labels:  algorithms
Learn Julia The Hard Way
Learn Julia the hard way!
Stars: ✭ 679 (-16.38%)
Mutual labels:  scientific-computing
Advanced Algorithms
100+ algorithms & data structures generically implemented in C#.
Stars: ✭ 752 (-7.39%)
Mutual labels:  algorithms
Onboarding
A list of resources we at flyeralarm use to get new developers up and running
Stars: ✭ 648 (-20.2%)
Mutual labels:  algorithms
Pyclustering
pyclustring is a Python, C++ data mining library.
Stars: ✭ 806 (-0.74%)
Mutual labels:  algorithms
Etl
Embedded Template Library
Stars: ✭ 783 (-3.57%)
Mutual labels:  algorithms
Casadi
CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.
Stars: ✭ 714 (-12.07%)
Mutual labels:  scientific-computing
Dsjslib
A library implementing several standard data structures and utilities, in JavaScript. Its written and tested using Node.js which is the target platform.
Stars: ✭ 707 (-12.93%)
Mutual labels:  algorithms
Swift Algorithm Club
Algorithms and data structures in Swift, with explanations!
Stars: ✭ 25,731 (+3068.84%)
Mutual labels:  algorithms
Algo Basic
专注于分享算法,计算机基础(包括计算机网络,操作系统,MySQL等),无论是应付面试,还是提升自己地内功,这里都能帮到你
Stars: ✭ 768 (-5.42%)
Mutual labels:  algorithms
Dsa.js Data Structures Algorithms Javascript
🥞Data Structures and Algorithms explained and implemented in JavaScript + eBook
Stars: ✭ 6,251 (+669.83%)
Mutual labels:  algorithms
Pyopencl
OpenCL integration for Python, plus shiny features
Stars: ✭ 790 (-2.71%)
Mutual labels:  scientific-computing
Ruptures
ruptures: change point detection in Python
Stars: ✭ 654 (-19.46%)
Mutual labels:  scientific-computing
Reflow
A language and runtime for distributed, incremental data processing in the cloud
Stars: ✭ 706 (-13.05%)
Mutual labels:  scientific-computing
Android Notes
Android开发核心知识点笔记(不断更新中🔥)
Stars: ✭ 737 (-9.24%)
Mutual labels:  algorithms
30 Seconds Of Cpp
30 Seconds of C++ (STL in C++). Read More about 30C++ here 👉
Stars: ✭ 815 (+0.37%)
Mutual labels:  algorithms
Itk
Insight Toolkit (ITK) -- Official Repository. ITK builds on a proven, spatially-oriented architecture for processing, segmentation, and registration of scientific images in two, three, or more dimensions.
Stars: ✭ 801 (-1.35%)
Mutual labels:  scientific-computing
Linfa mascot icon

Linfa

crates.io Documentation DocumentationLatest Codequality Run Tests

linfa (Italian) / sap (English):

The vital circulating fluid of a plant.

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.

Website | Community chat

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

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!

BLAS/Lapack backend

At the moment you can choose between the following BLAS/LAPACK backends: openblas, netblas or intel-mkl

Backend Linux Windows macOS
OpenBLAS ✔️ - -
Netlib ✔️ - -
Intel MKL ✔️ ✔️ ✔️

For example if you want to use the system IntelMKL library for the PCA example, then pass the corresponding feature:

cd linfa-reduction && cargo run --release --example pca --features linfa/intel-mkl-system

This selects the intel-mkl system library as BLAS/LAPACK backend. On the other hand if you want to compile the library and link it with the generated artifacts, pass intel-mkl-static.

License

Dual-licensed to be compatible with the Rust project.

Licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 or the MIT license http://opensource.org/licenses/MIT, at your option. This file may not be copied, modified, or distributed except according to those terms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].