智能预警:如何自动化识别异常数据?了解下产品化设计

4 评论 10185 浏览 115 收藏 11 分钟

编辑导语:产品设计最难的地方不在于“设计”,而在于“决策”。因为决策的依据来源于“场景——用户——需求”,但对业务的认知局限会导致其信息理解上的偏差。本篇文章带你了解异常判定下的产品设计。

“今天和朋友们聊聊数据分析、数据产品设计中经常面临的场景:异常判定,并看看如何进行预警相关的产品设计。”

关于BI系统,之前分享过阿里的Quick BI,微信公众平台的看板设计,以及数据图表相关设计。今天和大家聊聊常见的场景:异常数据的识别,以及预警相关功能的产品化设计。

一、场景概述

我们在做数据分析的时候,有一个重要的环节,就是发现目前运行数据的异常,然后基于异常寻找原因、提出意见和建议。

如果是人工判断异常数据的话,往往通过恰当的可视化图形就能很好地发现,比如下面数据走势的异常:

智能预警:如何自动化识别异常数据?了解下产品化设计

或者下面的数据关系的异常,通过回归曲线很容易发现右下角的异常点。

智能预警:如何自动化识别异常数据?了解下产品化设计

但是对于机器而言,想要识别异常数据,就比较麻烦了。这就是咱们今天将重点展开讨论的内容:如何通过系统化的规则或者算法,识别异常数据。

由于数据的类型多种多样,我们针对不同数据类型分别展开。

二、时序异常数据识别

时间序列相关的异常判定,应该是我们最常见的异常识别情景。尤其是在数据产品中,我们关注的大部分内容都是和时间序列有关系。

智能预警:如何自动化识别异常数据?了解下产品化设计

大家可以仔细回想一下你平时看到的数据监控看板等等,无论形态如何,基本都涉及了时间维度。但凡涉及时间维度,那么异常的识别都是基于时间来识别的,且识别的是最新一段时间是否异常(用最新数据鉴定历史数据异常并没有任何业务意义)。

了解了上面的内容,下面我们聊聊都有哪些时序异常数据的识别方法。

1. 基于固定数值

这个比较好理解,就是直接按照固定的数值进行异常判定。逻辑简单、容易实现与理解。

智能预警:如何自动化识别异常数据?了解下产品化设计

比如上图中,我们设定固定数值是[3800-5600],在这个区间范围内的数据,我们认为是正常数据;低于或者高于该区间的数据,认为是异常数据。

固定数值判断异常的方法,核心在于如何取合理区间的上下限。如果有明确的业务红线,可以将业务红线设为上下限;如果没有业务限制,可以使用分位数进行取值,比如历史5%-95%分位认为是正常的。

对于一个发展比较稳定业务而言,设定固定的绝对数值是没啥问题的。但是对于一个快速发展期的业务,很明显,固定数值并不适用。

智能预警:如何自动化识别异常数据?了解下产品化设计

随着时间的变化,合理的区间也相应发生了变化。这种情况不适合用固定数值进行异常判定,而是需要相对值。

2. 基于相对数值

上面讲到了固定数值方法的缺点。因此,我们考虑相对数值的方法。提到相对值,主要就是同比和环比(关于同比和环比可参考历史文章)。

智能预警:如何自动化识别异常数据?了解下产品化设计

由于同比通常的定义指的是与去年同期比较,因此针对单天,我们往往是与上周进行对比。如此,上周的数值就是基准值,再增加一个波动区间范围即可。比如上周二的新增用户数200,波动范围设定[-10%,10%],那么本周二如果新增用户数在180-220则认为是正常的;超出该范围则判定异常。

该方法也有明显的缺点。如果上周二就是一个异常值(假设数值异常低),而本周二数据是恢复正常了。那么根据相对值得判定逻辑,很容易把本周二判定为「异常高」。这是点对点对比的缺点。

3. 基于统计分布

如何能避免单个异常点对后续判断的影响呢?这里就可以基于统计分布进行规则建立。

智能预警:如何自动化识别异常数据?了解下产品化设计

这里我们可以采取 均值±标准差×3的方式。这里的均值可以采取当天之前一段时间的均值,比如90天、30天;标准差也选取相应时间段的标准差;倍数可以基于情况设置。

由于均值是一段时间内的均值,不是某一个具体点。因此通过这种方式,能消除异常数据对于后续的异常判定。

4. 基于时序模型

最后,还可以基于时间序列模型进行异常判定。

在统计模型中,有一类模型是专门针对时间序列进行建模的,用以预测未来一段时间的数据走势。我们可以建立相应的ARMA模型等,基于实际值和预测值的差异,判定是否异常。

智能预警:如何自动化识别异常数据?了解下产品化设计

关于时间序列模型,我们这里就不展开了,后续会专门针对时间序列统计模型详细分享相关基础知识。

三、预警功能产品化设计

最后,我们一起看看预警功能的产品设计,这里主要以神策为例,看看预警功能的设计思路。

1. 预警设置

神策将预警功能和事件分析进行了结合,在做事件分析相关功能时,可以直接添加「预警」,进行预警配置。

智能预警:如何自动化识别异常数据?了解下产品化设计

下面是点击「预警」后的配置界面:

智能预警:如何自动化识别异常数据?了解下产品化设计

配置基本信息中包括了规则名称、监控指标、维度等;预警设置中包括监控时间粒度、监控时间、预警方式、触发规则、通知方式等。

2. 预警触发规则

预警配置中,最核心的一步就是进行预警规则的设置了。神策支持了两种预警方式:智能预警和自定义预警。

智能预警:如何自动化识别异常数据?了解下产品化设计

这里的智能预警并未明示具体的逻辑,我猜主要就是基于统计分布和时序模型进行的所谓智能预警。而自定义预警主要包括了对比特定值(即固定值)以及历史某期(即相对值)进行预警规则设置。

当然,自定义预警的阈值是用户自行填写的,没有给出提示。

3. 预警通知

预警的通知配置,也是整个预警功能中必不可少的一部分。这里主要支持三种方式:系统通知、企业群通知、邮件通知。

智能预警:如何自动化识别异常数据?了解下产品化设计

关于时序预警相关的方法,以及产品化的介绍,就分享这些。这里强调一点,虽然数据看板的时序数据占了大多数,但是仍然有非时序的数据呈现。关于非时序的异常数据该如何鉴定异常呢?这个我们后面找时间再详细分享。

另外,后面有机会聊聊,BI系统如何在异常判断的基础上,进行智能化分析。

#专栏作家#

NK冬至,公众号:首席数据科学家,人人都是产品经理专栏作家。在金融领域、电商领域有丰富数据及产品经验。擅长数据分析、数据产品等相关内容。

本文原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自Unsplash,基于CC0协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 干货

    来自北京 回复
  2. 干货满满,感谢大佬!

    来自广东 回复
  3. 不错

    来自上海 回复
  4. 来自北京 回复