创建数据帧分析作业 API编辑

实例化数据帧分析作业。

请求编辑

PUT _ml/data_frame/analytics/<data_frame_analytics_id>

先决条件编辑

需要以下权限

  • 集群:manage_mlmachine_learning_admin 内置角色授予此权限)
  • 源索引:readview_index_metadata
  • 目标索引:readcreate_indexmanageindex

数据帧分析作业会记住创建它时用户拥有的角色。启动作业时,它会使用相同的角色执行分析。如果您提供辅助授权标头,则会改用这些凭据。

描述编辑

此 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
(可选,双精度浮点数)高级配置选项。机器学习使用损失引导树生长,这意味着决策树在正则化损失下降最快的地方生长。此参数通过充当树深度的乘数来影响损失计算。较高的 alpha 值会导致树更浅,训练时间更快。默认情况下,此值在超参数优化期间计算。它必须大于或等于零。
class_assignment_objective
(可选,字符串)定义分配类标签时要优化的目标:maximize_accuracymaximize_minimum_recall。最大化准确率时,选择类标签以最大化正确预测的数量。最大化最小召回率时,选择标签以最大化任何类的最小召回率。默认为 maximize_minimum_recall
dependent_variable

(必填,字符串)

定义要预测的文档字段。此参数由字段名称提供,并且必须与用于训练的索引中的一个字段匹配。如果文档中缺少此字段,则该文档将不用于训练,但会为其生成使用训练模型的预测。它也称为连续目标变量。

字段的数据类型必须是数字(integershortlongbyte)、分类(ipkeyword)或布尔值。此字段中不能超过 100 个不同的值。

downsample_factor
(可选,双精度浮点数)高级配置选项。控制用于计算树训练的损失函数导数的数据比例。较小的值会导致使用一小部分数据。如果将此值设置为小于 1,则准确率通常会提高。但是,过小的值可能会导致集成收敛性差,因此需要更多树。有关收缩的更多信息,请参阅此维基百科文章。默认情况下,此值在超参数优化期间计算。它必须大于零且小于或等于 1。
early_stopping_enabled
(可选,布尔值)高级配置选项。指定如果训练过程没有找到任何性能更好的模型,是否应该结束。如果禁用,训练过程可能需要更长的时间,并且找到性能更好的模型的可能性微乎其微。默认情况下,启用提前停止。
eta
(可选,双精度浮点数)高级配置选项。应用于权重的收缩量。较小的值会导致更大的森林,而更大的森林具有更好的泛化误差。但是,更大的森林会导致训练速度变慢。有关收缩的更多信息,请参阅此维基百科文章。默认情况下,此值在超参数优化期间计算。它必须是介于 0.001 和 1 之间的值。
eta_growth_rate_per_tree
(可选,双精度浮点数)高级配置选项。指定为森林添加的每棵新树,eta 增加的速率。例如,速率为 1.05 表示每增加一棵树,eta 增加 5%。默认情况下,此值在超参数优化期间计算。它必须介于 0.5 和 2 之间。
feature_bag_fraction
(可选,双精度浮点数)高级配置选项。定义为每个候选拆分选择随机袋时将使用的特征比例。默认情况下,此值在超参数优化期间计算。
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_prefixf,则字符串中第二个 unigram 的特征名称为 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_encoding 的属性
field
(必填,字符串)要编码的字段的名称。
hot_map
(必填,字符串)将字段值与列名映射的独热映射。
target_mean_encoding

(对象)执行目标均值编码所需的配置信息。

