获取数据帧分析作业统计信息 API

编辑

获取数据帧分析作业统计信息 API编辑

检索数据帧分析作业的用量信息。

请求编辑

GET _ml/data_frame/analytics/<data_frame_analytics_id>/_stats

GET _ml/data_frame/analytics/<data_frame_analytics_id>,<data_frame_analytics_id>/_stats

GET _ml/data_frame/analytics/_stats

GET _ml/data_frame/analytics/_all/_stats

GET _ml/data_frame/analytics/*/_stats

先决条件编辑

需要 monitor_ml 集群权限。此权限包含在 machine_learning_user 内置角色中。

路径参数编辑

<data_frame_analytics_id>
(可选,字符串) 数据帧分析作业的标识符。如果未指定此选项,则 API 将返回前一百个数据帧分析作业的信息。

查询参数编辑

allow_no_match

(可选,布尔值) 指定当请求

  • 包含通配符表达式且没有匹配的数据帧分析作业时该怎么办。
  • 包含 _all 字符串或没有标识符且没有匹配项时该怎么办。
  • 包含通配符表达式且只有部分匹配项时该怎么办。

默认值为 true,当没有匹配项时返回一个空的 data_frame_analytics 数组,当有部分匹配项时返回结果子集。如果此参数为 false,则当没有匹配项或只有部分匹配项时,请求将返回 404 状态代码。

from
(可选,整数) 跳过指定数量的数据帧分析作业。默认值为 0
size
(可选,整数) 指定要获取的最大数据帧分析作业数量。默认值为 100
verbose
(可选,布尔值) 定义统计信息响应是否应为详细模式。默认值为 false

响应主体编辑

data_frame_analytics

(数组) 包含数据帧分析作业用量信息的多个对象的数组,这些对象按 id 值升序排序。

数据帧分析作业用量资源的属性
analysis_stats

(对象) 包含有关分析作业的信息的对象。

analysis_stats 的属性
classification_stats

(对象) 包含有关分类分析作业的信息的对象。

classification_stats 的属性
hyperparameters

(对象) 包含分类分析作业参数的对象。

hyperparameters 的属性
alpha
(双精度) 高级配置选项。机器学习使用损失引导树增长,这意味着决策树在正则化损失下降最快的区域增长。此参数通过充当树深度的乘数来影响损失计算。较高的 alpha 值会导致更浅的树和更快的训练时间。默认情况下,此值在超参数优化期间计算。它必须大于或等于零。
class_assignment_objective
(字符串) 定义在分配类标签时要优化的目标:maximize_accuracymaximize_minimum_recall。在最大化准确率时,选择类标签以最大化正确预测的数量。在最大化最小召回率时,选择标签以最大化任何类的最小召回率。默认为 maximize_minimum_recall
downsample_factor
(双精度) 高级配置选项。控制用于计算树训练损失函数导数的数据部分。较小的值会导致使用一小部分数据。如果此值设置为小于 1,则准确率通常会提高。但是,太小的值可能会导致集成收敛不良,因此需要更多树。有关收缩的更多信息,请参阅 这篇维基百科文章。默认情况下,此值在超参数优化期间计算。它必须大于零且小于或等于 1。
eta
(双精度) 高级配置选项。应用于权重的收缩。较小的值会导致更大的森林,这些森林具有更好的泛化误差。但是,更大的森林会导致更慢的训练。有关收缩的更多信息,请参阅 这篇维基百科文章。默认情况下,此值在超参数优化期间计算。它必须是 0.001 到 1 之间的值。
eta_growth_rate_per_tree
(双精度) 高级配置选项。指定为森林添加的每棵新树 eta 增加的速率。例如,速率为 1.05 会使每棵额外树的 eta 增加 5%。默认情况下,此值在超参数优化期间计算。它必须介于 0.5 和 2 之间。
feature_bag_fraction
(双精度) 高级配置选项。定义在为每个候选拆分选择随机包时将使用的特征部分。默认情况下,此值在超参数优化期间计算。
gamma
(双精度) 高级配置选项。正则化参数,用于防止在训练数据集上过度拟合。将与森林中各个树的大小相关的线性惩罚相乘。较高的 gamma 值会导致训练更倾向于选择较小的树。较小的 gamma 值会导致更大的单个树和更慢的训练。默认情况下,此值在超参数优化期间计算。它必须是非负值。
lambda
(双精度) 高级配置选项。正则化参数,用于防止在训练数据集上过度拟合。将 L2 正则化项相乘,该项应用于森林中各个树的叶权重。较高的 lambda 值会导致训练更倾向于选择较小的叶权重。这种行为使预测函数在特征和因变量之间可能无法捕获相关关系的代价下变得更平滑。较小的 lambda 值会导致更大的单个树和更慢的训练。默认情况下,此值在超参数优化期间计算。它必须是非负值。
max_attempts_to_add_tree
(整数) 如果算法无法确定非平凡树(超过单个叶节点),则此参数确定容忍多少次此类连续失败。一旦尝试次数超过阈值,森林训练就会停止。
max_optimization_rounds_per_hyperparameter
(整数) 高级配置选项。一个乘数,用于确定贝叶斯优化过程中超参数优化步骤的最大数量。最大步骤数由未定义超参数的数量乘以每个超参数的最大优化轮数确定。默认情况下,此值在超参数优化期间计算。
max_trees
(整数) 高级配置选项。定义森林中决策树的最大数量。最大值为 2000。默认情况下,此值在超参数优化期间计算。
num_folds
(整数) 交叉验证过程中的最大折叠数。
num_splits_per_feature
(整数) 确定训练树时,决策树中每个特征可以发生的拆分最大数量。
soft_tree_depth_limit
(双精度) 高级配置选项。机器学习使用损失引导树增长,这意味着决策树在正则化损失下降最快的区域增长。此软限制与 soft_tree_depth_tolerance 相结合,对超过指定深度的树进行惩罚;正则化损失在此深度之外会迅速增加。默认情况下,此值在超参数优化期间计算。它必须大于或等于 0。
soft_tree_depth_tolerance
(双精度) 高级配置选项。此选项控制当树深度超过 soft_tree_depth_limit 时正则化损失增加的速度。默认情况下,此值在超参数优化期间计算。它必须大于或等于 0.01。
iteration
(整数) 分析的迭代次数。
timestamp
(日期) 报告统计信息的时戳(以自纪元以来的毫秒数表示)。
timing_stats

(对象) 包含有关数据帧分析作业的时间统计信息的对象。

timing_stats 的属性
elapsed_time
(整数) 分析的运行时间(以毫秒为单位)。
iteration_time
(整数) 分析最新迭代的运行时间(以毫秒为单位)。
validation_loss

(对象) 包含有关验证损失的信息的对象。

validation_loss 的属性
fold_values
在森林增长过程中为每棵添加的决策树提供的验证损失值。
loss_type
(字符串) 损失度量的类型。例如,binomial_logistic
outlier_detection_stats

(对象) 包含有关异常值检测作业的信息的对象。

outlier_detection_stats 的属性
parameters

(对象) 用户指定或由算法启发式确定的作业参数列表。

parameters 的属性
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。有关此概念的更多信息,请参阅 维基百科
timestamp
(日期) 报告统计信息的时戳(以自纪元以来的毫秒数表示)。
timing_stats

(对象) 包含有关数据帧分析作业的时间统计信息的对象。

timing_stats 的属性
elapsed_time
(整数) 分析的运行时间(以毫秒为单位)。
regression_stats

(对象) 包含有关回归分析作业的信息的对象。

regression_stats 的属性
hyperparameters

(对象) 包含回归分析作业参数的对象。

hyperparameters 的属性
alpha
(双精度) 高级配置选项。机器学习使用损失引导树增长,这意味着决策树在正则化损失下降最快的区域增长。此参数通过充当树深度的乘数来影响损失计算。较高的 alpha 值会导致更浅的树和更快的训练时间。默认情况下,此值在超参数优化期间计算。它必须大于或等于零。
downsample_factor
(双精度) 高级配置选项。控制用于计算树训练损失函数导数的数据部分。较小的值会导致使用一小部分数据。如果此值设置为小于 1,则准确率通常会提高。但是,太小的值可能会导致集成收敛不良,因此需要更多树。有关收缩的更多信息,请参阅 这篇维基百科文章。默认情况下,此值在超参数优化期间计算。它必须大于零且小于或等于 1。
eta
(双精度) 高级配置选项。应用于权重的收缩。较小的值会导致更大的森林,这些森林具有更好的泛化误差。但是,更大的森林会导致更慢的训练。有关收缩的更多信息,请参阅 这篇维基百科文章。默认情况下,此值在超参数优化期间计算。它必须是 0.001 到 1 之间的值。
eta_growth_rate_per_tree
(双精度) 高级配置选项。指定为森林添加的每棵新树 eta 增加的速率。例如,速率为 1.05 会使每棵额外树的 eta 增加 5%。默认情况下,此值在超参数优化期间计算。它必须介于 0.5 和 2 之间。
feature_bag_fraction
(双精度) 高级配置选项。定义在为每个候选拆分选择随机包时将使用的特征部分。默认情况下,此值在超参数优化期间计算。
gamma
(双精度) 高级配置选项。正则化参数,用于防止在训练数据集上过度拟合。将与森林中各个树的大小相关的线性惩罚相乘。较高的 gamma 值会导致训练更倾向于选择较小的树。较小的 gamma 值会导致更大的单个树和更慢的训练。默认情况下,此值在超参数优化期间计算。它必须是非负值。
lambda
(双精度) 高级配置选项。正则化参数,用于防止在训练数据集上过度拟合。将 L2 正则化项相乘,该项应用于森林中各个树的叶权重。较高的 lambda 值会导致训练更倾向于选择较小的叶权重。这种行为使预测函数在特征和因变量之间可能无法捕获相关关系的代价下变得更平滑。较小的 lambda 值会导致更大的单个树和更慢的训练。默认情况下,此值在超参数优化期间计算。它必须是非负值。
max_attempts_to_add_tree
(整数) 如果算法无法确定非平凡树(超过单个叶节点),则此参数确定容忍多少次此类连续失败。一旦尝试次数超过阈值,森林训练就会停止。
max_optimization_rounds_per_hyperparameter
(整数) 高级配置选项。一个乘数,用于确定贝叶斯优化过程中超参数优化步骤的最大数量。最大步骤数由未定义超参数的数量乘以每个超参数的最大优化轮数确定。默认情况下,此值在超参数优化期间计算。
max_trees
(整数) 高级配置选项。定义森林中决策树的最大数量。最大值为 2000。默认情况下,此值在超参数优化期间计算。
num_folds
(整数) 交叉验证过程中的最大折叠数。
num_splits_per_feature
(整数) 确定训练树时,决策树中每个特征可以发生的拆分最大数量。
soft_tree_depth_limit
(双精度) 高级配置选项。机器学习使用损失引导树增长,这意味着决策树在正则化损失下降最快的区域增长。此软限制与 soft_tree_depth_tolerance 相结合,对超过指定深度的树进行惩罚;正则化损失在此深度之外会迅速增加。默认情况下,此值在超参数优化期间计算。它必须大于或等于 0。
soft_tree_depth_tolerance
(双精度) 高级配置选项。此选项控制当树深度超过 soft_tree_depth_limit 时正则化损失增加的速度。默认情况下,此值在超参数优化期间计算。它必须大于或等于 0.01。
iteration
(整数) 分析的迭代次数。
timestamp
(日期) 报告统计信息的时戳(以自纪元以来的毫秒数表示)。
timing_stats

(对象) 包含有关数据帧分析作业的时间统计信息的对象。

timing_stats 的属性
elapsed_time
(整数) 分析的运行时间(以毫秒为单位)。
iteration_time
(整数) 分析最新迭代的运行时间(以毫秒为单位)。
validation_loss

(对象) 包含有关验证损失的信息的对象。

validation_loss 的属性
fold_values
(字符串数组) 在森林生长过程中,每次添加决策树时的验证损失值。
loss_type
(字符串) 损失度量的类型。例如,binomial_logistic
assignment_explanation
(字符串) 仅适用于正在运行的作业,包含与选择节点以运行作业相关的消息。
data_counts

(对象) 提供跳过、用于训练或可用于测试的文档数量的计数的对象。

data_counts 的属性
skipped_docs_count
(整数) 在分析过程中跳过的文档数量,因为它们包含分析不支持的值。例如,异常值检测不支持缺失字段,因此它会跳过包含缺失字段的文档。同样,所有类型的分析都会跳过包含多个元素的数组的文档。
test_docs_count
(整数) 未用于训练模型且可用于测试的文档数量。
training_docs_count
(整数) 用于训练模型的文档数量。
id
(字符串) 数据帧分析作业的唯一标识符。
memory_usage

(可选,对象) 描述分析内存使用情况的对象。它仅在作业启动且报告内存使用情况后才存在。

memory_usage 的属性
memory_reestimate_bytes
(长整数) 当 statushard_limit 时,此值存在,它是作业需要多少内存的新估计值。
peak_usage_bytes
(长整数) 内存使用量峰值时的字节数。
status

(字符串) 内存使用情况。可能具有以下值之一

  • ok:使用量保持在限制以下。
  • hard_limit:使用量超过配置的内存限制。
timestamp
(日期) 计算内存使用量的时间戳。
node

(对象) 包含运行作业的节点的属性。此信息仅适用于正在运行的作业。

node 的属性
attributes
(对象) 列出节点属性,例如 ml.machine_memoryml.max_open_jobs 设置。
ephemeral_id
(字符串) 节点的短暂 ID。
id
(字符串) 节点的唯一标识符。
name
(字符串) 节点名称。
transport_address
(字符串) 接受传输 HTTP 连接的主机和端口。
progress

(数组) 按阶段的数据帧分析作业的进度报告。

阶段对象的属性
phase

(字符串) 定义数据帧分析作业的阶段。可能的阶段

  • reindexing,
  • loading_data,
  • computing_outliers(仅适用于异常值检测),
  • feature_selection(仅适用于回归和分类),
  • coarse_parameter_search(仅适用于回归和分类),
  • fine_tuning_parameters(仅适用于回归和分类),
  • final_training(仅适用于回归和分类),
  • writing_results,
  • inference(仅适用于回归和分类)。

    要了解有关不同阶段的更多信息,请参阅 数据帧分析作业的工作原理

progress_percent
(整数) 数据帧分析作业已完成的进度,以百分比表示。
state
(字符串) 数据帧分析作业的状态,可以是以下值之一:failedstartedstartingstoppingstopped

响应代码编辑

404(缺少资源)
如果 allow_no_matchfalse,则此代码表示没有与请求匹配的资源,或者请求仅部分匹配。

示例编辑

以下 API 检索 异常值检测数据帧分析作业示例 的使用信息

response = client.ml.get_data_frame_analytics_stats(
  id: 'weblog-outliers'
)
puts response
GET _ml/data_frame/analytics/weblog-outliers/_stats
{
  "count" : 1,
  "data_frame_analytics" : [
    {
      "id" : "weblog-outliers",
      "state" : "stopped",
      "progress" : [
        {
          "phase" : "reindexing",
          "progress_percent" : 100
        },
        {
          "phase" : "loading_data",
          "progress_percent" : 100
        },
        {
          "phase" : "computing_outliers",
          "progress_percent" : 100
        },
        {
          "phase" : "writing_results",
          "progress_percent" : 100
        }
      ],
      "data_counts" : {
        "training_docs_count" : 1001,
        "test_docs_count" : 0,
        "skipped_docs_count" : 0
      },
      "memory_usage" : {
        "timestamp" : 1626264770206,
        "peak_usage_bytes" : 328011,
        "status" : "ok"
      },
      "analysis_stats" : {
        "outlier_detection_stats" : {
          "timestamp" : 1626264770206,
          "parameters" : {
            "n_neighbors" : 0,
            "method" : "ensemble",
            "compute_feature_influence" : true,
            "feature_influence_threshold" : 0.1,
            "outlier_fraction" : 0.05,
            "standardization_enabled" : true
          },
          "timing_stats" : {
            "elapsed_time" : 32
          }
        }
      }
    }
  ]
}