Выпущена платформа Datumbox Machine Learning Framework 0.6.0 PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Выпущена платформа машинного обучения Datumbox 0.6.0

Вышла новая версия Datumbox Machine Learning Framework! Загрузите его сейчас с Github or Maven Центральный репозиторий.

Что нового?

Основное внимание версия 0.6.0 заключается в расширении платформы для обработки больших данных, улучшении архитектуры кода и общедоступных API-интерфейсов, упрощении синтаксического анализа данных, улучшении документации и переходе на разрешительную лицензию.

Давайте подробно рассмотрим изменения этой версии:

  1. Обработка больших данных: Улучшенное управление памятью и новые механизмы постоянного хранения позволили платформе обрабатывать большие наборы данных размером в несколько ГБ. Добавление поддержки MapDB Механизм базы данных позволяет платформе избегать хранения всех данных в памяти и, таким образом, иметь возможность обрабатывать большие данные. Механизм InMemory по умолчанию переработан, чтобы сделать его более эффективным, а механизм MongoDB был удален из-за проблем с производительностью.
  2. Улучшенная и упрощенная архитектура Framework: Уровень абстракции значительно снижен, а некоторые основные компоненты переработаны. В частности, переписаны механизмы постоянного хранения и удалены несколько ненужных функций и структур данных.
  3. Новые общедоступные API, похожие на Scikit-Learn: Все общедоступные методы алгоритмов изменены, чтобы напоминать API Scikit-Learn Python (парадигма подгонки/прогнозирования/преобразования). Новые общедоступные методы более гибкие, простые и удобные в использовании.
  4. Упрощение анализа данных: Новая платформа поставляется с набором удобных методов, которые позволяют быстро анализировать CSV или текстовые файлы и преобразовывать их в объекты набора данных.
  5. Улучшенная документация: Все общедоступные/защищенные классы и методы Framework задокументированы с использованием комментариев Javadoc. Кроме того, новая версия предоставляет улучшенные тесты JUnit, которые являются прекрасными примерами использования каждого алгоритма фреймворка.
  6. Новая лицензия Apache: Программная лицензия фреймворка изменена с «GNU General Public License v3.0"К"Лицензия Apache, версия 2.0“. Новая лицензия является разрешительной и позволяет распространять ее в рамках коммерческого программного обеспечения.

Поскольку большая часть фреймворка была переписана, чтобы сделать его более эффективным и простым в использовании, версия 0.6.0 не обратно совместимый с более ранними версиями фреймворка. Наконец, фреймворк перешел из фазы разработки Alpha в фазу Beta, и его следует считать более стабильным.

Как его использовать

В предыдущем сообщении блога мы предоставили подробное руководство по установке как установить фреймворк. Это руководство по-прежнему действительно для новой версии. Кроме того, в этой новой версии вы можете найти несколько Примеры кода о том, как использовать модели и алгоритмы Framework.

Следующие шаги и дорожная карта

Разработка фреймворка будет продолжена, и перед выпуском версии 1.0 должны быть внесены следующие улучшения:

  1. UsИНГ Фреймворк из консоли: Несмотря на то, что основной целью платформы является помощь в разработке приложений машинного обучения, ее следует упростить для разработчиков, не использующих Java. Следуя тому же подходу, что и Mahout, фреймворк должен предоставлять доступ к алгоритмам с помощью консольных команд. Интерфейс должен быть простым, легким в использовании, а различные алгоритмы должны легко комбинироваться.
  2. Поддержка многопоточности: В настоящее время платформа использует потоки только для процессов очистки и асинхронной записи на диск. Тем не менее часть алгоритмов можно распараллелить, что значительно сократит время выполнения. Решение в этих случаях должно быть элегантным и должно как можно меньше изменять внутреннюю логику/математику алгоритмов машинного обучения.
  3. Сократите использование двумерных массивов и матриц: Небольшое количество алгоритмов по-прежнему использует двумерные массивы и матрицы. Это приводит к загрузке всех данных в память, что ограничивает размер набора данных, который можно использовать. Некоторые алгоритмы (такие как PCA) должны быть переопределены, чтобы избежать использования матриц, в то время как для других (таких как GaussianDPMM, MultinomialDPMM и т. д.) мы должны использовать разреженные матрицы.

Другие важные задачи, которые должны быть выполнены в следующих версиях:

  1. Включите новые алгоритмы машинного обучения: Фреймворк может быть расширен для поддержки нескольких замечательных алгоритмов, таких как Mixture of Gaussian, Gaussian Processes, k-NN, деревья решений, факторный анализ, SVD, PLSI, искусственные нейронные сети и т. д.
  2. Улучшить документацию, Тестирование & Примеры кода: Создайте лучшую документацию, улучшите тесты JUnit, улучшите комментарии к коду, предоставьте лучшие примеры использования алгоритмов и т. д.
  3. Улучшить архитектуру & Оптимизировать код: Дальнейшее упрощение и улучшение архитектуры фреймворка, рационализация абстракции, улучшение дизайна, оптимизация скорости и потребления памяти и т. д.

Как видите, это долгий путь, и мне не помешала бы помощь. Если вы готовы принять вызов черкните мне несколько строк или отправьте запрос на вытягивание на github.

Благодарности

Я хотел бы поблагодарить Элефтериос Бампалетакис за неоценимый вклад в улучшение архитектуры Framework. Также я хотел бы поблагодарить эй-технологии ГмбХ за предоставление мне лицензии на их Java Profiler. Более того, мой респект Ян Котек за его потрясающую работу над механизмом хранения MapDB. И последнее, но не менее важное: моя любовь к моей девушке Кириаки за то, что она терпела меня.

Не забудьте скачать код Datumbox v0.6.0 с Github, Библиотека доступна также на Maven Центральный репозиторий. Для получения дополнительной информации о том, как использовать библиотеку в вашем проекте Java, ознакомьтесь со следующей информацией. инструкция или прочитайте инструкции на главной странице нашего репозитория Github.

Я с нетерпением жду ваших комментариев и рекомендаций. Запросы на тягу всегда приветствуются! 🙂

Отметка времени:

Больше от Датумбокс