MLPACK  1.0.3
MLPACK Documentation


MLPACK is an intuitive, fast, scalable C++ machine learning library, meant to be a machine learning analog to LAPACK. It aims to implement a wide array of machine learning methods and function as a "swiss army knife" for machine learning researchers. The MLPACK development website can be found at

MLPACK uses the Armadillo C++ matrix library ( for general matrix, vector, and linear algebra support. MLPACK also uses the program_options, math_c99, and unit_test_framework components of the Boost library; in addition, LibXml2 is used.

How To Use This Documentation

This documentation is API documentation similar to Javadoc. It isn't necessarily a tutorial, but it does provide detailed documentation on every namespace, method, and class.

Each MLPACK namespace generally refers to one machine learning method, so browsing the list of namespaces provides some insight as to the breadth of the methods contained in the library.

To generate this documentation in your own local copy of MLPACK, you can simply use Doxygen, from the root directory (/mlpack/trunk/ ):

$ doxygen


MLPACK provides several executables so that MLPACK methods can be used without any need for knowledge of C++. These executables are all self-documented, and that documentation can be accessed by running the executables with the '-h' or '–help' flag.

A full list of executables is given below:

allkfn, allknn, emst, gmm, hmm_train, hmm_loglik, hmm_viterbi, hmm_generate, kernel_pca, kmeans, lars, linear_regression, local_coordinate_coding, mvu, nbc, nca, pca, radical, sparse_coding


A few short tutorials on how to use MLPACK are given below.

Tutorials on specific methods are also available.

Methods in MLPACK

The following methods are included in MLPACK:

Final Remarks

This software was written in the FASTLab (, which is in the School of Computational Science and Engineering at the Georgia Institute of Technology.

MLPACK contributors include: