一种基于多源异构数据源的数据质量检测方法及装置转让专利

申请号 : CN202210875059.X

文献号 : CN115098740B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘晓军郭建志钱明凤陈塨琳许仕达

申请人 : 广州市海捷计算机科技有限公司

摘要 :

本申请实施例提供了一种基于多源异构数据源的数据质量检测方法、装置、电子设备及存储介质,通过对多源异构数据进行字段识别,区分包含分组变量、时间日期变量以及不包含前述两种变量的数据指标,根据不同的数据类型自动选择合适的异常值检测算法,使得对多源异构数据源的数据治理无需如传统的数据治理方案一般严重依赖业务规则或者专家知识库,且对于异常值检验颗粒度更加精细,同时满足了复杂业务场景中的多源异构数据质量的检测要求。

权利要求 :

1.一种基于多源异构数据源的数据质量检测方法,其特征在于,所述方法包括如下步骤:获取待检测数据集;

指定所述待检测数据集的待检测字段并识别所述待检测字段的数据指标;

如果所述待检测字段的数据指标为数值型指标,判断所述待检测字段是否被预指定分组变量及日期时间变量;

若该数据指标没有被预指定分组变量及日期时间变量,则执行第一逻辑流程,所述第一逻辑流程为判断所述待检测字段是否满足正态分布要求,若满足则通过标准差异常值检测技术进行异常值检测,若不满足,通过四分位数异常值检测技术进行异常值检测;

若该数据指标被预指定分组变量,则通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量后执行所述第一逻辑流程;

若该数据指标被预指定日期时间变量,判断所述数据指标是否能够构建ARIMA时间序列模型;若不能,则执行所述第一逻辑流程;若能,则使用时间序列模型对所述数据指标进行拟合,以观测值超出拟合值置信区间为阈值上下限来判断该观测值是否属于异常值进行异常值检测;

输出所述待检测数据集的异常值检测结果。

2.根据权利要求1所述的一种基于多源异构数据源的数据质量检测方法,其特征在于,识别所述待检测字段的数据指标后,还包括如下方法步骤:如果所述待检测字段的数据指标为类别型指标,判断所述数据指标是否为2个或2个以上的类别型指标;

如果所述数据指标存在2个或2个以上的类别型指标,则通过卡方检验方法判断所述数据指标间是否存在相关性,若存在相关性,则通过DBScan模型进行异常值检测,若不存在相关性,则结束异常值检测;

如果所述数据指标不存在2个或2个以上的类别型指标,则结束异常值检测。

3.根据权利要求1所述的一种基于多源异构数据源的数据质量检测方法,其特征在于,通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量,具体包括如下方法步骤:执行第二逻辑流程;

所述第二逻辑流程为分别判断基于不同分组变量的所述数据指标是否同时满足方差齐性及正态性检验;若同时满足方差齐性及正态性检验,则在不同分组变量下通过方差分析的方法剔除对所述数据指标不具有显著区分能力的分组变量;若不同时满足方差齐性及正态性检验,则在不同分组变量下通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量。

4.根据权利要求3所述的一种基于多源异构数据源的数据质量检测方法,其特征在于,执行第二逻辑流程后,还包括如下方法步骤:判断剔除对所述数据指标不具有显著区分能力的分组变量后仍保留的分组变量个数是否为1个以上;

若分组变量个数不超过1个,则执行所述第一逻辑流程;

若分组变量个数为2个及以上,则通过对所述分组变量和所述数据指标进行排列组合,获取重组待检测数据指标后,重复执行所述第二逻辑流程。

5.根据权利要求1所述的一种基于多源异构数据源的数据质量检测方法,其特征在于,判断所述数据指标是否能够构建ARIMA时间序列模型,具体包括如下方法步骤:判断所述数据指标是否同时通过平稳性及白噪声检验;

若通过检验,则确认所述时间日期变量数据能够构建ARIMA时间序列模型;

