В этом блоге мы хотели бы более подробно остановиться на возможностях пакета, чем в предыдущем посте, знакомящем с новой версией пакета forester. Мы подчеркнем, что делает этот пакет особенным среди других решений AutoML в R.

Трубопровод лесника

Теперь давайте посмотрим, как общий конвейер AutoML, описанный в предыдущем посте, выглядит внутри пакета forester . График ниже показывает нам, что первые два шага идентичны, а основная часть конвейера скрыта внутри функции train().

В начале конвейера forester мы проводим проверку качества данных, которая представляет собой инновационную функцию, которая представляет пользователю возможные проблемы с набором данных. Некоторые из них представляют собой сильно коррелированные столбцы, несбалансированные классы или пропущенные значения.

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

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

В конечном итоге мы оцениваем модели и предоставляем результаты в виде ранжированного списка. Список включает все обученные модели, отсортированные от лучшей к худшей по выбранной пользователем метрике. Функция train() возвращает составной объект, который можно использовать с другими функциями из пакета.

Структура пакета и пользовательский интерфейс

График, представленный ниже, кратко суммирует процессы внутри функции train(), которая была описана ранее, и добавляет информацию о дополнительных возможностях пакета.

Функция explain() является связующим звеном с пакетом DALEX и создает объяснение для выбранных моделей. Объяснимые методы искусственного интеллекта (XAI) являются важной частью оценки модели, и мы не могли не включить их в пакет forester. При дальнейшем использовании DALEX пользователь может создавать различные объяснения предоставленных моделей, например, график важности признаков.

Функция save() позволяет пользователю сохранить объект, возвращаемый функцией train(), в формате .RData. Процедура сохраняет не только модели, но и все типы наборов данных, используемых в процессе обучения (от необработанных наборов данных до разделенных и предварительно обработанных). Это побуждает специалиста по данным продолжать обучение модели самостоятельно после получения базовой модели от лесника.

Функция report() создает автоматически сгенерированный отчет, описывающий процесс обучения. Существуют разные структуры документов для задач регрессии и бинарной классификации, однако общая структура отчета выглядит следующим образом:

  1. Информация о дате, текущей версии пакета, типе задачи и основном описании задачи.
  2. Ранжированный список лучших моделей.
  3. Группа графиков сравнения лучших моделей.
  4. Группа графиков, описывающих лучшую модель, включая ее пояснения.
  5. Отчет о проверке данных.
  6. Подробности о лучшей архитектуре модели.

Более подробная информация об отчете будет доступна в одном из следующих постов блога.

Последняя функция, доступная для пользователя, — это data_check(), которая не показана на графике, поскольку она также является частью функции train(). Эта функция получила множество положительных отзывов во время семинара, проведенного группой экспертов по машинному обучению из группы MI².AI. Эта функция предоставляет пользователю множество информации о наборе данных, особенно предупреждая о возможных проблемах. Пример для набора данных lisbon представлен ниже.

Существующие решения

Решения AutoML определенно более распространены в Python, однако язык R также имеет свои собственные пакеты. Самыми большими и известными являются H2O и mlr3. В процессе разработки forester мы помнили, что для достижения успеха мы должны оставаться на том же уровне, что и вышеупомянутые инструменты, и добавлять что-то дополнительное. Нашей главной целью было сделать пакет
простым в использовании, что может быть не так очевидно для других решений. Для этого мы решили ограничиться 5 древовидными движками, что меньше, чем в H2O и mlr3, но мы смогли предоставить больше возможностей. Самым инновационным является упомянутая в предыдущем разделе проверка данных и автоматическое создание отчетов, для которых будет создан собственный блог.

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

Если вас интересуют другие публикации об объяснимом, честном и ответственном ML, подписывайтесь на #ResponsibleML на Medium.
Чтобы увидеть больше контента, связанного с R, посетите https://www.r-bloggers.com.