predict
Описание
Выполняет предсказание на основе обученной модели и входных данных. Модель предварительно обучается командой train.
Команда поддерживает два механизма исполнения:
- встроенные механизмы хранилища — используются по умолчанию
- сервис
sm-ml-service— используется, когда задана системная настройкаsme.ml.enabled
Синтаксис команды не зависит от механизма исполнения.
Синтаксис
... | predict <algorithm> model_id="<model_id>" [fields="<field>[,<field>]"]
Обязательные аргументы
Набор поддерживаемых алгоритмов зависит от механизма исполнения. Для встроенных механизмов хранилища он приведен в документации хранилища, при работе через sm-ml-service — определяется сервисом.
| Параметр | Синтаксис | Описание |
|---|---|---|
<algorithm> | <algorithm_name> | Название алгоритма для предсказания. При работе через sm-ml-service алгоритм определяется по сохраненной модели. |
model_id | model_id="<model_id>" | Идентификатор обученной модели — результат команды train. |
Опциональные аргументы
| Параметр | Синтаксис | По умолчанию | Описание |
|---|---|---|---|
fields | fields="<field>[,<field>]" | все поля | Список полей из входных данных, которые передаются в предсказание. Если не задан, передаются все поля текущего набора строк. |
Работа через sm-ml-service
При включенной настройке sme.ml.enabled предсказание выполняется сервисом sm-ml-service (адрес задается настройками sme.ml.service_url и sme.ml.service_port):
- Входные данные (поля из
fieldsили все поля текущего набора строк) передаются сервису; модель ищется в сервисе по имени изmodel_id - Алгоритм определяется по сохраненной модели — значение
<algorithm>из команды при этом не используется - Если модель с указанным именем не найдена или еще не готова, команда завершается ошибкой выполнения запроса
- Строки результата предсказания возвращаются как выходные строки команды
Запросы к сервису выполняются с авторизацией: имя пользователя задается настройкой 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
В данном примере предсказание выполняется по умолчанию на тех полях, которые уже остались во входном потоке после peval и 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)
| fields operation_type_ssh, operation_type_1c, operation_type_view_dashboard, operation_type_gitlab
| predict kmeans model_id="4wedvml"
Пример 2
В данном примере поля для предсказания передаются явно через параметр 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)
| predict kmeans model_id="4wedvml" fields="operation_type_ssh, operation_type_1c, operation_type_view_dashboard, operation_type_gitlab"