若不能通过检验,则确认所述时间日期变量数据不能够构建ARIMA时间序列模型。

6.根据权利要求1所述的一种基于多源异构数据源的数据质量检测方法,其特征在于,获取待检测数据集后,还包括如下方法步骤:对所述待检测数据集中的一个或多个字段进行数据质量扫描和清洗;

获取扫描和清洗后的数据集并确认该数据集为待检测数据集。

7.根据权利要求1所述的一种基于多源异构数据源的数据质量检测方法,其特征在于:若所述待检测字段为类别型字段,则指定所述待检测数据集的待检测字段时,选择2个以上类别型的字段。

8.一种基于多源异构数据源的数据质量检测装置,其特征在于,包括:数据获取模块,用于获取待检测数据集;

待检测字段指定模块,用于指定所述待检测数据集的待检测字段并识别所述待检测字段的数据指标;

待检测字段变量判断模块,如果所述待检测字段的数据指标为数值型指标,用于判断所述待检测字段是否被预指定分组变量及日期时间变量;

第一逻辑流程执行模块,若该数据指标没有被预指定分组变量及日期时间变量,用于执行第一逻辑流程,所述第一逻辑流程为判断所述待检测字段是否满足正态分布要求,若满足则通过标准差异常值检测技术进行异常值检测,若不满足,通过四分位数异常值检测技术进行异常值检测;

分组变量检测模块,若该数据指标被预指定分组变量,用于通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量后执行所述第一逻辑流程;

日期时间变量检测模块,若该数据指标被预指定日期时间变量,用于判断所述数据指标是否能够构建ARIMA时间序列模型;若不能,则执行所述第一逻辑流程;若能,则使用时间序列模型对所述数据指标进行拟合,以观测值超出拟合值置信区间为阈值上下限来判断该观测值是否属于异常值进行异常值检测;

检测结果输出模块,用于输出所述待检测数据集的异常值检测结果。

9.一种电子设备,其特征在于,包括:

至少一个存储器以及至少一个处理器;

所述存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至7任一项所述的一种基于多源异构数据源的数据质量检测方法的步骤。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种基于多源异构数据源的数据质量检测方法的步骤。

说明书 :

一种基于多源异构数据源的数据质量检测方法及装置

技术领域

[0001] 本申请实施例涉及数据处理领域,特别是涉及一种基于多源异构数据源的数据质量检测方法、装置、电子设备及存储介质。

背景技术

[0002] 传统的数据治理方案一般是根据业务规则来设计数据质量检测的规则,或者依赖于业务专家构建业务知识库,并在此基础上形成数据标准。以数据集为监控对象,通过质量工具,对输入的数据源进行数据质量的定期检测,以此发现数据质量问题。
[0003] 但传统的数据治理方案严重依赖业务规则或者专家知识库,无法检测出业务规则或者专家知识库以外的数据质量问题,且检验颗粒度往往较粗。而融合了机器学习的异常值检测方法可解决这一问题,但单一的异常值检测方法的应用又无法满足实际复杂业务场景中的多源异构数据质量的检测要求。

发明内容

