您的位置:首页 > 其它

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

2020-07-12 16:15 10 查看

在我之前的文章中:

          - 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 中简单地探索一下:

[code]GET _cat/indices

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

[code]GET _cat/indices/.ml*

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

[code]GET .ml-anomalies-shared/_search

显示的内容如下:

[code]  "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 里进行展示了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: