Сравнение AutoML

Автоматическое машинное обучение (autoML) - это процесс построения моделей машинного обучения с помощью алгоритма без вмешательства человека. Для построения прогнозных моделей доступно несколько пакетов autoML:

Наборы данных

В этом посте мы сравниваем три пакета autoML (auto-sklearn, h2o и mljar). Сравнение проводится по заданию бинарной классификации на 28 наборах данных из openml. Наборы данных описаны ниже.

Методология

  1. Каждый набор данных был разделен на обучающий и тестовый наборы (70% образцов для обучения и 30% образцов для тестирования). Пакеты тестировались на одних и тех же разбиениях данных.
  2. Модель autoML была обучена на наборе поездов с ограничением времени обучения 1 час.
  3. Окончательная модель autoML использовалась для вычисления прогнозов на тестовом наборе (на образцах, не используемых для обучения).
  4. Logloss использовался для оценки производительности модели (чем меньше logloss, тем лучше модель). Журнал потерь был выбран, потому что он более точен, чем показатель точности.
  5. Процесс повторяли 10 раз (с разными затравками для раскола). Окончательные результаты усреднены за 10 повторений.

Полученные результаты

Результаты представлены в таблице и диаграмме ниже. Лучший подход для каждого набора данных выделен жирным шрифтом.

Обсуждение

Низкую производительность алгоритма автосклеарна можно объяснить ограничением времени обучения в 1 час. Auto-sklearn использует байесовскую оптимизацию для настройки гиперпараметров, которая имеет последовательный характер и требует множества итераций для поиска хорошего решения. Лимит обучения в 1 час был выбран с точки зрения бизнеса - на мой взгляд, пользователь, который собирается использовать пакет autoML, предпочитает ждать результата 1 час, а не 72 часа. Результаты H2O по сравнению с auto-sklearn лучше почти для всех наборов данных.

Наилучшие результаты показал пакет mljar - это был лучший алгоритм на 26 из 28 наборов данных. В среднем он был на 47,15% лучше, чем auto-sklearn, и на 13,31% лучше, чем решение h2o autoML.

Полезной особенностью mljar является пользовательский интерфейс, поэтому все модели после оптимизации доступны через веб-браузер (mljar сохраняет все модели, полученные во время оптимизации).

Код, использованный для сравнения, доступен на github.

Пакет mljar можно использовать в python, R или в веб-браузере.