[0004] 本申请实施例提供了一种基于多源异构数据源的数据质量检测方法、装置、电子设备及存储介质,通过对多源异构数据进行字段识别,并根据不同的数据类型自动选择合适的异常值检测算法,使得对多源异构数据源的数据治理的检验颗粒度更加精细,同时满足了复杂业务场景中的多源异构数据质量的检测要求。
[0005] 第一方面,本发明提供了一种基于多源异构数据源的数据质量检测方法,包括如下步骤:
[0006] 获取待检测数据集;
[0007] 指定所述待检测数据集的待检测字段并识别所述待检测字段的数据指标;
[0008] 如果所述待检测字段的数据指标为数值型指标,判断所述待检测字段是否被预指定分组变量及日期时间变量;
[0009] 若该数据指标没有被预指定分组变量及日期时间变量,则执行第一逻辑流程,所述第一逻辑流程为判断所述待检测字段是否满足正态分布要求,若满足则通过标准差异常值检测技术进行异常值检测,若不满足,通过四分位数异常值检测技术进行异常值检测;
[0010] 若该数据指标被预指定分组变量,则通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量后执行所述第一逻辑流程;
[0011] 若该数据指标被预指定日期时间变量,判断所述数据指标是否能够构建ARIMA时间序列模型;若不能,则执行所述第一逻辑流程;若能,则使用时间序列模型对所述数据指标进行拟合,以观测值超出拟合值置信区间为阈值上下限来判断该观测值是否属于异常值进行异常值检测;
[0012] 输出所述待检测数据集的异常值检测结果。
[0013] 进一步地,识别所述待检测字段的数据指标后,还包括如下方法步骤:
[0014] 如果所述待检测字段的数据指标为类别型指标,判断所述数据指标是否为2个或2个以上的类别型指标;
[0015] 如果所述数据指标存在2个或2个以上的类别型指标,则通过卡方检验方法判断所述数据指标间是否存在相关性,若存在相关性,则通过DBScan模型进行异常值检测,若不存在相关性,则结束异常值检测;
[0016] 如果所述数据指标不存在2个或2个以上的类别型指标,则结束异常值检测。
[0017] 进一步地,通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量,具体包括如下方法步骤:
[0018] 执行第二逻辑流程;
[0019] 所述第二逻辑流程为分别判断基于不同分组变量的所述数据指标是否同时满足方差齐性及正态性检验;若同时满足方差齐性及正态性检验,则在不同分组变量下通过方差分析的方法剔除对所述数据指标不具有显著区分能力的分组变量;若不同时满足方差齐性及正态性检验,则在不同分组变量下通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量。
[0020] 进一步地,执行第二逻辑流程后,还包括如下方法步骤:
[0021] 判断剔除对所述数据指标不具有显著区分能力的分组变量后仍保留的分组变量个数是否为1个以上;
[0022] 若分组变量个数不超过1个,则执行所述第一逻辑流程;
[0023] 若分组变量个数为2个及以上,则通过对所述分组变量和所述数据指标进行排列组合,获取重组待检测数据指标后,重复执行所述第二逻辑流程。
[0024] 进一步地,判断所述数据指标是否能够构建ARIMA时间序列模型,具体包括如下方法步骤:
[0025] 判断所述数据指标是否同时通过平稳性及白噪声检验;
[0026] 若通过检验,则确认所述时间日期变量数据能够构建ARIMA时间序列模型;
[0027] 若不能通过检验,则确认所述时间日期变量数据不能够构建ARIMA时间序列模型。
[0028] 进一步地,获取待检测数据集后,还包括如下方法步骤:
[0029] 对所述待检测数据集中的一个或多个字段进行数据质量扫描和清洗;
[0030] 获取扫描和清洗后的数据集并确认该数据集为待检测数据集。
[0031] 进一步地,若所述待检测字段为类别型字段,则指定所述待检测数据集的待检测字段时,选择2个以上类别型的字段。
[0032] 第二方面,本发明还提供了一种基于多源异构数据源的数据质量检测装置,其特征在于,包括:
[0033] 数据获取模块,用于获取待检测数据集;
[0034] 待检测字段指定模块,用于指定所述待检测数据集的待检测字段并识别所述待检测字段的数据指标;
[0035] 待检测字段变量判断模块,如果所述待检测字段的数据指标为数值型指标,用于判断所述待检测字段是否被预指定分组变量及日期时间变量;
[0036] 第一逻辑流程执行模块,若该数据指标没有被预指定分组变量及日期时间变量,用于执行第一逻辑流程,所述第一逻辑流程为判断所述待检测字段是否满足正态分布要求,若满足则通过标准差异常值检测技术进行异常值检测,若不满足,通过四分位数异常值检测技术进行异常值检测;
[0037] 分组变量检测模块,若该数据指标被预指定分组变量,用于通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量后执行所述第一逻辑流程;
[0038] 日期时间变量检测模块,若该数据指标被预指定日期时间变量,用于判断所述数据指标是否能够构建ARIMA时间序列模型;若不能,则执行所述第一逻辑流程;若能,则使用时间序列模型对所述数据指标进行拟合,以观测值超出拟合值置信区间为阈值上下限来判断该观测值是否属于异常值进行异常值检测;
[0039] 检测结果输出模块,用于输出所述待检测数据集的异常值检测结果。
[0040] 第三方面,本申请实施例提供一种电子设备,包括:
[0041] 至少一个存储器以及至少一个处理器;
[0042] 所述存储器,用于存储一个或多个程序;
[0043] 当所述一个或多个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如第一方面所述的一种基于多源异构数据源的数据质量检测方法的步骤。
[0044] 第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的一种基于多源异构数据源的数据质量检测方法的步骤。
[0045] 本申请实施例通过对多源异构数据进行字段识别,并根据不同的数据类型自动选择合适的异常值检测算法,使得对多源异构数据源的数据治理无需如传统的数据治理方案一般严重依赖业务规则或者专家知识库,且对于异常值检验颗粒度更加精细,同时满足了复杂业务场景中的多源异构数据质量的检测要求。
[0046] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

