Функции машинного обучения
Справочник «Функции машинного обучения» — это перечень функций, которыми KOMRAD Enterprise SIEM выявляет отклонения в потоке событий. Для каждой функции указано, какие данные она анализирует, какое отклонение обнаруживает и в каких задачах её применяют.
Справочник предназначен для выбора подходящей функции перед созданием ML-задачи и для понимания того, что означает функция, указанная в уже существующей задаче или в поле события ML.Anomaly.DetectorFunction.
Справочник работает только на чтение. Создать, настроить или запустить ML-задачу из него нельзя — это делается в разделе «ML-задачи».
Как открыть справочник
Выберите в меню «Справочники» → «Функции машинного обучения». Пункт находится последним, после «Календарей»; адрес страницы — /references/ml-functions.
Если пункт меню не отображается, у учётной записи нет права на просмотр справочника — см. раздел Право доступа.
Прежняя страница «ML-задачи» → «Детекторы» (/anomaly-detection/detectors) удалена, её заменил справочник. Прежний адрес перенаправляет на /references/ml-functions, поэтому сохранённые ссылки и закладки продолжают работать.
Состав справочника
Справочник содержит 45 записей:
- 42 функции движка машинного обучения — их технические имена совпадают с именами в самом движке;
- 3 детектора категоризации —
category_novelty,category_rareиcategory_count_spike.
Записи распределены по девяти категориям:
| Категория | Записей | Примеры функций |
|---|---|---|
| Функции подсчёта | 9 | count, high_count, distinct_count |
| Функции статистических характеристик | 12 | mean, median, varp |
| Функции суммы | 6 | sum, high_sum, non_null_sum |
| Редкие функции | 5 | rare, freq_rare, rare_count |
| Функции информационного содержания | 3 | info_content, high_info_content, low_info_content |
| Временные функции | 2 | time_of_day, time_of_week |
| Функции скорости изменения | 4 | max_velocity, mean_velocity, sum_velocity |
| Географические функции | 1 | lat_long |
| Детекторы категоризации | 3 | category_novelty, category_rare, category_count_spike |
Категория — это признак записи, по которому её удобно искать и фильтровать. Записи в таблице по категориям не группируются и по категориям предварительно не сортируются.
Тексты справочника подготовлены на русском и английском языках. Язык записей совпадает с языком интерфейса.
Состав записи
У каждой записи восемь полей:
| Поле | Что содержит |
|---|---|
| Функция | Техническое имя функции, например high_count. Это имя указывается в настройках ML-задачи и попадает в поле события ML.Anomaly.DetectorFunction |
| Категория | Одна из девяти категорий |
| Название | Название функции на языке интерфейса, например «Высокий подсчет событий» |
| Поддерживаемые типы данных | Типы полей события, которые функция принимает. Если функция не зависит от значений поля, указано «Не зависит от содержимого поля» |
| Детектируемое отклонение | Кратко — какое отклонение обнаруживает функция |
| Описание | Как функция работает и какие у неё ограничения |
| Примеры использования | Практические сценарии, для которых функция подходит |
| Основное поле | Какое поле функция анализирует: поле значения, поле группировки, поле категоризации, время самого события. Здесь же указано, если поле значения для функции запрещено или, наоборот, обязательно |
Поля «Поддерживаемые типы данных» и «Основное поле» нужно читать вместе: типы данных могут относиться не к полю значения, а к полю группировки.
Пример. Запись функции rare:
- Основное поле — «Поле значения запрещено; анализируется поле группировки — оно обязательно. Типы данных относятся к полю группировки.»
- Поддерживаемые типы данных —
string,string slice,ip,ip slice,uint64 slice,int slice. - Детектируемое отклонение — «Появление новых или крайне редких значений.»
- Примеры использования — «Первый вход с нового IP», «Запуск неизвестного процесса», «Появление новой учетной записи».
То есть в ML-задаче с функцией rare поле значения задавать не нужно, а перечисленные типы данных относятся к полю группировки, которое обязательно.
Таблица справочника
По умолчанию в таблице показаны пять столбцов: Функция, Категория, Название, Детектируемое отклонение, Основное поле.
Длинный текст в ячейках обрезается многоточием. Полностью он показан в информационной карточке.
Если под условия поиска и фильтров не подходит ни одна запись, таблица показывает «Нет данных».
Настройка столбцов
Скрытые по умолчанию столбцы — Поддерживаемые типы данных, Описание и Примеры использования — включаются кнопкой настройки столбцов. Кнопка находится на панели над таблицей справа, слева от строки поиска; правее строки поиска расположена кнопка фильтра. В списке перечислены все восемь столбцов, порядок столбцов в таблице фиксирован:
Функция → Категория → Название → Поддерживаемые типы данных → Детектируемое отклонение → Описание → Примеры использования → Основное поле
Выбор запоминается для конкретного пользователя и восстанавливается при следующем открытии страницы. Включение и выключение столбца не сбрасывает поиск, фильтры и сортировку.
Поиск и фильтры
Поиск срабатывает по мере ввода и не учитывает регистр. Он охватывает функцию, название, типы данных, детектируемое отклонение, описание и примеры использования. По столбцу «Основное поле» поиск не выполняется.
Доступны два фильтра с выбором нескольких значений:
- «Категории» — одна или несколько из девяти категорий;
- «Типы данных» — типы полей события (
string,ip,int64,float64и другие), а также значения «Не зависит от содержимого поля» и «Зависит от содержимого поля».
Оба фильтра и строка поиска применяются одновременно: запись остаётся в таблице, только если удовлетворяет всем заданным условиям.
Сортировка
По умолчанию записи отсортированы по столбцу «Функция» по алфавиту. Нажатие на заголовок столбца сортирует по нему, повторное нажатие меняет направление сортировки.
Сортировка доступна по столбцам Функция, Категория, Название, Детектируемое отклонение, Описание и Примеры использования.
Информационная карточка
Нажатие на строку таблицы открывает информационную карточку в правой части страницы. Переход на другую страницу не происходит: таблица остаётся видимой, с ней можно продолжать работать, а выбранная строка подсвечивается.
В карточке показаны все восемь полей записи полностью и без сокращений, в том числе те столбцы, которые скрыты в таблице. Каждый пример использования выводится отдельным пунктом.
Возможности карточки:
- нажатие на другую строку таблицы обновляет содержимое карточки;
- стрелки в карточке листают записи в текущем порядке строк — с учётом поиска, фильтров и сортировки;
- карточка закрывается крестиком.
Действий над ML-задачами в карточке нет. Открытие и закрытие карточки не сбрасывает поиск, фильтры и сортировку.
Право доступа
Доступ к справочнику определяется отдельным правом:
| Атрибут правила доступа | Значение |
|---|---|
| Объект → Тип | Справочник функций машинного обучения |
| Действие | Просмотр справочника функций машинного обучения |
Правило с этими атрибутами включается в разрешающую политику доступа. Право на чтение ML-задач доступа к справочнику не даёт, и наоборот. Без права пункт меню скрыт, а при переходе по прямой ссылке страница отвечает «Доступ запрещен».
Если в системе нет ни одной политики доступа, справочник виден всем вошедшим пользователям.
Если задана хотя бы одна разрешающая политика, право не выдаётся автоматически при обновлении. Чтобы справочник стал доступен, добавьте тип объекта «Справочник функций машинного обучения» в соответствующее правило доступа. Это относится и к роли admin.
Подробнее о модели разграничения прав — в разделе Управление доступом.
Программный доступ
Содержимое справочника доступно через API:
GET /api/v1/references/ml-functions
Запрос только читает данные и не изменяет состояние системы. Поддерживаются параметры:
| Параметр | Назначение |
|---|---|
pagination.search | Строка поиска — те же поля, что и в интерфейсе |
pagination.sort | Поле сортировки: function, category, name, description, deviation, usage_examples |
pagination.order | Направление сортировки |
category_ids | Фильтр по категориям (несколько значений) |
data_types | Фильтр по типам данных (несколько значений) |
Постраничная выдача необязательна: без параметров постраничности возвращаются все подходящие записи. В ответе, помимо самих записей, есть общее количество подходящих записей и полные списки категорий и типов данных для элементов фильтрации.
Язык ответа задаётся заголовком Accept-Language (ru по умолчанию, en). Подробная спецификация доступна в Swagger-документации API.
См. также
- Процессор Anomaly — обогащение событий оценкой аномальности от ML-сервиса
- Управление доступом — настройка прав на объекты системы