获取影响因素 API编辑

检索一个或多个影响因素的异常检测作业结果。

请求编辑

GET _ml/anomaly_detectors/<job_id>/results/influencers

先决条件编辑

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

描述编辑

影响因素是导致异常或对异常负有责任的实体。影响因素结果仅在作业配置中指定了 influencer_field_name 时才可用。

路径参数编辑

<job_id>
(必需,字符串) 异常检测作业的标识符。

查询参数编辑

desc
(可选,布尔值) 如果为 true,则结果按降序排序。
end
(可选,字符串) 返回时间戳早于此时间的的影响因素。默认为 -1,这意味着它未设置,结果不受特定时间戳的限制。
exclude_interim
(可选,布尔值) 如果为 true,则输出将排除中间结果。默认为 false,这意味着包含中间结果。
from
(可选,整数) 跳过指定数量的影响因素。默认为 0
influencer_score
(可选,双精度) 返回异常评分大于或等于此值的的影响因素。默认为 0.0
size
(可选,整数) 指定要获取的影响因素的最大数量。默认为 100
sort
(可选,字符串) 指定请求的影响因素的排序字段。默认情况下,影响因素按 influencer_score 值排序。
start
(可选,字符串) 返回时间戳晚于此时间的的影响因素。默认为 -1,这意味着它未设置,结果不受特定时间戳的限制。

请求正文编辑

您也可以在请求正文中指定查询参数;例外情况是 fromsize,请使用 page 代替

page
page 的属性
from
(可选,整数) 跳过指定数量的影响因素。默认为 0
size
(可选,整数) 指定要获取的影响因素的最大数量。默认为 100

响应正文编辑

API 返回影响因素对象的数组,这些对象具有以下属性

bucket_span
(数字) 桶的长度(以秒为单位)。此值与作业中指定的 bucket_span 相匹配。
influencer_score
(数字) 0-100 之间的归一化评分,基于跨检测器聚合的桶中影响因素的概率。与 initial_influencer_score 不同,此值将通过重新归一化过程在分析新数据时更新。
influencer_field_name
(字符串) 影响因素的字段名称。
influencer_field_value
(字符串) 影响、导致或对异常负有责任的实体。
initial_influencer_score
(数字) 0-100 之间的归一化评分,基于跨检测器聚合的影响因素的概率。这是在处理桶时计算的初始值。
is_interim
(布尔值) 如果为 true,则这是一个中间结果。换句话说,结果是根据部分输入数据计算的。
job_id
(字符串) 异常检测作业的标识符。
probability
(数字) 影响因素具有此行为的概率,范围为 0 到 1。例如,0.0000109783。此值可以保留到超过 300 位小数的精度,因此提供 influencer_score 作为此值的易于理解和友好的解释。
result_type
(字符串) 内部。此值始终设置为 influencer
timestamp
(日期) 计算这些结果的桶的开始时间。

根据正在分析的字段添加其他影响因素属性。例如,如果它正在分析 user_name 作为影响因素,则将字段 user_name 添加到结果文档中。此信息使您能够更轻松地过滤异常结果。

示例编辑

response = client.ml.get_influencers(
  job_id: 'high_sum_total_sales',
  body: {
    sort: 'influencer_score',
    desc: true
  }
)
puts response
GET _ml/anomaly_detectors/high_sum_total_sales/results/influencers
{
  "sort": "influencer_score",
  "desc": true
}

在此示例中,API 返回以下信息,按影响因素评分降序排序

{
  "count": 189,
  "influencers": [
    {
      "job_id": "high_sum_total_sales",
      "result_type": "influencer",
      "influencer_field_name": "customer_full_name.keyword",
      "influencer_field_value": "Wagdi Shaw",
      "customer_full_name.keyword" : "Wagdi Shaw",
      "influencer_score": 99.02493,
      "initial_influencer_score" : 94.67233079580171,
      "probability" : 1.4784807245686567E-10,
      "bucket_span" : 3600,
      "is_interim" : false,
      "timestamp" : 1574661600000
    },
  ...
  ]
}