附图说明

[0047] 图1为在一个示例性的实施例中提供的一种基于多源异构数据源的数据质量检测方法的步骤流程图;
[0048] 图2为在一个示例性的实施例中提供的一种基于多源异构数据源的数据质量检测方法的标准差异常值检测技术的原理示意图;
[0049] 图3为在一个示例性的实施例中提供的一种基于多源异构数据源的数据质量检测方法的四分位数异常值检测技术的原理示意图;
[0050] 图4为在一个示例性的实施例中提供的一种基于多源异构数据源的数据质量检测方法的时间序列异常值检测技术的原理示意图;
[0051] 图5为在一个示例性的实施例中提供的一种基于多源异构数据源的数据质量检测方法的基于DBScan的异常值检测技术的原理示意图;
[0052] 图6为在一个示例性的实施例中提供的一种基于多源异构数据源的数据质量检测装置的模块示意图;
[0053] 图7为在一个示例性的实施例中提供的一种电子设备的示意图。

具体实施方式

[0054] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
[0055] 应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
[0056] 在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0057] 下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
[0058] 此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A 和/或B,可以表示:单独存在A,同时存在A 和B,单独存在B 这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0059] 多源异构数据一般指一个数据整体由多个不同来源的成分而构成,既有混合型数据(包括结构化和非结构化)又有离散性数据(数据分布在不同的系统或平台。其中,多个数据来源,可以是来自 Mysql、Oracle这些数据库中的文件;也可以是一些非结构化的 HDFS、ES等非结构化数据库中的文件;还可以是通过 WEB 页面传递过来的 RESTful、Josn 字符串。异构则主要指数据结构上的差异性。数据结构层主要把数据结构划分为三大类,其中包括结构化数据,以银行系统数据为代表,通常以人或者机构的ID为锚点来聚合不同的信息,如名称、职业、收入等,后续会演变出基础库、主题库、专题库等一系列组织形式;非结构化数据,以视频、图像、语音和文本为代表,后续大多需要经过分析处理变成结构化数据才能被使用;和时空数据,以地理信息、物联网、轨迹数据为代表。互联网作为一个典型的异构网络,随着大数据与人工智能技术的应用普及,海量多源异构数据急剧增加,也正因为如此,基于互联网的大数据治理愈加的困难。
[0060] 所谓数据治理,即,以数据集为监控对象,通过质量检测工具,根据预设业务规则或数据标准,对输入的数据源进行数据质量的定期检测,以此发现数据质量问题。而对于数据质量的检测问题,也可以定义为是机器学习中常见的异常值识别问题。在统计学中,异常值是指不属于某一特定群体的数据点。它是一个与其他数值大不相同的异常观测值,与良好构成的数据组相背离。对于定性变量来说,异常值是出现次数非常少的类别;对于定量变量来说,异常值是明显大于或小于其他观测值的数值。对于多源异构数据的数据集来说,由于数据来源以及数据结构类型复杂,对于不同类型的数据的异常值检测需对应其检测精度最高的异常值检测方法。
[0061] 基于上述构思及背景技术,如图1所示,本申请实施例提供了一种基于多源异构数据源的数据质量检测方法,具体包括如下方法步骤:
[0062] S201:获取待检测数据集。
[0063] 通过数据库相关技术,以数据集为单位整理待检测的数据集。在本申请实施例中,主要是指使用Mysql将存储在数据库内的多张表根据关联逻辑进行关联,如通过表的横向连接(join),纵向合并(merge)等方法,从而得到一张汇总的数据表,即所述数据集,供检测使用。
[0064] 数据集,又称为资料集、数据集合或资料集合,是一种由数据所组成的集合,通常以表格形式出现,是机器学习的基础。其中,在数据库领域中,表格的列被称为字段,一个数据集中会包含多个字段,字段代表了数据集中所有行的共有属性。
[0065] S202:指定所述待检测数据集的待检测字段并识别所述待检测字段的数据指标。
[0066] 根据实际需求人工指定数据集中的待检测字段,待检测字段中的数据由于是从存储在数据仓库里面读取的,因此其类型固定,通过脚本预先编写好的逻辑来判断其数据指标类型,具体的数据指标类型包括数值型指标和类别型指标。在本申请实施例中,若待检测字段具有分组属性或者日期时间属性,则必须同时选择对应的分组字段或者日期时间戳字段。
[0067] S203:如果所述待检测字段的数据指标为数值型指标,判断所述待检测字段是否被预指定分组变量及日期时间变量。
[0068] S204:若该数据指标没有被预指定分组变量及日期时间变量,则执行第一逻辑流程,所述第一逻辑流程为判断所述待检测字段是否满足正态分布要求,若满足则通过标准差异常值检测技术进行异常值检测,若不满足,通过四分位数异常值检测技术进行异常值检测。
[0069] 对于标准差异常值检测技术来说,如图2所示,在统计学中,如果一个数据分布近似正态分布,那么大约68%的数据值在平均值的前后一个标准差范围内,大约95%的数据值在平均值的前后两个标准差范围内,大约99.7%的数据值在前后三(参数k)个标准差的范围内。在本申请实施例中,对于该技术中的参数k是通过结合待检测数据的业务场景来确定的,以保证模型能够准确地检测出异常值。具体逻辑为:首先将k值设定为[3,4,5,6];再分别统计在上述k值下,所检测出异常值的比例;最终结合业务经验上所建议的异常值比例来确定最终的k值。
[0070] 对于四分位数异常值检测技术来说,如图3所示,异常值被定义为低于(Q1‑K*IQR)或低于箱线图下须触线或高于(Q3+K*IQR)或高于箱线图上须触线的观测值。在本申请实施例中,对于该技术中的参数k也是根据实际待检测的数据的分布及进行挑选,以确保模型能够准确地检测出异常值,具体逻辑为:首先将k值设定为[3,4,5,6];再分别统计在上述k值下,所检测出异常值的比例;最终结合业务经验上所建议的异常值比例来确定最终的k值。
[0071] S205:若该数据指标被预指定分组变量,则通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量后执行所述第一逻辑流程。
[0072] 克鲁斯卡尔‑沃利斯检验(Kruskal‑Wallis test)亦称“K‑W检验”、“H检验”等,是用来检验两个以上样本是否来自同一个概率分布的一种非参数方法。对于本申请所述的待检测数据集而言,通过使用Kruskal‑Wallis检验来判断被预指定的分组变量对待检测指标是否具有显著区分能力,剔除对所述数据指标不具有显著区分能力的分组变量,仅对具备显著区分能力的分组变量进行检测,检测过程仍执行所述第一逻辑流程。
[0073] S206:若该数据指标被预指定日期时间变量,判断所述数据指标是否能够构建ARIMA时间序列模型;若不能,则执行所述第一逻辑流程;若能,则使用时间序列模型对所述数据指标进行拟合,以观测值超出拟合值置信区间为阈值上下限来判断该观测值是否属于异常值进行异常值检测。
[0074] 当指定日期时间变量时,说明待检测的数据指标为时间序列数据,时间序列数据是指按照固定时间频率所采集的观测值,数据之间具有一定的自相关性,因此,只要该数据指标满足构建ARIMA时间序列模型的条件,则使用时间序列模型对数据进行拟合,以观测值超出拟合值置信区间为阈值上下限来判断该观测值是否属于异常值;不满足条件,则仍执行所述第一逻辑流程完成异常值的检测。如图4所示,图4为基于ARIMA时间序列模型的异常值检测,离群值或异常值的定义为那些实际观测值超过残差的置信带的点。在本申请实施例中,对于该技术中的置信带的确定是根据实际待检测的数据的具体分布进行挑选,以确保模型能够准确地检测出异常值。具体的,使用ARIMA模型对待检测指标进行拟合(模型训练),得到一条拟合曲线,即模型对每个实际数据点给出的预测值;再输出模型的残差序列,也即实际值与预测值的差;再根据该残差序列的分布,使用k sigma准则确定k值,其k值的确定逻辑同上述四分位数异常值检测技术及标准差异常值检测技术相同,再计算残差置信区间;最终根据数据点的残差是否落在置信区间之外来判断该数据点是否为异常点。
[0075] S207:输出所述待检测数据集的异常值检测结果。
[0076] 根据步骤S202‑S206,以数据集中每个被检测的字段为单位输出最终检测结果以及可视化的分析报告。
[0077] 在一个优选的实施例中,在步骤S202,识别所述待检测字段的数据指标后,还包括如下方法步骤:
[0078] 如果所述待检测字段的数据指标为类别型指标,判断所述数据指标是否为2个或2个以上的类别型指标;如果所述数据指标存在2个或2个以上的类别型指标,则通过卡方检验方法判断所述数据指标间是否存在相关性,若存在相关性,则通过DBScan模型进行异常值检测,若不存在相关性,则结束异常值检测;如果所述数据指标不存在2个或2个以上的类别型指标,则结束异常值检测。
[0079] 卡方检验即统计样本数据的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。在本申请实施例中,先通过卡方值判断数据指标间是否存在相关性,若存在相关性,则通过DBScan模型进行异常值检测。一般来说,当卡方检验结果的p值>0.05时,即认为被检验的两个分类变量无显著差异两个分类变量间存在相关性;若p值<=0.05,即认为被检验的两个分类变量之间有显著差异,即具有区分能力。
[0080] DBScan是一种用于将数据分组的集群算法,如图5所示,它也是一种被用于基于密度的对于一维或多维数据的异常检测方法。在本申请实施例中,主要将该技术用于存在一定的勾稽关系的定性指标的异常值的检测。对于该技术中的超参数的设置也是根据实际待检测的数据的具体分布进行挑选,以确保模型能够准确地检测出异常值。DBScan算法的超参数主要有领域半径Eps和成为核心对象的在领域半径内的最少点数MinPts这两个,具体参数取值的挑选逻辑也是根据待检测指标业务场景下异常值的比例来确定;勾稽关系主要体现为某些变量的组合是比较固定的,例如变量A和变量B中在大部分的情况下出现的值都为a1和b1,此时若出现少数a1和b2的组合,通过DBScan算法很容易识别出这个异常的噪声点,从而引起注意。
[0081] 另外,在DBScan模型基于对频率的统计来执行类别型变量的异常值检测过程中,将相似的数据样本聚成一个类,能大量的数据中发现某些特定的类别型的组合,因此还能发现在业务人员经验之外的新的业务规律。
[0082] 在一个优选的实施例中,步骤S205,通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量,具体包括如下方法步骤:
[0083] 执行第二逻辑流程;所述第二逻辑流程为分别判断基于不同分组变量的所述数据指标是否同时满足方差齐性及正态性检验;若同时满足方差齐性及正态性检验,则在不同分组变量下通过方差分析的方法剔除对所述数据指标不具有显著区分能力的分组变量;若不同时满足方差齐性及正态性检验,则在不同分组变量下通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量。
[0084] 方差齐性检验(Homogeneity of variance test)是数理统计学中检查不同样本的总体方差是否相同的一种方法。其基本原理是先对总体的特征作出某种假设,然后通过抽样研究的统计推理,对此假设应该被拒绝还是接受作出推断。常用方法有:Hartley检验、Bartlett检验、修正的Bartlett检验等。方差齐性检验是方差分析的重要前提,是方差可加性原则应用的一个条件,因此在本申请实施例中,需先判断所述数据指标是否满足方差齐性及正态性检验,若满足,则可通过方差分析的方法来剔除对所述数据指标不具有显著区分能力的分组变量。
[0085] 另外,Kruskal‑Wallis检验方法是在数据不满足正态分布及方差齐性时所采取的替代的方法,Kruskal‑Wallis检验方法是一种非参数检验的方法,一般来说,非参数检验的精度不高于参数检验。
[0086] 在一个优选的实施例中,在执行第二逻辑流程后,还包括如下方法步骤:
[0087] 判断剔除对所述数据指标不具有显著区分能力的分组变量后仍保留的分组变量个数是否为1个以上;若分组变量个数不超过1个,则执行所述第一逻辑流程;若分组变量个数为2个及以上,则通过对所述分组变量和所述数据指标进行排列组合,获取重组待检测数据指标后,重复执行所述第二逻辑流程。
[0088] 在本申请实施例中,若剔除掉不显著分组变量后,剩余分组变量个数超过1个,则针对这些分组变量和待检测数据指标进行排列组合,以获取新的待检测组,接着针对新的待检测组执行方差分析和Kruskal‑Wallis检验来进一步过滤出不显著的组合分组变量,仅对有显著区分能力的组合分组变量进行异常值检测,检测逻辑为第一逻辑流程。
[0089] 在一个具体应用场景中,例如针对金融数据里面所涉及到的信托产品的报酬率(A)这一数值指标的检测,分组变量基于不同产品类型指定为“固定”,“不定期”,“其他”,来对指标A进行分别检测;
[0090] 由于同一个数值指标在不同分组变量下的数值的取值范围可能会不一致,不能简单按照单一指标进行检测,若通过方差分析等确定“固定期”产品的报酬率和“不定期”产品的报酬率的数据分布是不一致的,则分别对“固定期”产品的报酬率(“固定期”+产品报酬率)和“不定期”产品的报酬率(“不定期”+产品的报酬率)这两种组合进行检测。
[0091] 在一个优选的实施例中,步骤S206,判断所述数据指标是否能够构建ARIMA时间序列模型,具体包括如下方法步骤:
[0092] 判断所述数据指标是否同时通过平稳性及白噪声检验;若通过检验,则确认所述时间日期变量数据能够构建ARIMA时间序列模型;若不能通过检验,则确认所述时间日期变量数据不能够构建ARIMA时间序列模型。
[0093] 平稳性检验及白噪声检验是做时间序列分析的前提,首先判断所述时间序列是否是平稳的,如果是平稳的,则判断是否是白噪声。若当前时间序列平稳且不为白噪声,则认为通过检验;否则,认为不能通过检验。
[0094] 在一个优选的实施例中,步骤S201,获取待检测数据集后,还包括如下方法步骤:
[0095] 对所述待检测数据集中的一个或多个字段进行数据质量扫描和清洗;获取扫描和清洗后的数据集并确认该数据集为待检测数据集。
[0096] 对于机器学习算法来说,数据质量的“好坏”,决定了算法的优劣性和健壮性。因此,在本申请实施例中,在待检测数据进入模型之前,先通过已有的业务规则检测出不满足通用行业标准的数据质量问题,并进行初步的清洗和过滤后,生成新的待检测数据集进行异常值检测,以此来确保模型会具有更好的检测效果和更高的检测效率。
[0097] 在一个优选的实施例中,若所述待检测字段为类别型字段,则指定所述待检测数据集的待检测字段时,选择2个以上类别型的字段。
[0098] 本申请实施例通过对多源异构数据进行字段识别,并根据不同的数据类型自动选择合适的异常值检测算法,使得对多源异构数据源的数据治理无需如传统的数据治理方案一般严重依赖业务规则或者专家知识库,且对于异常值检验颗粒度更加精细,同时满足了复杂业务场景中的多源异构数据质量的检测要求。
[0099] 本申请实施例还提供了一种基于多源异构数据源的数据质量检测装置300,如图6所示,包括:
[0100] 数据获取模块301,用于获取待检测数据集;
[0101] 待检测字段指定模块302,用于指定所述待检测数据集的待检测字段并识别所述待检测字段的数据指标;
[0102] 待检测字段变量判断模块303,如果所述待检测字段的数据指标为数值型指标,用于判断所述待检测字段是否被预指定分组变量及日期时间变量;
[0103] 第一逻辑流程执行模块304,若该数据指标没有被预指定分组变量及日期时间变量,用于执行第一逻辑流程,所述第一逻辑流程为判断所述待检测字段是否满足正态分布要求,若满足则通过标准差异常值检测技术进行异常值检测,若不满足,通过四分位数异常值检测技术进行异常值检测;
[0104] 分组变量检测模块305,若该数据指标被预指定分组变量,用于通过Kruskal‑Wallis检验方法剔除对所述数据指标不具有显著区分能力的分组变量后执行所述第一逻辑流程;
[0105] 日期时间变量检测模块306,若该数据指标被预指定日期时间变量,用于判断所述数据指标是否能够构建ARIMA时间序列模型;若不能,则执行所述第一逻辑流程;若能,则使用时间序列模型对所述数据指标进行拟合,以观测值超出拟合值置信区间为阈值上下限来判断该观测值是否属于异常值进行异常值检测;
[0106] 检测结果输出模块307,用于输出所述待检测数据集的异常值检测结果。
[0107] 如图7所示,图7是本申请实施例根据一示例性实施例示出的一种电子设备的结构框图。
[0108] 所述电子设备包括处理器910和存储器920。该主控芯片中处理器910的数量可以是一个或者多个,图7中以一个处理器910为例。该主控芯片中存储器920的数量可以是一个或者多个,图7中以一个存储器920为例。
[0109] 存储器920作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例任意实施例所述的一种基于多源异构数据源的数据质量检测方法程序,以及本申请实施例任意实施例所述的一种基于多源异构数据源的数据质量检测方法对应的程序指令/模块。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器920可进一步包括相对于处理器910远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0110] 处理器910通过运行存储在存储器920中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述任一实施例所记载的一种基于多源异构数据源的数据质量检测方法。
[0111] 本申请实施例还提供了一种计算机可读存储介质,其上储存有计算机程序,该计算机程序被处理器执行时实现上述任意一个实施例所述的一种基于多源异构数据源的数据质量检测方法。
[0112] 本发明可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可读储存介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其它数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其它内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其它光学存储、磁盒式磁带,磁带磁磁盘存储或其它磁性存储设备或任何其它非传输介质,可用于存储可以被计算设备访问的信息。
[0113] 应当理解的是,本申请实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请实施例的范围仅由所附的权利要求来限制。
[0114] 以上所述实施例仅表达了本申请实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请实施例构思的前提下,还可以做出若干变形和改进,这些都属于本申请实施例的保护范围。