Ручное построение Baseline на платформе SMILE
Для решения практически любой задачи машинного обучения существует набор алгортимов, применение которых позволит получить минимально удовлетворяющее условиям решение.
Подобный набор алгоритмов, который позволяет получить базовое решение принято называть Baseline
Советы по постороению Baseline вручную
Baseline можно разделить на несколько основных этапов:
- Обработка данных
Предварительная подготовка, очистка, заполнение данных
- Разделение данных
Разделение данных на тренировочную (обучающую) тестовую выборку
- Обучение модели
- Оценка качества обучения модели
Отдельным этапом построения Baseline является оптимизация гиперпараметров каждой из моделей для получения наилучшего результата.
Разделение данных на тренировочную и тестовую выборки
Платформа SMILE поддерживает разделение данных на обучающую и тестовую выборки с помощью узлов "Модели" категории ModelSelection.
Рассмотрим на примере простого разделения алгоритмом TrainAndTest
Данная модель имеет следующие параметры для настройки:
- Target_column - целевой параметр (столбец)
- Test_Size - доля тестовой выборки (рекомендуется 20-30%)
- Train_size - доля тренировочной выборки (рекомендуется 70-80%)
На платформе SMILE можно задать лишь один из параметров Test_size или Train_size, второй будет рассчитан, как разность 1 и указанного параметра.
- Random_state - распределение строк исходного датасета на тестовую и тренировочную выборку случайным образом (встроенный генератор)
- Shuffle - перемешивание строк в исходном наборе данных
После применения к входным данным модели TrainAndTest необходимо добавить два узла "Признак" и направить к ним ребра от узла модели. В соответствующих узлах данных нужно выбрать тренировочные данные (признаки с пометкой train) и тестовые (признаки с пометкой test).
Для фильтрации данных, передаваемых в узел "Признак" можно также использовать ребра, соединяющие узлы графа между собой. Подробнее о создании фильтра с помощью ребра
В списке признаков можно использовать заголовки с названием узла "TrainAndTest" и с соответствующими пометками [Train] или [Test] для выбора сразу всех признаков из тренировочной или тестовой выборок.
Кросс-валидация на платформе SMILE
Кросс-валидация - метод разбиения исходного набора данных на подвыборки, в рамках которых модель обучается на большей части данных (условно тренировочной выборке), предсказывает значения для меньшей части данных (условно тестовой выборке) и затем сравнивает предсказанные с реальными.
Кросс-валидация на платформе SMILE реализована в качестве отдельной модели, которая включает в себя не только разделение выборки на несколько "слоев", но и оценку алгоритмов машинного обучения.
Для применения кросс-валидации в Редакторе необходимо добавить на граф новый узел "Модель" и выбрать в категории Iterations Tool модель CrossValScorer. Затем необходимо с помощью ребра соединить узел с данными и узел модели кросс-валидации.
При использовании кросс-валидации разделять выборку на тренировочную и тестовую необязательно
Далее на граф добавляются узлы "Моделей", которые будут использоваться для решения задачи, после чего каждый узел с помощью ребра соединяется с узлом кросс-валидации.
К одному узлу кросс-валидации может быть применено одновременно несколько алгоритмов машинного обучения.
После построения графа необходимо настроить параметры кросс-валидации:
- Целевой столбец - выбирается из столбцов, которые находятся в узле данных
- Название предсказанного столбца - задается пользователем вручную
- Оценка - выбор метрик оценки моделей
- CV (количество разделений) - задается пользователем вручную
Далее при нажатии кнопки "Рассчитать" в узле кросс-валидации в панели под Редактором появится таблица с заранее выбранными метриками оценки для алгоритмов, которые применены к узлу кросс-валидации.
Настройка гиперпараметров модели на платформе SMILE
Важной частью машинного обучения является настройка гиперпараметров модели, которая позволяет получить более качественное предсказание.
Настройка гиперпараметров модели может осуществляться вручную через расширенные настройки узла в Редакторе или автоматически с помощью инструментов на платформе SMILE.
Для автоматического подбора гиперпараметров необходимо добавить на графе новый узел "Модели" из категории Iterations Tool:
- GridSearchCV
- RandomizedSearchCV
- BayesSearchCV
После добавления узла автоподбора гиперпараметров необходимо с помощью ребра передать на него данные исследуемого признака и добавить ребро от модели, которую нужно настроить
Не рекомендуется использовать тот же узел "Модели", который связан с узлом данных или кросс-валидации. Рекомендуется добавить отдельный узел той же самой модели и после соединить его с узлом автоподбора гиперпараметров.
После соединения узла модели с узлом подбора гиперпараметров в расширенных настройках последнего появится возможность задавать значения или интервалы для каждого отдельного гиперпараметра алгоритма машинного обучения.
В расширенных настройках узла "Модели" будут отображаться одновременно и параметры алгоритма автоподбора и параметра алгоритма машинного обучения.
Отличительной чертой данных параметров будет название алгоритма оптимизации гиперпараметров (помещенное в квадратные скобки) в начале названия параметра.
Автоматизированное построение Baseline
На платформе SMILE есть функция автоматического построения Baseline, которая позволяет решать задачи классификации и регрессии. На основе данных платформа SMILE предлагает набор узлов "Моделей" и связей между ними для размещения на графе Редактора.
Для того, чтобы запустить автоматизированное построение Baseline необходимо предварительно загрузить данные в проект.
Подробнее о загрузке данных. Подробнее о добавлении узла "Признак".
Baseline может строиться не только на основе одного узла "Признака" с данными. Построение Baseline не включает в себя предварительную обработку данных, поэтому рекомендуется пользоваться данной функцией после полной подготовки данных.
После размещения на графе подготовленных данных в узле признак, для построения "Baseline" пользователь должен нажать на соответствующую кнопку в правом верхнем углу Редактора.
После этого откроется модальное окно для настройки следующих параметров решаемой задачи:
- Задача машинного обучения
- Классификация
- Регрессия
- Классификация изображений
- Суррогатное моделирование
- Классификация временных рядов
- Целевой столбец
После выбора параметров необходимо нажать на кнопку "Повторить попытку", после чего платформа SMILE проанализирует данные и предложит baseline для решения выбранной задачи.
Предложенный baseline будет представлен в виде набора узлов с чекбоксами, для выборочного отключения каждого из этих алгоритмов
После выбора списка необходимых узлов нужно нажать на кнопку "Построить baseline" и на графе в модальном окне добавятся выбранные пользователем узлы. Для того, чтобы перенести их в модуль, нужно нажать кнопку "Применить".
В случае, если не применить построенный baseline, то граф в Редакторе останется в исходном виде.