文本作者:刘晓国,Elastic 公司社区布道师。新加坡国立大学硕士,西北工业大学硕士,曾就职于新加坡科技,康柏电脑,通用汽车,爱立信,诺基亚,Linaro,Ubuntu,Vantiq 等企业。
如果你是新用户,并想一站式快速体验 Elasticsearch 所有功能(免费提供机器学习、 X-pack 能力),开通 阿里云 Elasticsearch 1核2G,即可首月免费试用。
在以下情况下,数据中的实体或事件可以被认为是异常的:
他们的行为会随着时间而变化,相对于他们以前的行为,还是
它们的行为不同于指定群体中的其他实体。
在之前的文章:
Elastic:机器学习的实践 - single metric job
Elastic:机器学习的实践 - multi metric job
我们已经展示了如何检测上面的第一种情况。后一种检测异常值的方法称为 population 分析,也就是群体分析。机器学习分析可建立 “典型” 用户,机器或其他实体在指定时间段内所做的工作的概况,然后识别与其它群体相比表现异常的时候。
当总体上各个群体的行为大多是同质的,并且你想要识别异常值时,这种类型的分析最有用。通常,当群体成员内在地具有截然不同的行为时,群体分析是没有用的。但是,你可以将数据分成行为相似的组,并将其作为单独的作业运行。例如,你可以在 datafeed 中使用查询过滤器对数据进行细分,也可以使用 partition_field_name 拆分不同组的分析。
群体分析的伸缩性很好,并且消耗的资源比每个系列的单独分析都低。例如,你可以分析数十万或数百万个实体的群体。
下面,我们使用它在上一个例子 “Elastic:机器学习的实践 - multi metric job” 所使用的数据来做一个展示。如果你还没导入数据,请参阅那篇文章,把数据导入进去。
创建 population job
打开 Kibana:
点击 Manage jobs:
点击 Create job:
选中 eCommerce 索引:
选中 Population:
点击 Next:
这一次,我们选择 category.keyword 作为 population 字段,同时选择 High sum(taxful_total_price) 作为指标分析。点击 Next:
我们取一个好听的名字 population_job。点击 Next 按钮:
上面显示检查没有错误。点击 Next 按钮:
点击 Create job 按钮:
相比较之前的 single metric job 及 multi metric job,我们发现这次的机器学习计算时间非常短,也印证了它所消耗的资源不多。点击上面的 View results 按钮:
如上所示,我们可以发现一个异常,是针对 Men's Clothing 的这个 category。我们向下滚动:
点击那个红色标识的异常事件:
上面显示这个 Men's Clothing 类的商品和如下的其它类的商品比较:
存在异常,按照机器学习的计算(相比较其它类商品,在同一个 bucket span里),taxful_total_price 的值应该在 67.8,但是实际值在 2250。细心的分析师需要分析这个数据,是因为父亲节到了的缘故吗?还是因为最近在男装上投入了大量的广告所致?
好了,今天的文章先写到这里。请接下来继续关注我的机器学习的文章。
声明:本文版权归作者所有,未经许可不得擅自转载或引用。
【阿里云Elastic Stack】100%兼容开源ES,独有9大能力,提供免费 X-pack服务(单节点价值$6000)
相关活动
更多折扣活动,请访问阿里云 Elasticsearch 官网
阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费
阿里云 Logstash 2核4G首月免费
独家下载 |《开源与云Elasticsearch应用剖析》
下载白皮书:Elasticsearch 八大经典场景应用