a scalable C++ machine learning library

mlpack is a C++ machine learning library with 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. This is done by providing a set of command-line executables which can be used as black boxes, and a modular C++ API for expert users and researchers to easily make changes to the internals of the algorithms.

As a result of this approach, mlpack outperforms competing machine learning libraries by large margins; the handful of publications relating to mlpack demonstrate this.

mlpack is developed by contributors from around the world. It is released free of charge, under the 3-clause BSD License. (Versions older than 1.0.12 were released under the GNU Lesser General Public License: LGPL, version 3.)

mlpack bindings for R are provided by the RcppMLPACK project.

lightbulb_outline View ideas list


  • c++


comment IRC Channel
email Mailing list

mlpack: a scalable C++ machine learning library 2016 Projects

  • Marcos Pividori
    Approximate Nearest Neighbor Search
    Mlpack provides an extensible, flexible exact nearest neighbor search implementation, with the ability to do dual-tree k-NN search. However, there is...
  • mentekid
    Approximate Nearest Neighbor Search: Implementation of Multiprobe LSH and LSH Tuning
    Approximate Nearest Neighbor Search solutions become appealing in problems where dimensionality increases. Locality Sensitive Hashing is a popular...
  • KeonKim
    Dataset and Experimentation Tools
    This GSoC project aims to develop a tool for managing dataset and experimenting the data. This project is important because most of the time used...
  • Bang
    Neuroevolution Algorithms Implementation
    Neuroevolution algorithms search optimal solutions by evolution rather than learning, which enables them to deal with large complex problems. In this...
  • lozhnikov
    R+ trees, Hilbert R trees, vantage point trees, random projection trees, UB trees implementation
    Many methods of the mlpack machine learning library (such as nearest neighbor search, range search and others) are based on dual-tree algorithms...
  • nilay_jain
    We need to go deeper - GoogLeNet
    To implement the components of the GoogLeNet architecture (the inception layer, global average pooling, and other pieces), and then build GoogLeNet...