Перейти к основному содержимому
Версия: 6.1

train

Описание

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

Команда поддерживает два механизма исполнения:

  • встроенные механизмы хранилища — используются по умолчанию
  • сервис sm-ml-service — используется, когда задана системная настройка sme.ml.enabled

Синтаксис команды не зависит от механизма исполнения.

Синтаксис

... | train <algorithm> [model_id="<model_id>"] [overwrite=true] [fields="<field>[,<field>]"] [<params>]

Обязательные аргументы

к сведению

Набор поддерживаемых алгоритмов и их параметров зависит от механизма исполнения. Для встроенных механизмов хранилища он приведен в документации хранилища, при работе через sm-ml-service — определяется сервисом.

ПараметрСинтаксисОписание
<algorithm><algorithm_name>Название алгоритма для обучения модели.

Опциональные аргументы

ПараметрСинтаксисПо умолчаниюОписание
model_idmodel_id="<model_id>"Идентификатор, с которым модель сохранится в системе. Если не задан, идентификатор генерируется автоматически и возвращается в результате команды.
overwriteoverwrite=trueФлаг, указывающий команде, нужно ли перезаписывать модель с переданным идентификатором, если такая уже существует.
fieldsfields="<field>[,<field>]"все поляСписок полей из входных данных, которые передаются в обучение модели. Если не задан, передаются все поля текущего набора строк.
<params><param> = <value> [<param> = <value>]Параметры алгоритма. Передаются механизму исполнения как есть.

Работа через sm-ml-service

При включенной настройке sme.ml.enabled обучение выполняется сервисом sm-ml-service (адрес задается настройками sme.ml.service_url и sme.ml.service_port):

  1. Входные данные (поля из fields или все поля текущего набора строк) передаются сервису вместе с алгоритмом и параметрами команды
  2. Значение model_id используется как имя модели в сервисе; если идентификатор не задан, сервис генерирует имя автоматически — оно возвращается в результате команды, и на него можно ссылаться в predict
  3. Ошибки сервиса возвращаются как ошибки выполнения запроса

Запросы к сервису выполняются с авторизацией: имя пользователя задается настройкой sme.ml.user. Таймаут обращения к сервису задается настройкой sme.ml.timeout.


Системные настройки

Настройки хранятся в _cluster/settings. Ниже представлена таблица с настройками интеграции с сервисом sm-ml-service и их значениями по умолчанию.

НазваниеОписаниеЗначение по умолчанию
sme.ml.enabledВключает работу команды через сервис sm-ml-service. Если настройка выключена, команда работает через встроенные механизмы хранилища.false
sme.ml.service_urlBase URL сервиса sm-ml-service.
sme.ml.service_portПорт сервиса sm-ml-service.
sme.ml.userИмя пользователя для авторизации при запросах к сервису.
sme.ml.timeoutТаймаут запроса к сервису, мс.300000

Примеры запросов

Пример 1

В данном примере модель kmeans обучается на заранее подготовленных бинарных признаках без явного указания model_id.

source user_operations_train
| peval operation_type_ssh=if(operation_type.keyword == "ssh_connect", 1, 0), operation_type_1c=if(operation_type.keyword == "1с_connect", 1, 0), operation_type_view_dashboard=if(operation_type.keyword == "view_dashboard", 1, 0), operation_type_gitlab=if(operation_type.keyword == "gitlab_connect", 1, 0)
| fields operation_type_ssh, operation_type_1c, operation_type_view_dashboard, operation_type_gitlab
| train kmeans centroids=4 distance_type=L1

Пример 2

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

source user_operations_train
| peval operation_type_ssh=if(operation_type.keyword == "ssh_connect", 1, 0), operation_type_1c=if(operation_type.keyword == "1с_connect", 1, 0), operation_type_view_dashboard=if(operation_type.keyword == "view_dashboard", 1, 0), operation_type_gitlab=if(operation_type.keyword == "gitlab_connect", 1, 0)
| train kmeans model_id = "operations_type_model" centroids=4 distance_type=L1 fields="operation_type_ssh, operation_type_1c, operation_type_view_dashboard, operation_type_gitlab"