Documentation for mlpack

🔗 A fast, flexible machine learning library

mlpack is an intuitive, fast, and flexible header-only C++ machine learning library with bindings to other languages. It aims to provide fast, lightweight implementations of both common and cutting-edge machine learning algorithms.

mlpack’s lightweight C++ implementation makes it ideal for deployment, and it can also be used for interactive prototyping via C++ notebooks (these can be seen in action on mlpack’s homepage).

In addition to its powerful C++ interface, mlpack also provides command-line programs, and bindings to the Python, R, Julia, and Go languages.

If you use mlpack, please cite the software.

🔗 mlpack basics

Installing mlpack can be done using the instructions in the README; or the Windows build guide. The following basic guides are highly recommended before using mlpack.

🔗 mlpack algorithm documentation

Documentation for each machine learning algorithm that mlpack implements is detailed in the sections below.

🔗 Classification algorithms

Classify points as discrete labels (0, 1, 2, …).

🔗 Regression algorithms

Predict continuous values.

🔗 Clustering algorithms

Group points into clusters.

🔗 Geometric algorithms

Computations based on distance metrics.

🔗 Preprocessing utilities

Prepare data for machine learning algorithms.

🔗 Transformations

Transform data from one space to another.

🔗 Modeling utilities

Tools for assembling a full data science pipeline.

🔗 Bindings to other languages

mlpack’s bindings to other languages have less complete functionality than mlpack in C++, but almost all the same algorithms are available.

Python – quickstart – reference
Julia – quickstart – reference
R – quickstart – reference
Command-line programs – quickstart – reference
Go – quickstart – reference

🔗 Examples and further documentation

For additional documentation beyond what is covered in all the resources above, the source code should be consulted. Each method is fully documented.

🔗 Developer documentation

The following general documentation can be useful if you are interested in contributing to mlpack:

Throughout the codebase, mlpack uses some common template parameter policies. These are documented below.

In addition, the following documentation may be useful when developing bindings for other languages:

🔗 Changelog

For a list of changes in each version of mlpack, see the changelog.