Стадии работы

Этот раздел описывает типичный жизненный цикл обучаемого модуля.

Создание и конфигурирование

Прежде всего, обучаемый модуль необходимо создать. Для этого используется действие Создать контекста машинного обучения.

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

Если у экземпляров данных есть веса,  соответствующая настройка должна быть выставлена на true и предоставлено Имя поля с весами. Обратите внимание, что это имя не должно совпадать с Именем поля с зависимой переменной во избежание ошибки. Тип поля, соответствующего весам, должен быть числовым.

Обучение

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

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

Как только процесс обучения обучаемого модуля окончен, его иконка меняется с (указывает на необученный обучаемый модуль) на (указывает на обученный обучаемый модуль). Кроме того, состояние обучаемого модуля сохраняется в хранилище конфигураций. Если необходим перезапуск SberMobile Server, каждый обучаемый модуль восстанавливает свое состояние после перезагрузки.

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

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

При изменении любой опции обучаемого модуля, его статус будет сброшен и, как следствие, потребуется повторное обучение.

Оценка

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

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

При вызове функции Оценить на необученном обучаемом модуле, появится сообщение об ошибке.

Перекрестная проверка

Еще один способ провести оценку обучаемого модуля - использовать функцию Провести перекрёстную проверку. Функция осуществляет перекрестную проверку по К частям данных (folds) на заданном наборе данных и возвращает тот же набор оценочных метрик, что и функция Оценить. Значения метрик оценки усредняются по K частям данных. Число блоков К и начальное число для генератора случайных чисел определяются в соответствующих параметрах конфигурирования. Количество частей данных не должно превышать количество записей в тестовом наборе. Требования к входному набору данных такие же, как для функции Оценить.

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

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

Использование обучаемого модуля для предсказаний

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

При вызове функции Использовать на необученном обучаемом модуле, появится сообщение об ошибке.