离群值(高级)

我们感动!为了改善客户体验,Collibra数据质量用户指南已转移到新万博移动客户端 新万博移动客户端Collibra文档中心 作为Collibra数据质量2新万博移动客户端022.11版本的一部分。为了确保平稳过渡, dq-docs.新万博移动客户端collibra.com 仍然可以访问,但DQ用户指南现在只在文档中心进行维护。
这是一个高级的选择加入功能

数值异常值

柯达硬币!2018年,柯达宣布自己为柯达币,并见证了其股价的急剧变化。Owl自动捕获这个事件,并提供了钻取项目的能力。

复杂的异常值变得简单

尽管Owl使用复杂的公式来识别数据集中正确的异常值,但它在显示异常值时使用简单的术语。如果你注意到下面的变化是逐渐发生的,因此如果你只比较平均值或之前的值,你不会理解这个价格变化的全部影响。与昨天相比,变化为0%,其移动/尾随平均值将会赶上。

动态历史选项

由于周末、假日、错误等原因,数据可能并不总是按时并按预期进入数据管道。为了帮助捕获异常值,尽管存在差距,有两个主要选项:
  • 1)延长回溯周期(例如,从5天延长到10天)
  • 2)使用下面的额外标志(fllbminrow新到2021.11)
国旗
描述
例子
fllbminrow
文件回看最小行数:确定上一次文件扫描需要算作文件回看的最小行数
-fllbminrow 1(计算在最小历史记录中有1行或更多行的DQ扫描)
- flbminrow 0(默认行为,行数无关)
dllb
日期回溯:决定学习的天数
-dllb 5(5天)

上限和下限界限

新万博移动客户端Collibra DQ自动检测并标记掉在预设之外的数据上界下界限制。如果检测到超出这些限制的数据,将生成一个警报,以通知出现异常值。设置这些限制可以让你更好地识别异常值。

分类异常值

分类异常值与数值异常值有很大不同,需要单独的技术来自动捕获有意义的异常。关于Owl的方法和测试的细节可以在下面找到,关于这个主题的3分钟阅读。
Owl将自动学习您的字符串和分类属性的正常行为,如STOCK,OPTION,FUTURE或州代码,如MD,NC,D.C.当一个奇怪的模式出现时(例如NYC而不是NY), Owl将其显示为分类异常值。
Owl能够检测分类异常值,无论是否考虑时间。如果没有提供时间维度,Owl将计算可用数据中类别值的分布,并确定属于最不常见百分位数的值(可配置)。
没有时间的分类异常值
如果提供了时间维度,Owl将首先在历史上下文中识别不常见的类别,然后在当前Owlcheck上下文中识别。只有历史上不常见或不存在的值,以及在当前运行中不常见的值才会被认为是异常值。
随时间的分类异常值

训练离群点检测模型

尽管Owl使用不同的技术来检测数值和分类异常值,但训练过程非常相似。
Owl至少需要可以用作训练数据集的历史数据。如果没有提供其他输入,Owl将计算每个选定列的正常范围,并在训练数据集中寻找数值和分类异常值,而不需要任何进一步的上下文。输出将基本上由位于每列正常范围之外的不常见值组成。
为了获得更有针对性的结果,Owl需要一个“键”列。该列将通过按键列对每列进行分组来提供上下文。定义一个好的键列可以提供更好的数据质量指标,而不仅仅是一些不常见的值。
另一个可以使离群值检测更加精确的输入是数据/时间列和回顾周期。这使得能够更精确地计算列的正常范围,并且在数值异常值的情况下,使Owl能够建立趋势。给定一个时间列和键列,Owl将不仅识别数值异常值,还将绘制尾随异常值的列值的历史趋势。
Owl还允许通过定义时间箱和处理间隔进一步细化时间维度。默认情况下,当给定一个时间列时,Owl将把数据分类为天,并以每天为间隔处理数据。但是,如果数据是高频率的,则日箱和日间隔的粒度可能太粗。在这种情况下,以分钟为单位将数据分组到箱子中,并以小时或分钟为间隔处理数据可能更有意义。同样的概念也适用于另一个方向。如果数据已经按月或年聚合,该怎么办?在这种情况下,将容器和间隔设置为按月或按年会更有意义。
有些数据可能以非常小或大的单位测量,或者包含大量噪声。在这种情况下,Owl允许用户调整每个列上的灵敏度级别和离群值检测的度量单位。单击高级选项卡进行这些调整。
一旦完成了给定运行的离群值检测,就该调整模型的评分了。Owl允许用户将任何异常值发现标记为合法,从而防止将来检测到该异常值或影响当前运行的分数。此外,还可以定义一个异常值发现对给定数据集的重要性。这可以通过设置在该数据集上的任何给定运行中,对于每个异常值发现应该扣除多少质量点来实现。它还可以通过点击屏幕最左侧的小齿轮图标来调整灵敏度和未来运行的度量单位。

Spark DataFrame示例

现实世界中的例子

