Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Агрегации ›Агрегации конвейера

Агрегация по бакетам с выводом

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

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

Синтаксис

Агрегация inference выглядит следующим образом:

{
  "inference": {
    "model_id": "a_model_for_inference", 
    "inference_config": { 
      "regression_config": {
        "num_top_feature_importance_values": 2
      }
    },
    "buckets_path": {
      "avg_cost": "avg_agg", 
          "max_cost": "max_agg"
    }
  }
}

Уникальный идентификатор или псевдоним обученной модели.

Необязательная конфигурация вывода, которая переопределяет стандартные настройки модели.

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

Таблица 56. inference Параметры

Имя параметра Описание Обязательный Значение по умолчанию

model_id

Идентификатор или псевдоним обученной модели.

Обязательный

-

inference_config

Содержит тип вывода и его параметры. Существуют два типа: regression и classification.

Необязательный

-

buckets_path

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

Обязательный

-

Параметры конфигурации для моделей вывода

Настройка inference_config необязательна и обычно не требуется, так как предварительно обученные модели оснащены разумными значениями по умолчанию. В контексте агрегаций некоторые параметры можно переопределить для каждого из 2 типов модели.

Параметры конфигурации для регрессионных моделей
num_top_feature_importance_values
(Необязательный, целое число) Указывает максимальное количество значений значимости признаков на документ. По умолчанию равно нулю, и вычисление значимости признаков не выполняется.
Параметры конфигурации для классификационных моделей
num_top_classes
(Необязательный, целое число) Указывает количество предсказанных классов для возврата. По умолчанию 0.
num_top_feature_importance_values
(Необязательный, целое число) Указывает максимальное количество значений значимости признаков на документ. По умолчанию равно нулю, и вычисление значимости признаков не выполняется.
prediction_field_type
(Необязательный, строка) Указывает тип прогнозируемого поля для записи. Допустимые значения: string, number, boolean. При предоставлении boolean, 1.0 преобразуется в true, а 0.0 в false.

Пример

Следующий фрагмент агрегирует веб-лог по client_ip и извлекает ряд признаков с помощью агрегаций метрик и бакетов в качестве входных данных для агрегации вывода, настроенной с моделью, обученной для распознавания подозрительных IP-адресов клиентов:

GET kibana_sample_data_logs/_search
{
  "size": 0,
  "aggs": {
    "client_ip": { 
      "composite": {
        "sources": [
          {
            "client_ip": {
              "terms": {
                "field": "clientip"
              }
            }
          }
        ]
      },
      "aggs": { 
        "url_dc": {
          "cardinality": {
            "field": "url.keyword"
          }
        },
        "bytes_sum": {
          "sum": {
            "field": "bytes"
          }
        },
        "geo_src_dc": {
          "cardinality": {
            "field": "geo.src"
          }
        },
        "geo_dest_dc": {
          "cardinality": {
            "field": "geo.dest"
          }
        },
        "responses_total": {
          "value_count": {
            "field": "timestamp"
          }
        },
        "success": {
          "filter": {
            "term": {
              "response": "200"
            }
          }
        },
        "error404": {
          "filter": {
            "term": {
              "response": "404"
            }
          }
        },
        "error503": {
          "filter": {
            "term": {
              "response": "503"
            }
          }
        },
        "malicious_client_ip": { 
          "inference": {
            "model_id": "malicious_clients_model",
            "buckets_path": {
              "response_count": "responses_total",
              "url_dc": "url_dc",
              "bytes_sum": "bytes_sum",
              "geo_src_dc": "geo_src_dc",
              "geo_dest_dc": "geo_dest_dc",
              "success": "success._count",
              "error404": "error404._count",
              "error503": "error503._count"
            }
          }
        }
      }
    }
  }
}

Комбинированная агрегация по бакетам, агрегирующая данные по client_ip.

Ряд агрегаций метрик и бакетов.

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

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-pipeline-inference-bucket-aggregation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API