mlpack
Initial release | February 1, 2008[1] |
---|---|
Stable release | 4.4.0[2]
/ 28 May 2024 |
Repository | |
Written in | C++, Python, Julia, Go |
Operating system | Cross-platform |
Available in | English |
Type | Software library Machine learning |
License | Open source (BSD) |
Website | mlpack |
mlpack is a header-only machine learning software library for C++, built on top of the Armadillo library and the ensmallen numerical optimization library.[3] mlpack has an emphasis on scalability, speed, and ease-of-use. Its aim is to make machine learning possible for novice users by means of a simple, consistent API, while simultaneously exploiting C++ language features to provide maximum performance and maximum flexibility for expert users.[4] mlpack has also a light deployment infrastructure with minimum dependencies, making it perfect for embedded systems and low resource devices. Its intended target users are scientists and engineers.
It is open-source software distributed under the BSD license, making it useful for developing both open source and proprietary software. Releases 1.0.11 and before were released under the LGPL license. The project is supported by the Georgia Institute of Technology and contributions from around the world.
Features
[edit]Part of a series on |
Machine learning and data mining |
---|
Algorithms
[edit]mlpack contains a wide range of algorithms that are used to solved real problems from classification and regression in the Supervised learning paradigm to clustering and dimension reduction algorithms. In the following, a non exhaustive list of algorithms and models that mlpack supports:
- Collaborative Filtering
- Decision stumps (one-level decision trees)
- Density Estimation Trees
- Euclidean minimum spanning trees
- Gaussian Mixture Models (GMMs)
- Hidden Markov Models (HMMs)
- Kernel density estimation (KDE)
- Kernel Principal Component Analysis (KPCA)
- K-Means Clustering
- Least-Angle Regression (LARS/LASSO)
- Linear Regression
- Bayesian Linear Regression
- Local Coordinate Coding
- Locality-Sensitive Hashing (LSH)
- Logistic regression
- Max-Kernel Search
- Naive Bayes Classifier
- Nearest neighbor search with dual-tree algorithms
- Neighbourhood Components Analysis (NCA)
- Non-negative Matrix Factorization (NMF)
- Principal Components Analysis (PCA)
- Independent component analysis (ICA)
- Rank-Approximate Nearest Neighbor (RANN)
- Simple Least-Squares Linear Regression (and Ridge Regression)
- Sparse Coding, Sparse dictionary learning
- Tree-based Neighbor Search (all-k-nearest-neighbors, all-k-furthest-neighbors), using either kd-trees or cover trees
- Tree-based Range Search
Class templates for GRU, LSTM structures are available, thus the library also supports Recurrent Neural Networks.
Bindings
[edit]There are bindings to R, Go, Julia,[5], Python, and also to Command Line Interface (CLI) using terminal. Its binding system is extensible to other languages.
See also
[edit]- Armadillo (C++ library)
- List of numerical analysis software
- List of numerical libraries
- Numerical linear algebra
- Scientific computing
References
[edit]- ^ "Initial checkin of the regression package to be released · mlpack/mlpack". February 8, 2008. Retrieved May 24, 2020.
- ^ "Release 4.4.0". 28 May 2024. Retrieved 22 June 2024.
- ^ Ryan Curtin; et al. (2021). "The ensmallen library for flexible numerical optimization". Journal of Machine Learning Research. 22 (166): 1–6. arXiv:2108.12981. Bibcode:2021arXiv210812981C.
- ^ Ryan Curtin; et al. (2023). "mlpack 4: a fast, header-only C++ machine learning library". Journal of Open Source Software. 8 (82): 5026. arXiv:2302.00820.
- ^ "Mlpack/Mlpack.jl". 10 June 2021.