获取影响因子 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 字段。此信息使您可以更轻松地筛选异常结果。

示例

编辑
resp = client.ml.get_influencers(
    job_id="high_sum_total_sales",
    sort="influencer_score",
    desc=True,
)
print(resp)
response = client.ml.get_influencers(
  job_id: 'high_sum_total_sales',
  body: {
    sort: 'influencer_score',
    desc: true
  }
)
puts response
const response = await client.ml.getInfluencers({
  job_id: "high_sum_total_sales",
  sort: "influencer_score",
  desc: true,
});
console.log(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
    },
  ...
  ]
}