假设你是爱荷华州商务部酒精饮料部门的数据经理。作为国务院开放数据计划的一部分,每月的 爱荷华州酒类销售数据 可供公众分析。(谢谢爱荷华州!)
爱荷华州的数据分析师给您发送电子邮件,内容是关于与地址2016年的2508号店。您可以快速地在数据仓库上运行SQL查询来查看发生了什么。
——假设Postgres DB
选择date_trunc“月”“日期”“date_month”地址“sales_count”
iowa_liquor_sales
在哪里“日期”> =“2016-01-01”而且“日期”<“2017-01-01”而且store_number“2508”
集团通过date_trunc“月”“日期”),地址
订单通过date_month地址
date_month
地址
sales_count
2016-01-01就是
西北约翰逊大道1843号
422
2016-02-01就是
西北约翰逊大道1843号
451
2016-03-01就是
西北约翰逊大道1843号
579
2016-04-01就是
西北约翰逊大道1843号
404
2016-05-01就是
新泽西州约翰逊大道1843号
625
2016-06-01就是
新泽西州约翰逊大道1843号
695
2016-07-01就是
新泽西州约翰逊大道1843号
457
2016-08-01就是
新泽西州约翰逊大道1843号
744
2016-09-01就是
新泽西州约翰逊大道1843号
681
2016-10-01就是
新泽西州约翰逊大道1843号
728
2016-11-01就是
新泽西州约翰逊大道1843号
1062
2016-12-01就是
新泽西州约翰逊大道1843号
992
因为store_number订酒的店家有唯一的编号吗地址相同存储的值会产生数据质量问题。但地址是可以采用多种形式的字符串值。对于存储#2508,报告的地址值从2016年5月开始从所有大写字母转变为行为。对于其他情况,可能是完全不同的行为更改,您必须逐个手动检查。对于超过2000个独特的存储、1900万行和8年的数据,您需要一种自动化的方法来检测有意义的分类异常值。
下面的命令显示了从2016年1月到2016年12月每月运行OwlDQ检查的示例。每个月的运行都会回顾3个月的数据,为您怀疑可能存在类似数据质量问题的分类列建立基线:store_name地址,城市
/ opt / owl / bin / owlcheck
#连接信息到数据
自由“猫头鹰/ opt / /司机/ postgres /”司机“org.postgresql.Driver”
- c," jdbc: postgresql: / / localhost: 5432 / postgres”
- u,“postgres”“p”“密码”
#指定数据集名称
- ds“iowa_liquor_sales_by_store_number_monthly”
#为最后一个过滤器指定日期过滤器,例如date >= '2016-12-01'和date < '2017-01-01'
理查德·道金斯“2016-12-01”-rdEnd“2017-01-01”
# SQL查询模板(${rd}和${rdEnd}匹配-rd和-rdEnd
qselect distinct on (date, store_number) date, store_number, store_name,地址,城市
从iowa_liquor_sales查询日期>= '$ {rd}'和日期< '$ {rdEnd}’”
#打开异常值
戴斯。莱纳姆:
#在store_number上分组(如果没有分组是可选的)
-dlkey“store_number”
#指定日期类型的列(可选,如果运行OwlCheck没有时间上下文)
直流“日期”
#指定运行异常值分析的列(如果没有指定,查询中的所有列都包含在分析中)
-dlinc“store_name、地址、城市”
#为每个OwlCheck指定3个月的回溯
-dllb3.
#每月运行OwlCheck
-tbin“月”
#“backrun”方便的方式运行12之前的每月猫头鹰检查
br12
结果
br 12option在2016年每个月都进行了12次月度OwlChecks。下图显示了数据集最新运行的OwlCheck Hoot页面iowa_liquor_sales_by_store_numbers_monthly.Hoot页面显示,OwlCheck在2016年12月唯一date x store_number的4.8k行中识别出24个异常值。
2016-12-01每月OwlCheck
由于激发我们运行OwlCheck的原始数据质量问题来自2016年5月,我们可以通过单击顶部的折线图导航到特定的运行日期2016-05-01。然后搜索商店#2508在关键列显示检测到的异常值地址.按[+]该行查看此检测值的上下文详细信息。
2016-05-01每月OwlCheck。显示了存储#2508的钻取异常值细节
我们可以验证OwlCheck在其他60个数据质量问题中确定了感兴趣的异常值。使用OwlCheck,您可以大规模地识别过去数据(使用backrun)、当前数据(使用简单的OwlCheck)和未来数据(使用计划作业)的问题。

*技术预览[TP]离群值校准

用例
当A)使用离群值和B)面临股票拆分或货币贬值等事件时,在Collibra DQ中校准离群值边界可能会有帮助,以避免在一段时间内出现非问题。新万博移动客户端
示例步骤#1:无需采取任何行动
在下面的视频中,Collibra DQ异新万博移动客户端常值被设置为高灵敏度。样本数据集中1月6日的USDEUR转化率可以被认为是合理的,用户可以1)以较低的灵敏度重新运行数据集或2)降低意外异常值的训练。
示例步骤2:用户理解的宏观事件,例如货币贬值或股票分割
当检查1月11日的异常值时,数据集描述了USDEUR转换飙升至3.14,在我们的假设示例中,这与一个可解释的宏观经济现象相吻合。因此,用户可能不希望在一段时间内触发异常值。
示例步骤#3:用户想要抑制异常值
一旦启用离群值校准,用户可以选择“抑制”周期的边界和持续时间。一旦为选定的日期重新运行DQ作业,异常值将不会触发异常/降低分数。