target_mean_encoding 的属性
default_value
(必填,整数)如果在 target_map 中找不到字段值,则使用默认值。
feature_name
(必填,字符串)生成的特征名称。
field
(必填,字符串)要编码的字段的名称。
target_map
(必填,对象)字段值到目标均值转换映射。
gamma
(可选,双精度)高级配置选项。正则化参数,用于防止对训练数据集过拟合。乘以与森林中单个树的大小相关的线性惩罚。较高的 gamma 值会导致训练倾向于较小的树。较小的 gamma 值会导致较大的单个树和较慢的训练速度。默认情况下,此值在超参数优化期间计算。它必须是非负值。
lambda
(可选,双精度)高级配置选项。正则化参数,用于防止对训练数据集过拟合。乘以应用于森林中各个树的叶权重的 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
(可选,长整型)定义用于选择训练数据的随机生成器的种子。默认情况下,它是随机生成的。将其设置为特定值,以便每次启动作业时使用相同的训练数据(假设其他相关参数(如 sourceanalyzed_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
(可选,字符串)异常值检测使用的方法。可用方法有 lofldofdistance_kth_nndistance_knnensemble。默认值为 ensemble,这意味着异常值检测使用不同方法的集合,并对其各自的异常值分数进行标准化和组合,以获得总体异常值分数。
n_neighbors
(可选,整数)定义每个异常值检测方法用于计算其异常值分数的最近邻居数量的值。如果未设置该值,则不同的集合成员将使用不同的值。此默认行为有助于提高集合的多样性;仅当您确信选择的值适合数据集时,才应覆盖它。
outlier_fraction
(可选,双精度)在异常值检测之前假定为异常值的数据集比例。例如,0.05 表示假设 5% 的值是真正的异常值,而 95% 是正常值。
standardization_enabled
(可选,布尔值)如果为 true,则在计算异常值分数之前,将对列执行以下操作:(x_i - mean(x_i)) / sd(x_i)。默认为 true。有关此概念的更多信息,请参阅维基百科
regression

(必填*,对象)执行 回归 所需的配置信息。

高级参数用于微调回归分析。它们由超参数优化自动设置,以提供最小的验证误差。强烈建议使用默认值,除非您完全了解这些参数的功能。

regression 的属性
alpha
(可选,双精度浮点数)高级配置选项。机器学习使用损失引导树生长,这意味着决策树在正则化损失下降最快的地方生长。此参数通过充当树深度的乘数来影响损失计算。较高的 alpha 值会导致树更浅,训练时间更快。默认情况下,此值在超参数优化期间计算。它必须大于或等于零。
dependent_variable

(必填,字符串)

定义要预测的文档字段。此参数由字段名称提供,并且必须与用于训练的索引中的一个字段匹配。如果文档中缺少此字段,则该文档将不用于训练,但会为其生成使用训练模型的预测。它也称为连续目标变量。

字段的数据类型必须为数字。

downsample_factor
(可选,双精度浮点数)高级配置选项。控制用于计算树训练的损失函数导数的数据比例。较小的值会导致使用一小部分数据。如果将此值设置为小于 1,则准确率通常会提高。但是,过小的值可能会导致集成收敛性差,因此需要更多树。有关收缩的更多信息,请参阅此维基百科文章。默认情况下,此值在超参数优化期间计算。它必须大于零且小于或等于 1。
early_stopping_enabled
(可选,布尔值)高级配置选项。指定如果训练过程没有找到任何性能更好的模型,是否应该结束。如果禁用,训练过程可能需要更长的时间,并且找到性能更好的模型的可能性微乎其微。默认情况下,启用提前停止。
eta
(可选,双精度浮点数)高级配置选项。应用于权重的收缩量。较小的值会导致更大的森林,而更大的森林具有更好的泛化误差。但是,更大的森林会导致训练速度变慢。有关收缩的更多信息,请参阅此维基百科文章。默认情况下,此值在超参数优化期间计算。它必须是介于 0.001 和 1 之间的值。
eta_growth_rate_per_tree
(可选,双精度浮点数)高级配置选项。指定为森林添加的每棵新树,eta 增加的速率。例如,速率为 1.05 表示每增加一棵树,eta 增加 5%。默认情况下,此值在超参数优化期间计算。它必须介于 0.5 和 2 之间。
feature_bag_fraction
(可选,双精度浮点数)高级配置选项。定义为每个候选拆分选择随机袋时将使用的特征比例。默认情况下,此值在超参数优化期间计算。
feature_processors
(可选,列表)高级配置选项。特征预处理器集合,用于修改一个或多个包含的字段。分析使用结果的一个或多个特征而不是原始文档字段。但是,这些特征是短暂的;它们不会存储在目标索引中。多个 feature_processors 条目可以引用相同的文档字段。对于未经自定义处理器处理或具有分类值的字段,仍会发生自动分类特征编码。仅当您要覆盖指定字段的自动特征编码时,才使用此属性。有关更多信息,请参阅数据帧分析特征处理器
gamma
(可选,双精度)高级配置选项。正则化参数,用于防止对训练数据集过拟合。乘以与森林中单个树的大小相关的线性惩罚。较高的 gamma 值会导致训练倾向于较小的树。较小的 gamma 值会导致较大的单个树和较慢的训练速度。默认情况下,此值在超参数优化期间计算。它必须是非负值。
lambda
(可选,双精度)高级配置选项。正则化参数,用于防止对训练数据集过拟合。乘以应用于森林中各个树的叶权重的 L2 正则化项。较高的 lambda 值会导致训练倾向于较小的叶权重。这种行为会使预测函数更平滑,但代价是可能无法捕获特征和因变量之间的相关关系。较小的 lambda 值会导致较大的单个树和较慢的训练速度。默认情况下,此值在超参数优化期间计算。它必须是非负值。
loss_function
(可选,字符串)回归期间使用的损失函数。可用选项有 mse(均方误差)、msle(均方对数误差)、huber(伪 Huber 损失)。默认为 mse。有关更多信息,请参阅回归分析的损失函数
loss_function_parameter
(可选,双精度)用作 loss_function 参数的正数。
max_optimization_rounds_per_hyperparameter
(可选,整数)高级配置选项。一个乘数,负责确定贝叶斯优化过程中超参数优化步骤的最大数量。最大步骤数取决于未定义的超参数数量乘以每个超参数的最大优化轮数。默认情况下,此值在超参数优化期间计算。
max_trees
(可选,整数)高级配置选项。定义森林中决策树的最大数量。最大值为 2000。默认情况下,此值在超参数优化期间计算。
num_top_feature_importance_values
(可选,整数)高级配置选项。指定每个文档要返回的最大 特征重要性 值数量。默认情况下,它为零,并且不进行特征重要性计算。
prediction_field_name
(可选,字符串)定义结果中预测字段的名称。默认为 <dependent_variable>_prediction
randomize_seed
(可选,长整型)定义用于选择训练数据的随机生成器的种子。默认情况下,它是随机生成的。将其设置为特定值,以便每次启动作业时使用相同的训练数据(假设其他相关参数(如 sourceanalyzed_fields)相同)。
soft_tree_depth_limit
(可选,双精度)高级配置选项。机器学习使用损失引导树生长,这意味着决策树在正则化损失下降最快的地方生长。此软限制与 soft_tree_depth_tolerance 相结合,对超过指定深度的树进行惩罚;正则化损失在此深度之后会迅速增加。默认情况下,此值在超参数优化期间计算。它必须大于或等于 0。
soft_tree_depth_tolerance
(可选,双精度)高级配置选项。此选项控制当树深度超过 soft_tree_depth_limit 时正则化损失的增加速度。默认情况下,此值在超参数优化期间计算。它必须大于或等于 0.01。
training_percent
(可选,整数)定义将用于训练的符合条件的文档的百分比。分析忽略的文档(例如,包含具有多个值的数组的文档)不会包含在已使用百分比的计算中。默认为 100
analyzed_fields

(可选,对象)指定 includes 和/或 excludes 模式以选择要包含在分析中的字段。最后应用在 excludes 中指定的模式,因此 excludes 优先。换句话说,如果在 includesexcludes 中都指定了相同的字段,则该字段将不会包含在分析中。

每种分析类型支持的字段如下

  • 异常值检测需要分析数字或布尔数据。算法不支持缺失值,因此将忽略数据类型不是数字或布尔值的字段。包含字段包含缺失值、空值或数组的文档也将被忽略。因此,dest 索引可能包含没有异常值分数的文档。
  • 回归支持数字、booleantextkeywordip 类型的字段。它也容忍缺失值。支持的字段将包含在分析中,其他字段将被忽略。包含字段包含具有两个或多个值的数组的文档也将被忽略。dest 索引中不包含结果字段的文档不包含在回归分析中。
  • 分类支持数字、booleantextkeywordip 类型的字段。它也容忍缺失值。支持的字段将包含在分析中,其他字段将被忽略。包含字段包含具有两个或多个值的数组的文档也将被忽略。dest 索引中不包含结果字段的文档不包含在分类分析中。可以通过将序数变量值映射到单个数字来改进分类分析。例如,在年龄范围的情况下,您可以将值建模为“0-14”= 0,“15-24”= 1,“25-34”= 2,依此类推。

如果未设置 analyzed_fields,则只会包含相关字段。例如,异常值检测的所有数字字段。有关字段选择的更多信息,请参阅解释数据帧分析

analyzed_fields 的属性
excludes
(可选,数组)一个字符串数组,定义将从分析中排除的字段。您不需要将数据类型不受支持的字段添加到 excludes 中,这些字段将自动从分析中排除。
includes
(可选,数组)定义将包含在分析中的字段的字符串数组。
description
(可选,字符串)作业的描述。
dest

(必填,对象)目标配置,由 index 和可选的 results_field(默认为 ml)组成。

dest 的属性
index
(必填,字符串)定义用于存储数据帧分析作业结果的*目标索引*。
results_field
(可选,字符串)定义用于存储分析结果的字段名称。默认为 ml
max_num_threads
(可选,整数)分析要使用的最大线程数。默认值为 1。使用更多线程可能会减少完成分析所需的时间,但会占用更多 CPU 资源。请注意,该进程可能会使用除分析本身之外的其他线程来执行操作功能。
_meta
(可选,对象)高级配置选项。包含有关作业的自定义元数据。例如,它可以包含自定义 URL 信息。
model_memory_limit
(可选,字符串)允许用于分析处理的近似最大内存资源量。数据帧分析作业的默认值为 1gb。如果为 xpack.ml.max_model_memory_limit 设置指定了值,则在尝试创建 model_memory_limit 值大于该设置值的作业时会发生错误。有关更多信息,请参阅机器学习设置
source

(对象)有关如何获取分析数据的配置。它需要一个 index。可以选择指定 queryruntime_mappings_source

source 的属性
index

(必填,字符串或数组)要对其执行分析的索引。它可以是单个索引或索引模式,也可以是索引或模式的数组。

如果源索引包含具有相同 ID 的文档,则只有最后索引的文档才会出现在目标索引中。

query
(可选,对象)Elasticsearch 查询领域特定语言 (DSL)。此值对应于 Elasticsearch 搜索 POST 正文中的查询对象。Elasticsearch 支持的所有选项都可以使用,因为此对象会逐字传递给 Elasticsearch。默认情况下,此属性具有以下值:{"match_all": {}}
runtime_mappings
(可选,对象)将成为目标索引映射一部分的运行时字段的定义。
_source

(可选,对象)指定 includes 和/或 excludes 模式以选择目标中将出现的字段。排除的字段不能包含在分析中。

_source 的属性
includes
(数组)定义将包含在目标中的字段的字符串数组。
excludes
(数组)定义将从目标中排除的字段的字符串数组。

示例编辑

预处理操作示例编辑

以下示例显示如何将分析范围限制为某些字段,在目标索引中指定排除的字段,以及在分析之前使用查询过滤数据。

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"
}

要分析的源索引。

此查询会过滤掉目标索引中不存在的整个文档。

_source 对象定义数据集中将包含在目标索引中或从目标索引中排除的字段。

定义包含分析结果的目标索引以及 _source 对象中指定的源索引的字段。还定义了 results_field 的名称。

指定要包含在分析中或从分析中排除的字段。这不会影响字段是否会出现在目标索引中,只会影响它们是否在分析中使用。

在此示例中,我们可以看到源索引的所有字段都包含在目标索引中,但 FlightDelayFlightDelayType 除外,因为它们是由 _source 对象的 excludes 参数定义为排除字段的。FlightNum 字段包含在目标索引中,但未包含在分析中,因为它被 analyzed_fields 对象的 excludes 参数明确指定为排除字段。

异常值检测示例编辑

以下示例创建 loganalytics 数据帧分析作业,分析类型为 outlier_detection

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

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
}

以下示例创建一个作业并指定训练百分比

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 的分类值转换为数值

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

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
    }
  }
}