# mlpack Documentation

### 1.0.1

## Introduction

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 http://mlpack.org.

mlpack uses the Armadillo C++ matrix library (http://arma.sourceforge.net) 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

## Executables

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, nbc, nca, pca, radical, sparse_coding

## Tutorials

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

- Building mlpack From Source
- Matrices in mlpack
- mlpack Input and Output
- mlpack Timers
- Simple Sample mlpack Programs

Tutorials on specific methods are also available.

## Methods in mlpack

The following methods are included in mlpack:

- Euclidean Minimum Spanning Trees - mlpack::emst::DualTreeBoruvka
- Gaussian Mixture Models (GMMs) - mlpack::gmm::GMM
- Hidden Markov Models (HMMs) - mlpack::hmm::HMM
- Kernel PCA - mlpack::kpca::KernelPCA
- K-Means Clustering - mlpack::kmeans::KMeans
- Least-Angle Regression (LARS/LASSO) - mlpack::regression::LARS
- Local Coordinate Coding - mlpack::lcc::LocalCoordinateCoding
- Naive Bayes Classifier - mlpack::naive_bayes::NaiveBayesClassifier
- Neighborhood Components Analysis (NCA) - mlpack::nca::NCA
- Principal Components Analysis (PCA) - mlpack::pca::PCA
- RADICAL (ICA) - mlpack::radical::Radical
- Simple Least-Squares Linear Regression - mlpack::regression::LinearRegression
- Sparse Coding - mlpack::sparse_coding::SparseCoding
- Tree-based neighbor search (AllkNN, AllkFN) - mlpack::neighbor::NeighborSearch
- Tree-based range search - mlpack::range::RangeSearch

## Final Remarks

This software was written in the FASTLab (http://www.fast-lab.org), which is in the School of Computational Science and Engineering at the Georgia Institute of Technology.

mlpack contributors include:

- Ryan Curtin <gth671b@mail.gatech.edu>
- James Cline <james.cline@gatech.edu>
- Neil Slagle <nslagle3@gatech.edu>
- Matthew Amidon <mamidon@gatech.edu>
- Vlad Grantcharov <vlad321@gatech.edu>
- Ajinkya Kale <kaleajinkya@gmail.com>
- Bill March <march@gatech.edu>
- Dongryeol Lee <dongryel@cc.gatech.edu>
- Nishant Mehta <niche@cc.gatech.edu>
- Parikshit Ram <p.ram@gatech.edu>
- Chip Mappus <cmappus@gatech.edu>
- Hua Ouyang <houyang@gatech.edu>
- Long Quoc Tran <tqlong@gmail.com>
- Noah Kauffman <notoriousnoah@gmail.com>
- Guillermo Colon <gcolon7@mail.gatech.edu>
- Wei Guan <wguan@cc.gatech.edu>
- Ryan Riegel <rriegel@cc.gatech.edu>
- Nikolaos Vasiloglou <nvasil@ieee.org>
- Garry Boyer <garryb@gmail.com>

Generated on Wed Aug 19 2015 17:17:20 for mlpack by 1.7.1