由于海量数据的来源是广泛的,数据类型也是多而繁杂的,因此数据中会夹杂着不完整、重复以及错误的数据,如果直接使用这些原始数据,会严重影响数据决策的准确性和效率。因此,对原始数据进行有效的清洗是大数据分析和应用过程中的关键环节。
目录
1.1 数据清洗的背景
1.1.1 数据质量概述
数据质量是指在业务环境下,数据符合数据消费者的使用目的,能满足业务场景具体需求的程度。但是,在不同的业务场景中,数据消费者对数据量有各自不同的观点,具体如下:
● 对于一个邮件列表的管理员来说,数据质量与姓名、地址有关,高质量的数据意味着清晰、准确、不存在二义性以及不重复的邮件传送地址。
● 对于清洗工具销售商来说,数据质量与姓名、地址有关,以及与他们的工具是否能够规范地校验和匹配客户记录有关。
● 对于数据仓库工程师来说,数据质量是将他们接收的应用数据经过相关的处理,存储到表格中或者显示到窗口中。
● 对于一个数据挖掘和决策支持系统的使用者来说,数据质量意味着准、无重复且符合许多特定要求的数据。
从适应性的角度看,数据质量是一个相对的概念(与决策有关)。不同的决策者对数据质量的高低要求也是不同的。对于一个无关的数据,即使质量很高,对决策也起不到任何作用。
数据质量的显著特点如下:
●“业务需求”会随时间变化,数据质量也会随时间发生变化。
●数据质量可以借助信息系统度量,但独立于信息系统存在。
●数据质量存在于数据的整个生命周期。随着数据的产生而产生,随着数据的消失而消失。
1.1.2数据质量的评价指标
数据质量的评价指标主要包括数据的准确性、完整性、简洁性及适用性。其中数据的准确性、完整性和简洁是为了保证数据的适应性。
1、准确性
数据的准确性就是要求数据中的噪声尽可能少。为提高数据的准确性,需对数据进行降噪处理。对于数据中偏离常规、分散的小样本数据,一般可视为噪声或异常数据,可通过最常用的异常值测方法聚类进行处理。
2、完整性
完整性指的是数据信息是否存在缺失的状况。数据缺失的情况可能是整条数据记录缺失,也可能是数据中某个字段信息的记录缺失。不完整的数据所能借鉴的价值会大大降低,也是数据质量更为基础的一项评估标准。
数据质量的完整性比较容易评估,一般通过数据统计中的记录值和唯一值进行评估。
3、简洁性
简洁性就是要尽量选择重要的本质属性,并消除冗余。进行决策时,决策者往往抓住反映问题的主要因素,而不需要把问题的细节都搞得很清楚。
4、适用性
适用性是评价数据质量的重要标准。建立数据仓库的目的是进行数据挖掘、支持决策分析。数据的质量是否能满足决策的需要是适用性的关键所在。尽管前面已经强调了数据的准确性、完整性和简洁性,但归根结底是为了数据的实际效用。从数据的实际效用上讲,适用性才是评价数据质量的核心准则。
1.1.3数据质量的问题分类
数据质量的问题可以分为两类:一类是基于数据源的“脏”数据分类;另一类是基于清洗方式的“脏”数据分类。
1、基于数据源的“脏”数据分类
通常情况下,将数据源中不完整、重复以及错误等有问题的数据称为“脏”数据。由于数据仓库的数据来自底层数据源,因此“脏”数据出现的原因与数据源有密切的关系。

从图1-1中可以看出,基于数据源的“脏”数据质量问题可以分为两类,即单数据源问题和多数据源问题。
1)单数据源问题
单数据源的数据质量主要取决于它的模式对数据完整性约束的控制程度。由于数据模式和完整性约束控制了数据的范围,如果单数据源没有数据模式,就会对进入和存储的数据缺乏相应的限制,此时很有可能出现拼写错误的数据和不一致的数据。
单数据源的实例层问题是由于数据在模式层无法预防的错误和不一致引起的。
2)多数据源问题
多数据源中存在的与模式相关的质量问题主要是名字冲突和结构冲突。名字冲突表现在同一个名字表示不同的对象,或不同的名字表示同一个对象;结构冲突的典型表现是不同的数据源中同一对象用不同的方式表示。
除模式相关的质量问题外,许多质量问题只出现在实例层次上,如重复记录,矛盾记录等。
2、基于清洗方式的“脏”数据分类
从数据清洗方式的设计者角度看,可以将“脏”数据分为“独立型“脏”数据”和“依赖型“脏”数据”两类。

