Elastic:如何使用 Elastic 机器学习来侦测异常

Posted Elastic 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elastic:如何使用 Elastic 机器学习来侦测异常相关的知识,希望对你有一定的参考价值。

这篇文章是上一篇文章 “Elastic:如何使用 Elastic 机器学习来侦测异常(一)” 的续篇。在这篇文章中,我将展示如何创建一个 multi-metric 的任务。我将使用另外一个 Sample dataset。

添加 eCommerce 数据集

打开 Kibana:

 

这样我们就在 Elasticsearch 中创建了一个叫做  kibana_sample_data_ecommerce 的索引。

我们可以在 Discover 中查看这个索引的所有字段:

创建 Multi-metric 任务

接下来,我们想通过机器学习的方法来了解每个类别 category 的收入的异常。

 

 

我选择 Multi-metric 任务的原因是我想有多个指标进行分析。我们可以把数据按照 category 来进行分类,使用机器学习的方法针对每个分类同时进行异常检测。

我们想针对 taxful_total_price 的 upper bound 进行异常分析。通过这种分析,我们可以看出来哪个 category 的产品是有异常的,也即远超出平常的行为。我们可以进而分析是不是和最近的促销,或者是因为有儿童节有关系等等。

 

  

我们等待机器学习任务的完成:

默认打开的就是一个叫做 Anomaly Explorer 的界面。相比较 Single-metric 而言,这个界面有所不同。它有更多的展现。最上面的 overall 给出的是整体的异常。我们可以看出来在 2021-12-06 及 2021-12-16 两处有异常,表明这两天的销售整体来说非常好。而下面像是热力图的网格每一行表明了每一个  category 的异常情况。相比较 Single-metric 来说,我们可以看到有多个侦测器帮我们分析异常。

我们向下滚动:

我们可以看到每个异常的详情。

我们可以点击上面红色的块,这样可以很快地定位到该异常的情况:

 

从上面的图中我们可以看出来 men's clothing 这个 category 在2021-12-06那天有一个非常大的 jump,它表明当天的销售非常火爆。这个值得我们去研究一下那天到底是发生了什么事才有这么高的销售额。我们甚至想在这个视图中很方便地连接到原始的数据。我们先注意一下如下的界面:

我们可以在右边的 Actions 中添加一个我们喜欢的功能去查看原始的数据。这样我们创建一个 workflow。那么我们该怎么做呢?

我们首先回到 Anomaly Detection 界面:

 

 

这样我们就创建了一个叫做 raw data 的设置。我们再次回到之前我提到的界面:

 

这次我们可以看到一个新增加的叫做 raw data 的选项。点击这个选项:

  

我们甚至可以查看在这一天到底是卖了一些啥东西,价钱如何:

 从上面的 Discover 中,我们可以看到在 2021-12-06 有一个订单的价值是2,250美金。这个销售额比平时的值要大很多。 

按照同样的方法,我们也可以直接链接到 Dashboard。我们来创建另外一个 Custom URLs:

 

按照同样的步骤,我们切换到 Dashboard:

 

从上面的步骤中,我们可以看出来,我们很容易创建一个从 Machine Learning 界面到 Discover 及 Kibana 的 workflow。这个在实际的操作中,非常便于我们分析数据。

创建 Population 任务

 在上面的 Discover 中,我们发现这个 eCommerce 的示例数据集非常适合分析每个个体的行为。在这个数据集中,每个个体就是按照每个客户的姓名来进行划分的。在我之前的一篇文章中,我们看到的是这样的图:

我们发现海豹是多么地和其它企鹅不一样。同样地,针对这个 eCommerce 数据集,我们可以针对每个客户来进行分析。针对我们喜欢的 KPI 来分析客户的异常,比如某一个客户为啥比别人买的多,是因为他/她最近拿到奖金,或者是炒股票发大财了。

我们打开 Kibana:

 

 

 

 

 

在上面的图中,它列出来一些异常的顾客。从上面的图中我们可以看出来 Wagdi Shaw 在2021-12-06日有异常。 这个是按照 customer_full_name 来进行划分的。我们也可以依据我们刚才添加的 influencer 来进行划分:

 

从上面,我们可以看出来那些国家的有异常。 回到我们之前的 view:

我们可以查看到这个异常的详细情况。 

以上是关于Elastic:如何使用 Elastic 机器学习来侦测异常的主要内容,如果未能解决你的问题,请参考以下文章

Elastic:如何使用 Elastic 机器学习来侦测异常

Elastic:如何使用 Elastic 机器学习来侦测异常

Elasticsearch:使用 Elastic 机器学习进行 data frame 分析

Elastic:使用 Elastic Stack 进行异常值检测 - airbnb 数据分析

Elasticsearch:Elastic Maps 现在支持机器学习异常层

Elastic Enterprise Search 8.5:用于直观搜索体验的机器学习