mlpack — это открытая библиотека машинного обучения на языке C++, ориентированная на высокую производительность, гибкость и расширяемость. Проект предоставляет набор реализаций классических и современных алгоритмов для задач обучения с учителем и без учителя, оптимизации и работы с большими данными, при этом делает упор на эффективные реализации с низкими накладными расходами и возможностью интеграции в прикладные C++-приложения. Архитектура библиотеки спроектирована так, чтобы обеспечить простые интерфейсы для быстрого прототипирования и при этом позволять экспертам настраивать и заменять отдельные компоненты алгоритмов.
История проекта восходит к усилиям сообщества разработчиков и научно-исследовательских групп по созданию легковесной альтернативы более тяжеловесным фреймворкам, обеспечивающей скорость и контроль, характерные для C++. Библиотека поддерживает модульную структуру, тесты и документацию, включает утилиты для работы с данными и расширяемые API. mlpack часто используется в задачах, где критичны ресурсоёмкость и время выполнения, а также в учебных и исследовательских проектах как реализация алгоритмов с открытым исходным кодом.
- Алгоритмы кластеризации: реализации k-means, Gaussian mixture models и других методов для разделения данных на группы.
 - Методы классификации и регрессии: деревья решений, случайный лес, логистическая регрессия, линейные модели и их оптимизированные версии.
 - Методы понижения размерности: principal component analysis (PCA) и другие техники для уменьшения размерности и визуализации.
 - Алгоритмы поиска соседей и структуры данных: k-d деревья, cover trees и быстрые индексы для поиска ближайших соседей.
 - Оптимизационные методы: стохастические и детерминированные оптимизаторы, используемые для обучения моделей и задач оптимизации.
 - Методы разложения и факторизации: SVD, NMF и другие подходы для матричных разложений и обработки разреженных данных.
 - Графовые и вероятностные модели: инструменты для работы с графами, алгоритмы для байесовских и марковских моделей.
 - Интерфейсы и обёртки: обёртки для вызова из других языков и удобные командные утилиты для запуска алгоритмов вне кода.
 - Тестирование и документация: модульная система тестов, примеры использования и подробная документация по API.
 - Расширяемость: дизайн, позволяющий добавлять новые алгоритмы и компоненты без изменения ядра библиотеки.