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
mail_outline Contact email

mlpack 2018 Projects

  • Wenhao Huang
    Alternatives to Neighborhood-Based Collaborative Filtering
    The overall objective of this project is to improve the current CF module in mlpack to provide better rating prediciton, fast execution, and flexible...
  • Yasmine Dumouchel
    Automated Binding Generator
    This automatically-generated Go binding proposal aims to allow Go users to have access to the fast and scalable machine learning library that is...
  • Shikhar Jaiswal
    Implementing Essential Deep Learning Modules
    Over the years, Deep Learning has become a promising field of work, attracting attention from the most prominent Machine Learning researchers of the...
  • Manish Kumar
    LMNN (via Low-Rank optimization) & BoostMetric Implementation
    Many cognitive techniques, such as recognition and categorization are assumed to have need of establishing similarities between perceptual or...
  • Haritha Sreedharan Nair
    Neural Collaborative Filtering
    Recommendation systems are widely used in various online and offline platforms, collaborative filtering being the most commonly used method for...
  • Atharva Khandait
    Variational Autoencoders
    Variational Autoencoders(VAEs) are widely used in unsupervised learning of complicated distributions. The more classical generative models depend...