Press "Enter" to skip to content

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:

 

 

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

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注