Jay Taylor's notes
back to listing indexmlpack: a scalable c++ machine learning library
[web search]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, and optionally uses libbfd and libdl to give backtraces when compiled with debugging symbols on some platforms.
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 of the project:
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:
- •mlpack_adaboost
- •mlpack_cf
- •mlpack_decision_stump
- •mlpack_det
- •mlpack_emst
- •mlpack_fastmks
- •mlpack_gmm_train
- •mlpack_gmm_generate
- •mlpack_gmm_probability
- •mlpack_hmm_train
- •mlpack_hmm_loglik
- •mlpack_hmm_viterbi
- •mlpack_hmm_generate
- •mlpack_hoeffding_tree
- •mlpack_kernel_pca
- •mlpack_kfn
- •mlpack_kmeans
- •mlpack_knn
- •mlpack_krann
- •mlpack_lars
- •mlpack_linear_regression
- •mlpack_local_coordinate_coding
- •mlpack_logistic_regression
- •mlpack_lsh
- •mlpack_mean_shift
- •mlpack_nbc
- •mlpack_nca
- •mlpack_pca
- •mlpack_perceptron
- •mlpack_radical
- •mlpack_range_search
- •mlpack_softmax_regression
- •mlpack_sparse_coding
Tutorials
A few short tutorials on how to use mlpack are given below.
- •Building mlpack
- •Matrices in mlpack
- •mlpack Input and Output
- •mlpack Timers
- •Simple Sample mlpack Programs
- •mlpack version information
Tutorials on specific methods are also available.
- •NeighborSearch tutorial (k-nearest-neighbors)
- •Linear/ridge regression tutorial (mlpack_linear_regression)
- •RangeSearch tutorial (mlpack_range_search)
- •Density Estimation Tree (DET) tutorial
- •EMST Tutorial
- •K-Means tutorial (kmeans)
- •Fast max-kernel search tutorial (fastmks)
- •Alternating Matrix Factorization tutorial.
Methods in mlpack
The following methods are included in mlpack:
- •Density Estimation Trees - mlpack::det::DTree
- •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
- •Locality-Sensitive Hashing - mlpack::neighbor::LSHSearch
- •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 (KNN, KFN) - mlpack::neighbor::NeighborSearch
- •Tree-based range search - mlpack::range::RangeSearch
Final Remarks
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
- •Rajendran Mohan rmohan88@gatech.edu
- •Trironk Kiatkungwanglai trironk@gmail.com
- •Patrick Mason patrick.s.mason@gmail.com
- •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
- •Andreas Löf andreas.lof@cs.waikato.ac.nz
- •Marcus Edel marcus.edel@fu-berlin.de
- •Mudit Raj Gupta mudit.raaj.gupta@gmail.com
- •Sumedh Ghaisas sumedhghaisas@gmail.com
- •Michael Fox michaelfox99@gmail.com
- •Ryan Birmingham birm@gatech.edu
- •Siddharth Agrawal siddharth.950@gmail.com
- •Saheb Motiani saheb210692@gmail.com
- •Yash Vadalia yashdv@gmail.com
- •Abhishek Laddha laddhaabhishek11@gmail.com
- •Vahab Akbarzadeh v.akbarzadeh@gmail.com
- •Andrew Wells andrewmw94@gmail.com
- •Zhihao Lou lzh1984@gmail.com
- •Udit Saxena saxena.udit@gmail.com
- •Stephen Tu tu.stephenl@gmail.com
- •Jaskaran Singh jaskaranvirdi@gmail.com
- •Shangtong Zhang zhangshangtong.cpp@icloud.com
- •Hritik Jain hritik.jain.cse13@itbhu.ac.in
- •Vladimir Glazachev glazachev.vladimir@gmail.com
- •QiaoAn Chen kazenoyumechen@gmail.com
- •Janzen Brewer jahabrewer@gmail.com
- •Trung Dinh dinhanhtrung@gmail.com
- •Tham Ngap Wei thamngapwei@gmail.com
- •Grzegorz Krajewski krajekg@gmail.com
- •Joseph Mariadassou joe.mariadassou@gmail.com
- •Pavel Zhigulin pashaworking@gmail.com
- •Andy Fang AndyFang.DZ@gmail.com
- •Barak Pearlmutter barak+git@pearlmutter.net
- •Ivari Horm ivari@risk.ee
- •Dhawal Arora d.p.arora1@gmail.com
- •Alexander Leinoff alexander-leinoff@uiowa.edu
- •Palash Ahuja abhor902@gmail.com
- •Yannis Mentekidis mentekid@gmail.com
- •Ranjan Mondal ranjan.rev@gmail.com
- •Mikhail Lozhnikov lozhnikovma@gmail.com
- •Marcos Pividori marcos.pividori@gmail.com
- •Keon Kim kwk236@gmail.com
- •Nilay Jain nilayjain13@gmail.com
- •Peter Lehner peter.lehner@dlr.de