API создания задач анализа фреймворков
Создаёт задачу анализа данных с использованием фреймворков.
Запрос
PUT _ml/data_frame/analytics/<data_frame_analytics_id>
Предварительные условия
Требуются следующие привилегии:
- cluster:
manage_ml(рольmachine_learning_adminпредоставляет эту привилегию) - source indices:
read,view_index_metadata - destination index:
read,create_index,manageиindex
Задача анализа данных запоминает роли пользователя, который её создал. При запуске задачи анализ выполняется с использованием этих же ролей. Если вы предоставите дополнительные заголовки авторизации, будут использоваться эти учетные данные.
Описание
Этот API создаёт задачу анализа данных с использованием фреймворков, которая выполняет анализ исходных индексов и сохраняет результат в целевом индексе.
Если целевой индекс не существует, он создаётся автоматически при запуске задачи. См. API запуска задач анализа данных с использованием фреймворков.
Если вы предоставите только подмножество параметров регрессии или классификации, происходит оптимизация гиперпараметров. Она определяет значение каждого неопределённого параметра.
Параметры пути
-
<data_frame_analytics_id> - (Обязательно, строка) Идентификатор задачи анализа данных с использованием фреймворков. Этот идентификатор может содержать строчные буквенно-цифровые символы (a-z и 0-9), дефисы и символы подчеркивания. Он должен начинаться и заканчиваться буквенно-цифровыми символами.
Тело запроса
-
allow_lazy_start - (Необязательно, булево значение) Указывает, может ли эта задача запускаться, если для неё недостаточно ресурсов на узле машинного обучения. По умолчанию —
false; если узел машинного обучения с необходимой ёмкостью не найден немедленно, API возвращает ошибку. Однако это также зависит от кластерного параметраxpack.ml.max_lazy_ml_nodes. См. Дополнительные параметры машинного обучения. Если этот параметр установлен в значениеtrue, API не возвращает ошибку и задача ожидает в состоянииstarting, пока не станет доступно достаточное количество ресурсов на узле машинного обучения.
-
analysis -
(Обязательно, объект) Настройка анализа, которая содержит информацию, необходимую для выполнения одного из следующих типов анализа: классификация, обнаружение выбросов или регрессия.
Свойства
analysis-
classification -
(Обязательно*, объект) Конфигурационная информация, необходимая для выполнения классификации.
Дополнительные параметры предназначены для тонкой настройки анализа классификации. Они автоматически устанавливаются при оптимизации гиперпараметров, чтобы обеспечить минимальную ошибку валидации. Настоятельно рекомендуется использовать значения по умолчанию, если вы не полностью понимаете функцию этих параметров.
Свойства
classification
-
-
alpha - (Необязательно, double) Дополнительный параметр конфигурации. Машинное обучение использует руководство по убыткам для роста дерева, что означает, что деревья решений растут там, где регуляризованная потеря уменьшается быстрее всего. Этот параметр влияет на расчеты потерь, действуя как множитель глубины дерева. Более высокие значения alpha приводят к более коротким деревьям и более быстрому времени обучения. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть больше или равно нулю.
-
class_assignment_objective - (Необязательно, строка) Определяет целевую функцию для оптимизации при назначении меток классов:
maximize_accuracyилиmaximize_minimum_recall. При максимизации точности метки классов выбираются таким образом, чтобы максимизировать количество правильных прогнозов. При максимизации минимального полноты метки классов выбираются таким образом, чтобы максимизировать минимальную полноту для любого класса. По умолчанию значение равноmaximize_minimum_recall. -
dependent_variable -
(Обязательно, строка)
Определяет поле документа, которое должно быть предсказано. Этот параметр задаётся именем поля и должен соответствовать одному из полей в индексе, используемом для обучения. Если это поле отсутствует в документе, то этот документ не будет использован для обучения, но для него будет сгенерирован прогноз с обученной моделью. Также известно как непрерывная целевая переменная.
Тип данных поля должен быть числовым (
integer,short,long,byte), категориальным (ipилиkeyword) или булевым. В этом поле не должно быть более 100 различных значений. -
downsample_factor - (Необязательно, double) Дополнительный параметр конфигурации. Управляет долей данных, используемых для вычисления производных функции потерь для обучения дерева. Малое значение приводит к использованию небольшой доли данных. Если это значение меньше 1, то точность, как правило, повышается. Однако слишком малое значение может привести к плохой сходимости ансамбля и потребовать больше деревьев. Для получения дополнительной информации о сжатии обратитесь к этой статье вики. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть больше нуля и меньше или равно 1.
-
early_stopping_enabled - (Необязательно, Boolean) Дополнительный параметр конфигурации. Указывает, должен ли процесс обучения завершиться, если он не находит моделей с лучшей производительностью. Если отключить, процесс обучения может занять значительно больше времени, и вероятность найти модель с лучшей производительностью невелика. По умолчанию, раннее прекращение включено.
-
eta - (Необязательно, double) Дополнительный параметр конфигурации. Сжатие, применяемое к весам. Меньшие значения приводят к более крупным лесам, которые имеют лучшую ошибку обобщения. Однако более крупные леса приводят к более медленному обучению. Для получения дополнительной информации о сжатии обратитесь к этой статье вики. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть значением между 0,001 и 1.
-
eta_growth_rate_per_tree - (Необязательно, double) Дополнительный параметр конфигурации. Указывает скорость, с которой
etaувеличивается для каждого нового дерева, добавленного в лес. Например, скорость 1,05 увеличиваетetaна 5% для каждого дополнительного дерева. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть между 0,5 и 2. -
feature_bag_fraction - (Необязательно, double) Дополнительный параметр конфигурации. Определяет долю признаков, которые будут использоваться при выборе случайного набора для каждого кандидатского разделения. По умолчанию это значение вычисляется во время оптимизации гиперпараметров.
-
feature_processors -
(Необязательно, список) Дополнительный параметр конфигурации. Коллекция предобработчиков признаков, которые изменяют одно или несколько включённых полей. Анализ использует полученные одно или несколько признаков вместо исходного поля документа. Однако эти признаки временные; они не сохраняются в индексе назначения. Несколько записей
feature_processorsмогут ссылаться на одни и те же поля документа. Автоматическое категориальное кодирование признаков всё ещё происходит для полей, которые не обработаны пользовательским процессором или содержат категориальные значения. Используйте этот параметр только в том случае, если вы хотите переопределить автоматическое кодирование признаков указанных полей. Обратитесь к предобработчикам признаков анализа фреймов данных, чтобы узнать больше.Свойства
feature_processors-
frequency_encoding -
(объект) Информация о конфигурации, необходимая для выполнения кодирования частоты.
Свойства
frequency_encoding-
feature_name - (Обязательно, строка) Имя результирующего признака.
-
field - (Обязательно, строка) Имя поля для кодирования.
-
frequency_map - (Обязательно, объект) Полученная карта частот для значения поля. Если значение поля отсутствует в
frequency_map, результирующее значение равно0.
-
-
multi_encoding -
(объект) Информация о конфигурации, необходимая для многомерного кодирования. Он позволяет изменять несколько процессоров вместе. Таким образом, вывод одного процессора можно передать в качестве входных данных другому.
Свойства
multi_encoding-
processors - (Обязательно, массив) Отсортированный массив пользовательских процессоров для выполнения. Должен содержать более 1 элемента.
-
-
n_gram_encoding -
(объект) Информация о конфигурации, необходимая для кодирования n-грамм. Признаки, созданные этим кодировщиком, имеют следующий формат имени:
<feature_prefix>.<ngram><string position>. Например, еслиfeature_prefixравноf, имя признака для второй униграммы в строке -f.11.Свойства
n_gram_encoding-
feature_prefix - (Необязательно, строка) Префикс имени признака. По умолчанию
ngram_<start>_<length>. -
field - (Обязательно, строка) Имя текстового поля для кодирования.
-
length - (Необязательно, целое число) Указывает длину подстроки n-граммы. По умолчанию
50. Должно быть больше0. -
n_grams - (Обязательно, массив) Указывает, какие n-граммы собирать. Это массив целочисленных значений, где минимальное значение равно 1, а максимальное - 5.
-
start - (Необязательно, целое число) Указывает нулевой индекс начала подстроки n-граммы. Разрешены отрицательные значения для кодирования n-грамм суффиксов строк. По умолчанию
0.
-
-
one_hot_encoding -
(объект) Информация о конфигурации, необходимая для выполнения кодирования one-hot.
Свойства
one_hot_encoding-
field - (Обязательно, строка) Имя поля для кодирования.
-
hot_map - (Обязательно, строка) Карта one-hot, сопоставляющая значение поля с именем столбца.
-
-
target_mean_encoding -
(объект) Информация о конфигурации, необходимая для выполнения кодирования среднего значения целевой переменной.
Свойства
target_mean_encoding-
default_value - (Обязательно, целое число) Значение по умолчанию, если значение поля не найдено в
target_map. -
feature_name - (Обязательно, строка) Имя результирующего признака.
-
field - (Обязательно, строка) Имя поля для кодирования.
-
target_map - (Обязательно, объект) Карта перехода значений поля к среднему значению целевой переменной.
-
-
-
gamma - (Необязательно, double) Дополнительный параметр конфигурации. Параметр регуляризации для предотвращения переобучения на наборе обучающих данных. Умножает линейную штрафную составляющую, связанную с размером отдельных деревьев в лесу. Высокое значение gamma приводит к тому, что обучение предпочитает небольшие деревья. Малое значение gamma приводит к большим отдельным деревьям и более медленному обучению. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть неотрицательным.
-
lambda - (Необязательно, double) Дополнительный параметр конфигурации. Параметр регуляризации для предотвращения переобучения на наборе обучающих данных. Умножает член регуляризации L2, который применяется к весам листьев отдельных деревьев в лесу. Высокое значение lambda приводит к тому, что обучение отдает предпочтение небольшим весам листьев. Это поведение делает функцию прогнозирования более плавной за счет потенциальной невозможности уловить соответствующие связи между признаками и зависимой переменной. Малое значение lambda приводит к большим отдельным деревьям и более медленному обучению. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть неотрицательным.
-
max_optimization_rounds_per_hyperparameter
-
- (Необязательно, целое число) Дополнительный параметр конфигурации. Множитель, отвечающий за определение максимального количества шагов оптимизации гиперпараметров в процедуре байесовской оптимизации. Максимальное количество шагов определяется на основе количества неопределенных гиперпараметров умноженного на максимальное количество раундов оптимизации на один гиперпараметр. По умолчанию это значение вычисляется во время оптимизации гиперпараметров.
-
max_trees - (Необязательно, целое число) Дополнительный параметр конфигурации. Определяет максимальное количество деревьев решений в лесу. Максимальное значение равно 2000. По умолчанию это значение вычисляется во время оптимизации гиперпараметров.
-
num_top_classes -
(Необязательно, целое число) Определяет количество категорий, для которых сообщаются предсказанные вероятности. Оно должно быть неотрицательным или равным -1. Если оно равно -1 или больше общего количества категорий, вероятности сообщаются для всех категорий; если у вас большое количество категорий, это может существенно повлиять на размер вашего целевого индекса. По умолчанию равно 2.
Для использования метода оценки AUC ROC,
num_top_classesдолжно быть установлено на-1или значение, большее или равное общему количеству категорий. -
num_top_feature_importance_values - (Необязательно, целое число) Дополнительный параметр конфигурации. Указывает максимальное количество значений важности признаков на документ для возврата. По умолчанию оно равно нулю, и вычисление важности признаков не выполняется.
-
prediction_field_name - (Необязательно, строка) Определяет имя поля прогноза в результатах. По умолчанию равно
<dependent_variable>_prediction. -
randomize_seed - (Необязательно, целое число) Определяет seed для генератора случайных чисел, используемого для выбора обучающих данных. По умолчанию генерируется случайным образом. Установите его на определенное значение, чтобы каждый раз при запуске задания использовать те же обучающие данные (при условии, что другие связанные параметры, такие как
sourceиanalyzed_fields, одинаковы). -
soft_tree_depth_limit - (Необязательно, двойное число) Дополнительный параметр конфигурации. Машинное обучение использует направленное потерей построение дерева, что означает, что деревья решений растут там, где регулируемая потеря уменьшается наиболее быстро. Это мягкое ограничение совместно с
soft_tree_depth_toleranceштрафует деревья, которые превышают указанную глубину; регулируемая потеря быстро возрастает за пределами этой глубины. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть больше или равно 0. -
soft_tree_depth_tolerance - (Необязательно, двойное число) Дополнительный параметр конфигурации. Этот параметр контролирует, насколько быстро регулируемая потеря увеличивается, когда глубина дерева превышает
soft_tree_depth_limit. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть больше или равно 0,01. -
training_percent - (Необязательно, целое число) Определяет процент пригодных документов, которые будут использованы для обучения. Документы, игнорируемые анализом (например, те, которые содержат массивы с более чем одним значением), не будут включены в расчет используемого процента. По умолчанию равно
100.
-
outlier_detection -
(Обязательно*, объект) Информация о конфигурации, необходимая для выполнения обнаружения выбросов:
Свойства
outlier_detection-
compute_feature_influence - (Необязательно, логическое значение) Указывает, включено ли вычисление влияния признаков. По умолчанию равно
true. -
feature_influence_threshold - (Необязательно, двойное число) Минимальный балл выброса, который должен иметь документ для вычисления его балла влияния признака. Диапазон значений: 0-1 (по умолчанию
0.1). -
method - (Необязательно, строка) Метод, который использует обнаружение выбросов. Доступные методы:
lof,ldof,distance_kth_nn,distance_knnиensemble. Значение по умолчанию -ensemble, что означает, что обнаружение выбросов использует ансамбль различных методов, нормализует и объединяет их индивидуальные оценки выбросов, чтобы получить общую оценку выброса. -
n_neighbors - (Необязательно, целое число) Определяет значение для количества ближайших соседей, которые использует каждый метод обнаружения выбросов для расчета его оценки выброса. Если значение не установлено, для разных членов ансамбля используются разные значения. Это поведение по умолчанию помогает улучшить разнообразие в ансамбле; переопределяйте его только в том случае, если вы уверены, что выбранное вами значение подходит для набора данных.
-
outlier_fraction - (Необязательно, двойное число) Пропорция набора данных, которая предполагается выбросами до обнаружения выбросов. Например, 0,05 означает, что предполагается, что 5% значений являются реальными выбросами, а 95% - инлайнерами.
-
standardization_enabled - (Необязательно, логическое значение) Если
true, над столбцами выполняется следующая операция перед вычислением оценок выбросов: (x_i - mean(x_i)) / sd(x_i). По умолчанию равноtrue. Более подробную информацию об этом понятии см. в Википедии.
-
-
regression
-
(Обязательно*, объект) Конфигурационная информация, необходимая для выполнения регрессии.
Дополнительные параметры предназначены для тонкой настройки регрессионного анализа. Они автоматически устанавливаются процедурой оптимизации гиперпараметров, чтобы минимизировать ошибку валидации. Сильно рекомендуется использовать значения по умолчанию, если вы не полностью понимаете функцию этих параметров.
Свойства
regression-
alpha - (Необязательно, double) Дополнительный параметр конфигурации. Машинное обучение использует управляемое потерей наращивание деревьев, что означает, что деревья решений растут там, где регламентированная потеря уменьшается наиболее быстро. Этот параметр влияет на вычисление потерь, действуя как множитель глубины дерева. Более высокие значения alpha приводят к более мелким деревьям и более быстрой скорости обучения. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть больше или равно нулю.
-
dependent_variable -
(Обязательно, строка)
Определяет, какое поле документа должно предсказываться. Этот параметр задаётся именем поля и должен совпадать с одним из полей в индексе, используемом для обучения. Если это поле отсутствует в документе, то этот документ не будет использован для обучения, но для него будет сгенерировано предсказание с обученной моделью. Также известно как непрерывная целевая переменная.
Тип данных поля должен быть числовым.
-
downsample_factor - (Необязательно, double) Дополнительный параметр конфигурации. Управляет долей данных, которая используется для вычисления производных функции потерь для обучения дерева. Малое значение приводит к использованию малой доли данных. Если это значение меньше 1, то точность обычно улучшается. Однако слишком малое значение может привести к плохой сходимости для ансамбля и поэтому потребуется больше деревьев. Для получения дополнительной информации о сжатии обратитесь к этой статье Википедии. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть больше нуля и меньше или равно 1.
-
early_stopping_enabled - (Необязательно, Boolean) Дополнительный параметр конфигурации. Указывает, должен ли процесс обучения завершиться, если он не находит более эффективных моделей. Если отключить, процесс обучения может занять значительно больше времени, и вероятность найти лучшую модель невелика. По умолчанию раннее прекращение включено.
-
eta - (Необязательно, double) Дополнительный параметр конфигурации. Сжатие, применяемое к весам. Меньшие значения приводят к более крупным лесам, которые имеют лучшую обобщающую ошибку. Однако, более крупные леса приводят к более медленному обучению. Для получения дополнительной информации о сжатии обратитесь к этой статье Википедии. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть значением между 0,001 и 1.
-
eta_growth_rate_per_tree - (Необязательно, double) Дополнительный параметр конфигурации. Указывает скорость, с которой
etaувеличивается для каждого нового дерева, добавляемого в лес. Например, скорость 1,05 увеличиваетetaна 5% для каждого дополнительного дерева. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть между 0,5 и 2. -
feature_bag_fraction - (Необязательно, double) Дополнительный параметр конфигурации. Определяет долю признаков, которые будут использоваться при выборе случайного набора для каждого кандидата на разделение. По умолчанию это значение вычисляется во время оптимизации гиперпараметров.
-
feature_processors - (Необязательно, список) Дополнительный параметр конфигурации. Коллекция предобработчиков признаков, которые изменяют одно или несколько включённых полей. Анализ использует полученные одно или несколько признаков вместо исходного поля документа. Однако эти признаки являются временными; они не сохраняются в целевом индексе. Несколько записей
feature_processorsмогут ссылаться на одни и те же поля документа. Автоматическое категориальное кодирование признаков по-прежнему происходит для полей, которые не обрабатываются пользовательским процессором или которые имеют категориальные значения. Используйте этот параметр только в том случае, если вы хотите переопределить автоматическое кодирование признаков указанных полей. Обратитесь к предобработчикам признаков аналитики фреймов данных, чтобы узнать больше. -
gamma - (Необязательно, double) Дополнительный параметр конфигурации. Параметр регуляризации для предотвращения переобучения на обучающей выборке. Умножает линейную пенальти, связанную с размером отдельных деревьев в лесу. Высокое значение gamma заставляет обучение предпочитать небольшие деревья. Малое значение gamma приводит к более крупным отдельным деревьям и более медленному обучению. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть неотрицательным.
-
lambda - (Необязательно, double) Дополнительный параметр конфигурации. Параметр регуляризации для предотвращения переобучения на обучающей выборке. Умножает член регуляризации L2, который применяется к весам листьев отдельных деревьев в лесу. Высокое значение lambda заставляет обучение отдавать предпочтение небольшим весам листьев. Это поведение делает функцию предсказания более гладкой, но может не позволить уловить значимые взаимосвязи между признаками и зависимой переменной. Малое значение lambda приводит к большим отдельным деревьям и более медленному обучению. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть неотрицательным.
-
loss_function - (Необязательно, строка) Функция потерь, используемая во время регрессии. Доступные варианты:
mse(среднеквадратичная ошибка),msle(средняя логарифмическая ошибка),huber(потеря псевдо-Хабера). По умолчаниюmse. Обратитесь к Функциям потерь для регрессионных анализов, чтобы узнать больше. -
loss_function_parameter - (Необязательно, double) Положительное число, используемое в качестве параметра к
loss_function. -
max_optimization_rounds_per_hyperparameter - (Необязательно, целое число) Дополнительный параметр конфигурации. Множитель, отвечающий за определение максимального числа шагов оптимизации гиперпараметров в процедуре байесовской оптимизации. Максимальное число шагов определяется на основе количества неопределённых гиперпараметров, умноженного на максимальное количество раундов оптимизации на гиперпараметр. По умолчанию это значение вычисляется во время оптимизации гиперпараметров.
-
max_trees - (Необязательно, целое число) Определяет максимальное количество деревьев решений в лесу. Максимальное значение 2000. По умолчанию это значение вычисляется во время оптимизации гиперпараметров.
-
num_top_feature_importance_values - (Необязательно, целое число) Указывает максимальное количество значений важности признака на документ для возврата. По умолчанию 0, и вычисление важности признаков не происходит.
-
prediction_field_name - (Необязательно, строка) Определяет имя поля предсказания в результатах. По умолчанию
<dependent_variable>_prediction. -
randomize_seed - (Необязательно, long) Определяет начальное значение для генератора случайных чисел, который используется для выбора обучающих данных. По умолчанию генерируется случайно. Установите его в определённое значение, чтобы каждый раз использовать одинаковые обучающие данные при запуске задачи (если другие связанные параметры, такие как
sourceиanalyzed_fields, одинаковы). -
soft_tree_depth_limit - (Необязательно, double) Дополнительный параметр конфигурации. Машинное обучение использует управляемое потерей наращивание деревьев, что означает, что деревья решений растут там, где регламентированная потеря уменьшается наиболее быстро. Этот мягкий предел в сочетании с
soft_tree_depth_toleranceштрафует деревья, превышающие заданную глубину; регламентированная потеря быстро увеличивается за пределами этой глубины. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть больше или равно 0. -
soft_tree_depth_tolerance - (Необязательно, double) Дополнительный параметр конфигурации. Этот параметр контролирует, насколько быстро регламентированная потеря увеличивается, когда глубина дерева превышает
soft_tree_depth_limit. По умолчанию это значение вычисляется во время оптимизации гиперпараметров. Оно должно быть больше или равно 0,01. -
training_percent - (Необязательно, целое число) Определяет процент допустимых документов, которые будут использоваться для обучения. Документы, которые игнорируются анализом (например, те, которые содержат массивы с более чем одним значением), не будут включены в вычисление используемого процента. По умолчанию
100.
-
-
-
analyzed_fields -
(Необязательно, объект) Укажите шаблоны
includesи/илиexcludes, чтобы выбрать, какие поля будут включены в анализ. Шаблоны, указанные вexcludes, применяются последними, поэтомуexcludesимеют приоритет. Другими словами, если одно и то же поле указано как вincludes, так и вexcludes, то поле не будет включено в анализ.Поддерживаемые поля для каждого типа анализа следующие:
- Для обнаружения выбросов требуются числовые или логические данные для анализа. Алгоритмы не поддерживают пропущенные значения, поэтому поля с типами данных, отличными от числовых или логических, игнорируются. Документы, где включенные поля содержат пропущенные значения, значения null или массив, также игнорируются. Поэтому индекс
destможет содержать документы, у которых нет значения оценки выброса. - Регрессия поддерживает поля числового,
boolean,text,keywordиipтипов. Она также допускает пропущенные значения. Поддерживаемые поля включаются в анализ, другие поля игнорируются. Документы, где включенные поля содержат массив с двумя или более значениями, также игнорируются. Документы в индексеdest, которые не содержат поля результатов, не включаются в регрессионный анализ. - Классификация поддерживает поля числового,
boolean,text,keywordиipтипов. Она также допускает пропущенные значения. Поддерживаемые поля включаются в анализ, другие поля игнорируются. Документы, где включенные поля содержат массив с двумя или более значениями, также игнорируются. Документы в индексеdest, которые не содержат поля результатов, не включаются в анализ классификации. Анализ классификации можно улучшить, сопоставив значения порядковых переменных с одним числом. Например, в случае возрастных диапазонов вы можете смоделировать значения как "0-14" = 0, "15-24" = 1, "25-34" = 2 и так далее.
Если
analyzed_fieldsне задано, будут включены только соответствующие поля. Например, все числовые поля для обнаружения выбросов. Более подробную информацию о выборе полей см. в разделе Объяснение анализа данных фреймов.Свойства
analyzed_fields-
excludes - (Необязательно, массив) Массив строк, определяющий поля, которые будут исключены из анализа. Вам не нужно добавлять поля с недопустимыми типами данных в
excludes, эти поля исключаются из анализа автоматически. -
includes - (Необязательно, массив) Массив строк, определяющий поля, которые будут включены в анализ.
- Для обнаружения выбросов требуются числовые или логические данные для анализа. Алгоритмы не поддерживают пропущенные значения, поэтому поля с типами данных, отличными от числовых или логических, игнорируются. Документы, где включенные поля содержат пропущенные значения, значения null или массив, также игнорируются. Поэтому индекс
-
description - (Необязательно, строка) Описание задачи.
-
dest -
(Обязательно, объект) Конфигурация назначения, состоящая из
indexи необязательноresults_field(по умолчаниюml).Свойства
dest-
index - (Обязательно, строка) Определяет индекс назначения для хранения результатов работы задания анализа данных фреймов.
-
results_field - (Необязательно, строка) Определяет имя поля, в котором нужно хранить результаты анализа. По умолчанию
ml.
-
-
max_num_threads - (Необязательно, целое число) Максимальное количество потоков, которые будут использоваться для анализа. Значение по умолчанию —
1. Использование большего количества потоков может сократить время, необходимое для завершения анализа, но при этом увеличится использование ЦП. Обратите внимание, что процесс может использовать дополнительные потоки для операционной функциональности, отличной от самого анализа. -
_meta - (Необязательно, объект) Дополнительная конфигурация. Содержит пользовательские метаданные о задаче. Например, может содержать пользовательскую информацию об URL.
-
model_memory_limit - (Необязательно, строка) Приблизительный максимальный объем ресурсов памяти, разрешенных для аналитической обработки. Значение по умолчанию для задач анализа данных фреймов —
1gb. Если вы укажете значение для настройкиxpack.ml.max_model_memory_limit, при попытке создания задач со значениямиmodel_memory_limit, превышающими это значение, произойдет ошибка. Для получения дополнительной информации см. Настройки машинного обучения в Elasticsearch. -
source -
(объект) Конфигурация источника данных для анализа. Требуется
index. Необязательно, можно указатьquery,runtime_mappingsи_source.Свойства
source-
index -
(Обязательно, строка или массив) Индекс или индексы, на которых нужно выполнить анализ. Это может быть один индекс или шаблон индекса, а также массив индексов или шаблонов.
Если ваши исходные индексы содержат документы с одинаковыми идентификаторами, только последний индексированный документ отобразится в целевом индексе.
-
query - (Необязательно, объект) Язык запросов Elasticsearch (DSL). Это значение соответствует объекту запроса в теле POST-запроса Elasticsearch. Можно использовать все поддерживаемые Elasticsearch параметры, так как этот объект передается в Elasticsearch без изменений. По умолчанию этот параметр имеет следующее значение:
{"match_all": {}}. -
runtime_mappings - (Необязательно, объект) Определения полей runtime, которые войдут в состав отображения целевого индекса.
-
_source -
(Необязательно, объект) Укажите шаблоны
includesи/илиexcludesдля выбора полей, которые будут присутствовать в результате. Исключенные поля не могут быть включены в анализ.Свойства
_source-
includes - (массив) Массив строк, определяющих поля, которые будут включены в результат.
-
excludes - (массив) Массив строк, определяющих поля, которые будут исключены из результата.
-
-
Примеры
Пример действий предобработки
Следующий пример демонстрирует, как ограничить область анализа определёнными полями, указать исключённые поля в индексе назначения и использовать запрос для фильтрации данных перед анализом.
resp = client.ml.put_data_frame_analytics(
id="model-flight-delays-pre",
source={
"index": [
"kibana_sample_data_flights"
],
"query": {
"range": {
"DistanceKilometers": {
"gt": 0
}
}
},
"_source": {
"includes": [],
"excludes": [
"FlightDelay",
"FlightDelayType"
]
}
},
dest={
"index": "df-flight-delays",
"results_field": "ml-results"
},
analysis={
"regression": {
"dependent_variable": "FlightDelayMin",
"training_percent": 90
}
},
analyzed_fields={
"includes": [],
"excludes": [
"FlightNum"
]
},
model_memory_limit="100mb",
)
print(resp) const response = await client.ml.putDataFrameAnalytics({
id: "model-flight-delays-pre",
source: {
index: ["kibana_sample_data_flights"],
query: {
range: {
DistanceKilometers: {
gt: 0,
},
},
},
_source: {
includes: [],
excludes: ["FlightDelay", "FlightDelayType"],
},
},
dest: {
index: "df-flight-delays",
results_field: "ml-results",
},
analysis: {
regression: {
dependent_variable: "FlightDelayMin",
training_percent: 90,
},
},
analyzed_fields: {
includes: [],
excludes: ["FlightNum"],
},
model_memory_limit: "100mb",
});
console.log(response); PUT _ml/data_frame/analytics/model-flight-delays-pre
{
"source": {
"index": [
"kibana_sample_data_flights"
],
"query": {
"range": {
"DistanceKilometers": {
"gt": 0
}
}
},
"_source": {
"includes": [],
"excludes": [
"FlightDelay",
"FlightDelayType"
]
}
},
"dest": {
"index": "df-flight-delays",
"results_field": "ml-results"
},
"analysis": {
"regression": {
"dependent_variable": "FlightDelayMin",
"training_percent": 90
}
},
"analyzed_fields": {
"includes": [],
"excludes": [
"FlightNum"
]
},
"model_memory_limit": "100mb"
} | Индекс источника для анализа. | |
| Этот запрос фильтрует целые документы, которые не будут присутствовать в индексе назначения. | |
| Объект | |
| Определяет индекс назначения, который содержит результаты анализа и поля индекса источника, указанные в объекте | |
| Указывает поля, которые нужно включить или исключить из анализа. Это не влияет на то, будут ли поля присутствовать в индексе назначения, а только на то, используются ли они в анализе. |
В этом примере видно, что все поля индекса источника включены в индекс назначения, за исключением FlightDelay и FlightDelayType, так как они определены как исключённые поля параметром excludes объекта _source. Поле FlightNum включено в индекс назначения, однако оно не включено в анализ, потому что оно явно указано как исключённое поле параметром excludes объекта analyzed_fields.
Пример выявления аномалий
Следующий пример создаёт задание анализа данных loganalytics, тип анализа — outlier_detection:
resp = client.ml.put_data_frame_analytics(
id="loganalytics",
description="Outlier detection on log data",
source={
"index": "logdata"
},
dest={
"index": "logdata_out"
},
analysis={
"outlier_detection": {
"compute_feature_influence": True,
"outlier_fraction": 0.05,
"standardization_enabled": True
}
},
)
print(resp) const response = await client.ml.putDataFrameAnalytics({
id: "loganalytics",
description: "Outlier detection on log data",
source: {
index: "logdata",
},
dest: {
index: "logdata_out",
},
analysis: {
outlier_detection: {
compute_feature_influence: true,
outlier_fraction: 0.05,
standardization_enabled: true,
},
},
});
console.log(response); PUT _ml/data_frame/analytics/loganalytics
{
"description": "Outlier detection on log data",
"source": {
"index": "logdata"
},
"dest": {
"index": "logdata_out"
},
"analysis": {
"outlier_detection": {
"compute_feature_influence": true,
"outlier_fraction": 0.05,
"standardization_enabled": true
}
}
} API возвращает следующий результат:
{
"id" : "loganalytics",
"create_time" : 1656364565517,
"version" : "8.4.0",
"authorization" : {
"roles" : [
"superuser"
]
},
"description" : "Outlier detection on log data",
"source" : {
"index" : [
"logdata"
],
"query" : {
"match_all" : { }
}
},
"dest" : {
"index" : "logdata_out",
"results_field" : "ml"
},
"analysis" : {
"outlier_detection" : {
"compute_feature_influence" : true,
"outlier_fraction" : 0.05,
"standardization_enabled" : true
}
},
"model_memory_limit" : "1gb",
"allow_lazy_start" : false,
"max_num_threads" : 1
} Примеры регрессии
Следующий пример создаёт задание анализа данных house_price_regression_analysis, тип анализа — regression:
resp = client.ml.put_data_frame_analytics(
id="house_price_regression_analysis",
source={
"index": "houses_sold_last_10_yrs"
},
dest={
"index": "house_price_predictions"
},
analysis={
"regression": {
"dependent_variable": "price"
}
},
)
print(resp) const response = await client.ml.putDataFrameAnalytics({
id: "house_price_regression_analysis",
source: {
index: "houses_sold_last_10_yrs",
},
dest: {
index: "house_price_predictions",
},
analysis: {
regression: {
dependent_variable: "price",
},
},
});
console.log(response); PUT _ml/data_frame/analytics/house_price_regression_analysis
{
"source": {
"index": "houses_sold_last_10_yrs"
},
"dest": {
"index": "house_price_predictions"
},
"analysis":
{
"regression": {
"dependent_variable": "price"
}
}
} API возвращает следующий результат:
{
"id" : "house_price_regression_analysis",
"create_time" : 1656364845151,
"version" : "8.4.0",
"authorization" : {
"roles" : [
"superuser"
]
},
"source" : {
"index" : [
"houses_sold_last_10_yrs"
],
"query" : {
"match_all" : { }
}
},
"dest" : {
"index" : "house_price_predictions",
"results_field" : "ml"
},
"analysis" : {
"regression" : {
"dependent_variable" : "price",
"prediction_field_name" : "price_prediction",
"training_percent" : 100.0,
"randomize_seed" : -3578554885299300212,
"loss_function" : "mse",
"early_stopping_enabled" : true
}
},
"model_memory_limit" : "1gb",
"allow_lazy_start" : false,
"max_num_threads" : 1
} Следующий пример создаёт задание и указывает процент обучения:
resp = client.ml.put_data_frame_analytics(
id="student_performance_mathematics_0.3",
source={
"index": "student_performance_mathematics"
},
dest={
"index": "student_performance_mathematics_reg"
},
analysis={
"regression": {
"dependent_variable": "G3",
"training_percent": 70,
"randomize_seed": 19673948271
}
},
)
print(resp) const response = await client.ml.putDataFrameAnalytics({
id: "student_performance_mathematics_0.3",
source: {
index: "student_performance_mathematics",
},
dest: {
index: "student_performance_mathematics_reg",
},
analysis: {
regression: {
dependent_variable: "G3",
training_percent: 70,
randomize_seed: 19673948271,
},
},
});
console.log(response); PUT _ml/data_frame/analytics/student_performance_mathematics_0.3
{
"source": {
"index": "student_performance_mathematics"
},
"dest": {
"index":"student_performance_mathematics_reg"
},
"analysis":
{
"regression": {
"dependent_variable": "G3",
"training_percent": 70,
"randomize_seed": 19673948271
}
}
} | Процент набора данных, используемый для обучения модели. | |
| Зерно, используемое для случайного выбора данных для обучения. |
Следующий пример использует пользовательские обработчики функций для преобразования категориальных значений для DestWeather в числовые значения с помощью методов one-hot, target-mean и frequency encoding:
resp = client.ml.put_data_frame_analytics(
id="flight_prices",
source={
"index": [
"kibana_sample_data_flights"
]
},
dest={
"index": "kibana_sample_flight_prices"
},
analysis={
"regression": {
"dependent_variable": "AvgTicketPrice",
"num_top_feature_importance_values": 2,
"feature_processors": [
{
"frequency_encoding": {
"field": "DestWeather",
"feature_name": "DestWeather_frequency",
"frequency_map": {
"Rain": 0.14604811155570188,
"Heavy Fog": 0.14604811155570188,
"Thunder & Lightning": 0.14604811155570188,
"Cloudy": 0.14604811155570188,
"Damaging Wind": 0.14604811155570188,
"Hail": 0.14604811155570188,
"Sunny": 0.14604811155570188,
"Clear": 0.14604811155570188
}
}
},
{
"target_mean_encoding": {
"field": "DestWeather",
"feature_name": "DestWeather_targetmean",
"target_map": {
"Rain": 626.5588814585794,
"Heavy Fog": 626.5588814585794,
"Thunder & Lightning": 626.5588814585794,
"Hail": 626.5588814585794,
"Damaging Wind": 626.5588814585794,
"Cloudy": 626.5588814585794,
"Clear": 626.5588814585794,
"Sunny": 626.5588814585794
},
"default_value": 624.0249512020454
}
},
{
"one_hot_encoding": {
"field": "DestWeather",
"hot_map": {
"Rain": "DestWeather_Rain",
"Heavy Fog": "DestWeather_Heavy Fog",
"Thunder & Lightning": "DestWeather_Thunder & Lightning",
"Cloudy": "DestWeather_Cloudy",
"Damaging Wind": "DestWeather_Damaging Wind",
"Hail": "DestWeather_Hail",
"Clear": "DestWeather_Clear",
"Sunny": "DestWeather_Sunny"
}
}
}
]
}
},
analyzed_fields={
"includes": [
"AvgTicketPrice",
"Cancelled",
"DestWeather",
"FlightDelayMin",
"DistanceMiles"
]
},
model_memory_limit="30mb",
)
print(resp) const response = await client.ml.putDataFrameAnalytics({
id: "flight_prices",
source: {
index: ["kibana_sample_data_flights"],
},
dest: {
index: "kibana_sample_flight_prices",
},
analysis: {
regression: {
dependent_variable: "AvgTicketPrice",
num_top_feature_importance_values: 2,
feature_processors: [
{
frequency_encoding: {
field: "DestWeather",
feature_name: "DestWeather_frequency",
frequency_map: {
Rain: 0.14604811155570188,
"Heavy Fog": 0.14604811155570188,
"Thunder & Lightning": 0.14604811155570188,
Cloudy: 0.14604811155570188,
"Damaging Wind": 0.14604811155570188,
Hail: 0.14604811155570188,
Sunny: 0.14604811155570188,
Clear: 0.14604811155570188,
},
},
},
{
target_mean_encoding: {
field: "DestWeather",
feature_name: "DestWeather_targetmean",
target_map: {
Rain: 626.5588814585794,
"Heavy Fog": 626.5588814585794,
"Thunder & Lightning": 626.5588814585794,
Hail: 626.5588814585794,
"Damaging Wind": 626.5588814585794,
Cloudy: 626.5588814585794,
Clear: 626.5588814585794,
Sunny: 626.5588814585794,
},
default_value: 624.0249512020454,
},
},
{
one_hot_encoding: {
field: "DestWeather",
hot_map: {
Rain: "DestWeather_Rain",
"Heavy Fog": "DestWeather_Heavy Fog",
"Thunder & Lightning": "DestWeather_Thunder & Lightning",
Cloudy: "DestWeather_Cloudy",
"Damaging Wind": "DestWeather_Damaging Wind",
Hail: "DestWeather_Hail",
Clear: "DestWeather_Clear",
Sunny: "DestWeather_Sunny",
},
},
},
],
},
},
analyzed_fields: {
includes: [
"AvgTicketPrice",
"Cancelled",
"DestWeather",
"FlightDelayMin",
"DistanceMiles",
],
},
model_memory_limit: "30mb",
});
console.log(response); PUT _ml/data_frame/analytics/flight_prices
{
"source": {
"index": [
"kibana_sample_data_flights"
]
},
"dest": {
"index": "kibana_sample_flight_prices"
},
"analysis": {
"regression": {
"dependent_variable": "AvgTicketPrice",
"num_top_feature_importance_values": 2,
"feature_processors": [
{
"frequency_encoding": {
"field": "DestWeather",
"feature_name": "DestWeather_frequency",
"frequency_map": {
"Rain": 0.14604811155570188,
"Heavy Fog": 0.14604811155570188,
"Thunder & Lightning": 0.14604811155570188,
"Cloudy": 0.14604811155570188,
"Damaging Wind": 0.14604811155570188,
"Hail": 0.14604811155570188,
"Sunny": 0.14604811155570188,
"Clear": 0.14604811155570188
}
}
},
{
"target_mean_encoding": {
"field": "DestWeather",
"feature_name": "DestWeather_targetmean",
"target_map": {
"Rain": 626.5588814585794,
"Heavy Fog": 626.5588814585794,
"Thunder & Lightning": 626.5588814585794,
"Hail": 626.5588814585794,
"Damaging Wind": 626.5588814585794,
"Cloudy": 626.5588814585794,
"Clear": 626.5588814585794,
"Sunny": 626.5588814585794
},
"default_value": 624.0249512020454
}
},
{
"one_hot_encoding": {
"field": "DestWeather",
"hot_map": {
"Rain": "DestWeather_Rain",
"Heavy Fog": "DestWeather_Heavy Fog",
"Thunder & Lightning": "DestWeather_Thunder & Lightning",
"Cloudy": "DestWeather_Cloudy",
"Damaging Wind": "DestWeather_Damaging Wind",
"Hail": "DestWeather_Hail",
"Clear": "DestWeather_Clear",
"Sunny": "DestWeather_Sunny"
}
}
}
]
}
},
"analyzed_fields": {
"includes": [
"AvgTicketPrice",
"Cancelled",
"DestWeather",
"FlightDelayMin",
"DistanceMiles"
]
},
"model_memory_limit": "30mb"
} Эти пользовательские обработчики функций необязательны; автоматическое кодирование признаков всё ещё происходит для всех категориальных признаков.
Пример классификации
Следующий пример создаёт задание анализа данных loan_classification, тип анализа — classification:
resp = client.ml.put_data_frame_analytics(
id="loan_classification",
source={
"index": "loan-applicants"
},
dest={
"index": "loan-applicants-classified"
},
analysis={
"classification": {
"dependent_variable": "label",
"training_percent": 75,
"num_top_classes": 2
}
},
)
print(resp) const response = await client.ml.putDataFrameAnalytics({
id: "loan_classification",
source: {
index: "loan-applicants",
},
dest: {
index: "loan-applicants-classified",
},
analysis: {
classification: {
dependent_variable: "label",
training_percent: 75,
num_top_classes: 2,
},
},
});
console.log(response); PUT _ml/data_frame/analytics/loan_classification
{
"source" : {
"index": "loan-applicants"
},
"dest" : {
"index": "loan-applicants-classified"
},
"analysis" : {
"classification": {
"dependent_variable": "label",
"training_percent": 75,
"num_top_classes": 2
}
}
}
© 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/8.17/put-dfanalytics.html