获取影响因素 API
编辑获取影响因素 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
,这意味着它未设置,结果不受特定时间戳的限制。
请求正文编辑
您也可以在请求正文中指定查询参数;例外情况是 from
和 size
,请使用 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 }, ... ] }