Сравнение AutoML
Автоматическое машинное обучение (autoML) - это процесс построения моделей машинного обучения с помощью алгоритма без вмешательства человека. Для построения прогнозных моделей доступно несколько пакетов autoML:
Наборы данных
В этом посте мы сравниваем три пакета autoML (auto-sklearn, h2o и mljar). Сравнение проводится по заданию бинарной классификации на 28 наборах данных из openml. Наборы данных описаны ниже.
Методология
- Каждый набор данных был разделен на обучающий и тестовый наборы (70% образцов для обучения и 30% образцов для тестирования). Пакеты тестировались на одних и тех же разбиениях данных.
- Модель autoML была обучена на наборе поездов с ограничением времени обучения 1 час.
- Окончательная модель autoML использовалась для вычисления прогнозов на тестовом наборе (на образцах, не используемых для обучения).
- Logloss использовался для оценки производительности модели (чем меньше logloss, тем лучше модель). Журнал потерь был выбран, потому что он более точен, чем показатель точности.
- Процесс повторяли 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 или в веб-браузере.