从图1-2中可以看出,独立型“脏”数据包括单数据源和多数据源所有模式层及大多数实例层的数据质量问题;依赖型“脏”数据包括缺失数据和重复数据等“脏”数据。
1)独立型“脏”数据
独立型“脏”数据可通过记录或本身属性检验出是否包含“脏”数据,不需要依赖其他记录或属性检测。
合法性检验是判断数据是否符合给定标准的过程。判断标准是用户根据业务需要定义的一些检验规则,该规则主要检验的是数据的格式、数据的范围、数据的枚举清单以及数据的相关性等方面,具体介绍如下。
● 数据的格式主要是检验记录的某个字段或字段组中的数据是否符合规范格式,这是针对模式层的“脏”数据进行检验。
● 数据的范围主要是检查记录的字段数据是否在预期的范围内,常用语检验数字和有效值。
● 数据的枚举清单主要是参照某个已定义的清单检验字段的值。
● 数据的相关性主要通过主键和外键的关系实现。
综上所述,数据的合法性检验应高度自动化。在设计清洗程序时,应该内置较多的检验函数和环节,这样可以减少用户定制数据合法性检验规则的工作量。
数据转换是将“脏”数据进行清洗的过程,包括模式转换和实例转换。其中,模式转换用来解决模式层“脏”数据的问题,通过在元数据库中定义表字段的映射规则、字段拆分规则以及字段值合并规则等协调数据模式之间的差异,从而实现数据的清洗;实例转换是根据元数据字段的实际内容,结合一定的领域知识解决拼写错误、输入错误、不同的计量单位及过时的代码等实例层“脏”数据问题。
2)依赖型“脏”数据
依赖型“脏”数据主要包括缺失数据和重复数据等“脏”数据。一般地,针对特定类型的脏数据设计特定的清洗方式。
(1)缺失数据
缺失数据主要包括数据空值和数据异常,具体介绍如下。
数据空值一共有两种情况,即缺失值和空值,其中缺失值是指实际存在,但没有存入值所属字段中;空值是指因实际并不存在而空缺的值。
数据异常指的是用统计分析的方法识别出异常值。计算某个字段的平均值、众数、中位数以及最大值、最小值等,可根据这些统计的值和相关的规则,发现数据中的异常。
(2)重复数据
重复数据是指一个现实实体在数据集合中以多个不完全相同的记录表示。检测重复数据的方法有很多,例如基本的字段匹配、递归的字段匹配、Smith-Waterman算法、以及基于编辑距离的字段匹配等方法。
1.2数据清洗的定义
数据清洗技术是提高数据质量的有效方法。数据清洗主要应用于三个领域,即数据仓库领域、数据挖掘领域以及数据质量管理领域。
在数据仓库领域中,当多个数据库合并时或多个数据源进行集成时,都需要进行数据清洗。
在数据挖掘领域中,数据清洗是数据进行预处理的第一个步骤。
在数据质量管理领域中,数据质量管理主要用于解决信息系统中的数据质量及集成问题。
1.3数据清洗的原理
数据清洗是利用相关技术将“脏”数据转换为满足质量要求的数据。

从图1-3中可以看出,同一值的不同表示、拼写错误、不同的命名习惯、不合法的值以及空值都会导致“脏”数据的出现,通过定义好的数据清洗策略和清洗规则(即数理统计技术,数据挖掘技术等清洗策略)对“脏”数据进行清洗,得到满足数据质量要求的数据。
需要注意的是,数据清洗的目的是解决“脏”数据问题,不是将“脏”数据洗掉,而是将“脏”数据洗干净。干净的数据指的是满足质量要求的数据。
1.4数据清洗的基本流程
数据清洗的基本流程一共分为五个步骤,分别是数据分析、定义数据清洗的策略和规则、搜寻并确定错误实例、纠正发现的错误以及干净数据回流。

