Elastic:机器学习异常的可视化呈现

在我之前的文章中:

          - Elastic:机器学习的实践 - single metric job

          - Elastic:机器学习的实践 - multi metric job

          - Elastic:机器学习的实践 - population job

我展示了如何使用 Elastic 的机器学习对异常的数据进行异常检测,比做相应的呈现。大家有没有觉得还是美中不足,那就是我们想在可视化中,比如在 dashboard 中进行展示是不能做到的。在今天的练习中,我将介绍如何使用一些技巧来对机器学习来对异常进行展示。

在今天的展示中,我们将使用   Elastic:机器学习的实践 - single metric job 文章中的例子为例来做。如果你还没做那个练习的话,请先做那个练习。最终,我们想创建一个像如下的一个视图:

我们将使用 TSVB 可视化工具来可视化我们的机器学习异常显示。

 

简单探索

机器学习功能可根据你在工作中定义的检测器来分析输入数据流,对其行为建模并执行分析。 当事件发生在模型之外时,该事件将被识别为异常。每个异常的结果记录存储在 Elasticsearch 中的 .ml-anomalies- * 索引中。 默认情况下,存储机器学习结果的索引的名称标记为 shared,它对应于 .ml-anomalies-shared 索引。

在我们做可视化之前,我们现在 Kibana 中简单地探索一下:

GET _cat/indices

请注意在上面的索引中,以点 . 为开头的索引都是系统索引。是集群创建的索引。在这里,我们看不到任何以 .ml 为开头的索引。为了能得到以 .ml 开头的系统索引,我们需要做如下的查询:

GET _cat/indices/.ml*

从上面,我们可以看出来一些和 ML 相关的索引。其中 .ml-anomalies-shared 就是这样的一个索引,其中含有我们机器学习作业里的异常数据。我们可以通过 TSVB 的方式来对它进行展示。

GET .ml-anomalies-shared/_search

显示的内容如下:

  "hits" : {
    "total" : {
      "value" : 10000,
      "relation" : "gte"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : ".ml-anomalies-shared",
        "_type" : "_doc",
        "_id" : "single_metric_job_model_plot_1549258200000_900_0_0_0",
        "_score" : 1.0,
        "_source" : {
          "job_id" : "single_metric_job",
          "result_type" : "model_plot",
          "bucket_span" : 900,
          "detector_index" : 0,
          "timestamp" : 1549258200000,
          "model_feature" : "'bucket sum by person'",
          "model_lower" : 0.0,
          "model_upper" : 44647.38531159675,
          "model_median" : 2134.5144506870092,
          "actual" : 0.0
        }
      },
      {
        "_index" : ".ml-anomalies-shared",
        "_type" : "_doc",
        "_id" : "single_metric_job_bucket_1549258200000_900",
        "_score" : 1.0,
        "_source" : {
          "job_id" : "single_metric_job",
          "timestamp" : 1549258200000,
          "anomaly_score" : 0.0,
          "bucket_span" : 900,
          "initial_anomaly_score" : 0.0,
          "event_count" : 0,
          "is_interim" : false,
          "bucket_influencers" : [ ],
          "processing_time_ms" : 0,
          "result_type" : "bucket"
        }
      },

   ...

 

可视化异常数据

现在我们想通过 TVSB 来把日志的数据和 ML 作业的异常数据一起展示。打开 Kibana:

为 .ml_anomalies_shared 创建 index pattern

点击 Create index pattern:

点击 Next step:

点击 Create index pattern:

这样我们就完成了 .ml-anomalies-shared 索引的 index pattern 创建。

创建 TVSB 可视化

在上面选择 cf_rfem_hist_price* 作为 index pattern。同时我们选择 1d 作为 interval。点击 Data:

这样,我们就完成了对交易数据的可视化。接下来,我们来在这个可视化上面添加异常数据的显示。那么,我们该怎么做呢?

答案是:运用 Annotations 来叠加这个异常数据。

点击 Annotations:

点击 Add data source:

我们对它进行上面的配置。最后点击 Data:

当我们把鼠标放到异常出现的红色的标志那里就可以看到 Anomaly score。这个是我们刚才在 Annotation 里进行设置的。

现在,我们已经把数据进行了可视化。我们可以点击 Save 链接来进行保存:

点击上面的 Save 按钮。我们就以后可以在 Dashboard 里进行展示了。

展开阅读全文
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值