SuperAPI AI 工具集

elasticsearch-anomaly-detection-explainer

数据与分析

查看项目

更新于 10-15 15:16

技能介绍

用途

本技能用于解释 Elasticsearch 机器学习(ML)异常检测的分数、模型行为以及结果为何呈现某种形态。当用户询问“为什么这个分数高/低”“模型是怎么判断的”“这个异常记录怎么解读”时,使用本技能。它专注于解释与诊断,不负责作业生命周期管理(创建、启动、停止请使用 elasticsearch-anomaly-detection 技能)。

主要能力

  • 解释异常记录中的 record_score、initial_record_score、actual、typical、function 等字段。
  • 识别并解释重归一化(renormalization):当 initial_record_score 远大于 record_score 时,说明后续出现了更极端的异常,导致该记录分数被下调,这是健康的模型行为。
  • 区分缺失/下降异常与尖峰异常:low_count、count、low_mean 下 actual 远低于 typical 属于合法的缺失检测,应作为真实事件调查,而非误报。
  • 读取 anomaly_score_explanation 中的各因素(anomaly_length、single_bucket_impact、multi_bucket_impact、anomaly_characteristics_impact、high_variance_penalty、incomplete_bucket_penalty),仅引用记录中实际存在的因素。
  • 可选地量化整个作业的重归一化漂移:按时间排序记录,计算 score_drift = initial_record_score − record_score,筛选 |score_drift| ≥ 20 的记录。
  • 在用户追问原因时,补充模型边界(model_plot)、影响实体(influencer)和分类模式(category_definition)等上下文。

使用方式

本技能通过 elastic CLI 执行 Elasticsearch 操作,不直接调用 HTTP API。若未安装 elastic CLI,应告知用户其用途,不得猜测凭据或尝试其他变通方法。

典型流程:

  1. 判断是获取数据还是直接解释用户提供的记录。若记录已包含 record_score、initial_record_score、actual、typical、function,则直接解释,不重复调用 API。
  2. 调用集群时先验证连通性:GET /(对应 elastic es info)。失败则停止并报告连接错误。
  3. 解析作业 ID 并加载配置:GET /_ml/anomaly_detectors 列出候选;GET /_ml/anomaly_detectors/{job_id} 获取 analysis_config;GET /_ml/anomaly_detectors/{job_id}/_stats 获取状态与内存信息。
  4. 检索异常记录:POST /.ml-anomalies-*/_search,result_type: record,指定作业 ID、时间范围和可选的 record_score 过滤。
  5. 分类分数模式后再推测原因。
  6. 按需查询 model_plot、influencer、category_definition。

常用多步工作流包括:解释特定异常、分析分数为何低、分析分数为何高、重归一化漂移、哪些实体贡献最大、可视化模型边界、分类作业模式。

适用场景

  • 用户提供异常记录或作业配置,希望理解分数含义。
  • 用户询问某个异常分数为何异常高或低。
  • 用户怀疑高分是误报,需要判断是否为合法的缺失/下降检测。
  • 用户想找出贡献最大的实体或查看模型边界。
  • 用户想列出被大幅重归一化下调的记录。

限制

  • 自管理集群上的 ML 异常检测需要 Platinum 级等效许可;Serverless 项目已包含 ML。调用者需要 monitor_ml 权限读取作业配置和异常结果。
  • 在 Elastic Serverless 中,_ml/.../results/* REST 端点返回 HTTP 410,必须使用 POST /.ml-anomalies-*/_search 查询结果。
  • 不得编造分数、时间戳、实体值或解释因素;记录中缺失的字段应说明未返回,不得断言。
  • 当 high_variance_penalty 或 incomplete_bucket_penalty 为 false 或缺失时,不得将低分归因于它们。
  • 作业健康问题(如缺失文档、内存限制、datafeed 未运行)应使用 elasticsearch-anomaly-detection 技能。
  • 聚合、跨作业查询、桶级结果或自定义过滤等超出分数与时间范围的查询,需参考 references/explainer-reference.md。