1、数据分析
数据分析是数据清洗的前提和基础,通过人工检测或者计算机分析程序的方式,对原始数据源的数据进行检测分析,从而得出原始数据源中存在的数据质量问题。
2、定义数据清洗的策略和规则
根据数据分析出的数据源个数和数据源中的“脏”数据程度,定义数据清洗策略和规则,并选择合适的数据清洗算法。
3、搜寻并确定错误实例
搜寻并确定错误实例步骤包括自动检测属性错误和检测重复记录的算法。
需要使用高效的方法自动检测数据集中的属性错误主要检测方法有基于统计的方法、聚类方法和关联规则方法。
检测重复记录的算法可以对两个数据集或一个合并后的数据集进行检测,从而确定从同一个现实实体的重复记录及匹配过程。检测重复记录的算法有基本的字段匹配算法、递归字段匹配算法等。
4、纠正发现的错误
需要注意的是,对原始数据源进行数据清洗时,应该将原始数据源进行备份,以防需要撤销清洗操作。
为了便于处理单数据源、多数据源以及单数据源与其他数据源合并的数据质量问题,一般需要在各个数据源上进行数据转换操作,具体如下。
(1)从原始数据源的属性字段中抽取值(属性分离)。
原始数据源的属性一般包含很多信息,这些信息有时需要细化成多个属性,以便后续清洗,重复数据。
(2)确认并改正。
确认并改正输入和拼写的错误,然后尽可能的使该步骤自动化,若是基于字典查询拼写错误,则更利于发现拼写的错误。
(3)标准化。
为了便于记录实例匹配和合并,应该将属性值转换成统一格式。
5、干净数据回流
当数据被清洗后,干净的数据替代原始数据源中的“脏”数据,这样可以提高信息系统的数据质量,还可以避免将来再次抽取数据后进行重复的清洗工作。
1.5数据清洗的策略
目前数据清洗的策略主要分为一般的数据清洗策略和混合的数据清洗策略。
1、一般的数据清洗策略
按照数据清洗的实现方式与范围划分,一般分为手工清洗策略、自动清洗策略、特定应用领域的清洗策略以及与特定应用领域无关的清洗策略。这四种清洗策略的具体介绍如下。
● 手工清洗策略,即通过人工直接修改“脏”数据。
● 自动清洗策略,即通过编写专门的应用程序检测并修改“脏”数据。
● 特定应用领域的清洗策略,即根据概率统计学原理检测并修改数值异常的记录。
●与特定应用领域无关的清洗策略,即根据相关算法检测并删除重复记录。
2、混合的数据清洗策略
混合的清洗,混合的数据清洗策略主要以自动清洗为主。
1.6常见的数据清洗方法
常见的数据质量问题主要包括缺失值、重复值以及错误值等问题。
1、缺失值的清洗
缺失值的清洗方法主要分为两类,即忽略缺失值数据和填充缺失值数据。
(1)忽略缺失值数据方法是直接通过删除属性或实例忽略缺失值的数据。
(2)填充缺失值数据方法是使用最接近缺失值的值代替缺失的值,包括人工填写缺失值,使用一个全局常量填充空缺值(即将缺失的值用同一个常量Unknown替换)以及使用属性的平均值、中间值、最大(小)值填充缺失值,或使用最可能的值(即通过回归、贝叶斯形式化方法的工具或决策树归纳确定的值)填充缺失值。
2、重复值的清洗
目前清洗重复值的基本思想是“排序和合并”。清洗重复值的方法主要有相似度计算和基于基本近邻排序算法等方法。
(1)相思度计算是通过计算记录的个别属性的相似度,然后考虑每个属性的不同权重值,进行加权平均后得到记录的相似度,若两个记录相似度超过某一个阈值,则认为两条记录匹配,否则认为这两条记录指向不同的实体。
(2)基于基本近邻排序算法的核心思想是为了减少记录的比较次数,在按关键字排序后的数据集上移动一个大小固定的窗口,通过检测窗口内的记录判断,判定它们是否相似,从而确定并处理重复记录。
3、错误值的清洗
错误值的清洗方法主要包括使用统计分析的方法识别可能的错误值(如偏差分析识别不遵守分布或回归方程的值)、使用简单规则库(即常识性规则、业务特定规则等)检测出错误值、使用不同属性间的约束以及使用外部的数据等方法检测和处理错误值。
1.7本章小结
本章主要讲解了数据预处理的相关知识,包括数据质量概述、数据质量的评价指标、数据质量的问题分类以及数据清洗的定义、数据清洗的原理、数据清洗的基本流程、数据清洗的策略和常见的数据清洗方法。希望读者通过本章的学习,可以对数据预处理有基本的认识,便于后续章节的学习。
----------------------------------------------------------------------------------------------------------
笔记所有内容均出自于清华大学出版社大数据技术与应用丛书《数据清洗》——黑马程序员/编著,仅仅是个人对于本书的归纳笔记,未侵犯书籍的版权。
数据清洗是大数据分析和应用的关键环节,涉及数据质量的准确性、完整性、简洁性和适用性评价。本章介绍了数据清洗的背景、定义、原理、基本流程、策略和常见方法,如缺失值、重复值和错误值的清洗。通过对数据源问题和清洗方式的理解,有助于提升数据质量。

1万+

被折叠的 条评论
为什么被折叠?



