对于数据治理而言,数据清洗是其中最为重要的一个步骤。本文为大家介绍一下数据清洗的概念和方法。
大数据隐含着极大的价值,人们越来越希望从大量的数据中挖掘出有价值的信息供管理、决策和调控参考使用。一般情况下,数据挖掘总是假设数据是“干净”和一致的,然而现实中感知数据往往是冗余的、不完整的、错误的,且存在不一致性,这些现象的存在将会降低数据质量,严重影响数据挖掘的结果,从而影响决策的正确制定。
数据清洗是对数据库数据进行审查和校验,过滤不合规数据、删除重复数据、纠正错误数据、完成格式转换,并进行清洗前后的数据一致性检查,保证清洗结果集的质量。数据清洗需要处理的脏数据主要有错误数据、不完整数据和相似重复数据,根据脏数据的不同分类,数据清洗也可以分为属性错误清洗、不完整数据清洗以及相似重复记录清洗三大类。
一、属性错误清洗
数据库中很多数据违反最初定义的完整性约束,存在大量不一致的、有冲突的数据和噪声数据,我们应该识别出这些错误数据,然后进行错误清洗。属性错误检测的方法有基于定量的误差检测方法和基于定性的误差检测方法:
(1) 定量的误差检测:一般在离群点检测的基础上采用统计方法来识别异常行为和误差,离群点检测是找出与其他观察结果偏离太多的点,Aggarwal 将离群点检测方法又分为6种类型:极值分析、聚类模型、基于距离的模型、基于密度的模型、概率模型、信息理论模型。
(2) 定性的误差检测:测一般依赖于描述性方法指定一个合法的数据实例的模式或约束,因此确定违反这些模式或者约束的就是错误数据。首先,错误类型是指要检测什么。定性误差检测技术可以根据捕捉到的错误类型来进行分类,目前,大量的工作都是使用完整性约束来捕获数据库应该遵守的数据质量规则,虽然重复值也违反了完整性约束,但是重复值的识别与清洗是数据清洗的一个核心;其次,自动化检测。根据人类的参与与否以及参与步骤来对定性误差检测技术进行分类,大部分的检测过程都是全自动化的,个别技术涉及到人类参与;最后,商业智能层是指在哪里检测。错误可以发生在数据治理的任何阶段,大部分的检测都是针对原始数据库的,但是有些错误只能在数据治理后获得更多的语义和业务逻辑才能检测出来。
不仅可以使用统计方法来对属性错误进行检测,使用一些商业工具也可以进行异常检测,如数据清洗工具以及数据审计工具等。
属性侧错清洗可以分为噪声数据清洗和不一致数据清洗:
(1) 噪声数据的清洗也叫光滑噪声技术,主要方法有分箱以及回归等方法:分箱方法是通过周围邻近的值来光滑有序的数据值但是只是局部光滑,回归方法是使用回归函数拟合数据来光滑噪声;
(2) 不一致数据的清洗在某些情况下可以参照其他材料使用人工进行修改,可以借助知识工程工具来找到违反限制的数据,例如:如果知道数据的函数依赖关系,通过函数关系修改属性值。但是大部分的不一致情况都需要进行数据变换,即定义一系列的变换纠正数据,也有很多商业工具提供数据变换的功能,例如数据迁移工具和ETL工具等,但是这些功能都是有限的。
二、不完整数据清洗
在实际情况中,企业的数据会存在很多缺失或不完整的数据,针对缺失的字段,我们有以下几种处理的方法:
(1) 忽略元组:一般情况下,当此元组缺少多个属性值时常采用此方法,否则该方法不是很有效。当忽略了此条元组之后,元组内剩下的有值的属性也不能被采用,这些数据可能是有用的;
(2) 人工填写缺失值:这种方法最大的缺点就是需要大量的时间和人力,数据清理技术需要做到最少的人工干预,并且在数据集很大、缺失很多属性值时,这种方法行不通;
(3) 全局变量填充缺失值:使用同一个常量来填充属性的缺失值。这种方法虽然使用起来较为简单,但是有时不可靠。例如,用统一的常量“NULL”来填写缺失值,在后续的数据挖掘中,可能会认为它们形成了一个有趣的概念;
(4) 中心度量填充缺失值:使用属性的中心度量来填充缺失值。中心度量是指数据分布的“中间”值,例如均值或者中位数,数据对称分布使用均值、倾斜分布使用中位数;
(5) 使用最可能的值填充:相当于数值预测的概念。回归分析是数值预测最常用的统计学方法,此外也可以使用贝叶斯形式化方法的基于推理的工具或决策树归纳确定缺失值。
三、相似重复记录清洗
消除相似重复记录,首先应该识别数据集中两条或多条记录是否指向同一实体,这个过程也叫做实体对齐或实体匹配。文本相似度度量是实体对齐的最基础方法,大致分为4类:基于字符的、基于单词的、基于语义的和混合型方法。.随着知识表示学习在各个领域的发展,一些研究人员提出了基于表示学习的实体匹配算法,但均是以TransE系列模型为基础构建的。TransE首次提出基于翻译的方法,将关系解释为实体的低维向量之间的翻译操作,随之涌现出一些扩展的典型算法,如MTransE 算法,JAPE 算法,SEEA 算法等。
实体对齐方法不仅应用于数据清洗过程中,对后续的数据集成以及数据挖掘也起到重要的作用。除此之外,也有很多重复检测的工具可以使用,如Febrl系统、TAILOR工具、WHIRL系统、BigMatch等,但是目前很多匹配算法只适用于英文不适合中文,中文数据清洗工具的开发有待进一步的研究。
相似重复记录的清洗一般都采用先排序再合并的思想,代表算法有优先队列算法、近邻排序算法、多趟近 邻排序算法.优先队列算法比较复杂,先将表中所有记录进行排序后,排好的记录被优先队列进行顺序扫描并动 态地将它们聚类,减少记录比较的次数,匹配效率得以提高,该算法还可以很好地适应数据规模的变化。
喜欢本文的话,欢迎关注活在信息时代哦:)