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_id | model_id="<model_id>" | Идентификатор, с которым модель сохранится в системе. Если не задан, идентификатор генерируется автоматически и возвращается в результате команды. | |
overwrite | overwrite=true | Флаг, указывающий команде, нужно ли перезаписывать модель с переданным идентификатором, если такая уже существует. | |
fields | fields="<field>[,<field>]" | все поля | Список полей из входных данных, которые передаются в обучение модели. Если не задан, передаются все поля текущего набора строк. |
<params> | <param> = <value> [<param> = <value>] | Параметры алгоритма. Передаются механизму исполнения как есть. |
Работа через sm-ml-service
При включенной настройке sme.ml.enabled обучение выполняется сервисом sm-ml-service (адрес задается настройками sme.ml.service_url и sme.ml.service_port):
- Входные данные (поля из
fieldsили все поля текущего набора строк) передаются сервису вместе с алгоритмом и параметрами команды - Значение
model_idиспользуется как имя модели в сервисе; если идентификатор не задан, сервис генерирует имя автоматически — оно возвращается в результате команды, и на него можно ссылаться вpredict - Ошибки сервиса возвращаются как ошибки выполнения запроса
Запросы к сервису выполняются с авторизацией: имя пользователя задается настройкой sme.ml.user. Таймаут обращения к сервису задается настройкой sme.ml.timeout.
Системные настройки
Настройки хранятся в _cluster/settings. Ниже представлена таблица с настройками интеграции с сервисом sm-ml-service и их значениями по умолчанию.
| Название | Описание | Значение по умолчанию |
|---|---|---|
sme.ml.enabled | Включает работу команды через сервис sm-ml-service. Если настройка выключена, команда работает через встроенные механизмы хранилища. | false |
sme.ml.service_url | Base 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"