[数据科学笔记]第4章 数据清洗与数据集成

数据清洗与数据集成

数据抽取、转换和装载

面向数据服务(或者OLTP)应用的数据库,一般不运行特别复杂的数据分析任务

–为了对数据进行分析,我们从这些数据库里,抽取、转换和装载(Extract, Transform and Load, ETL)数据到数据仓库中,进而在它之上运行复杂的分析负载,包括OLAP分析和数据挖掘,从数据里挖掘模式和知识

–如果从多个异构的数据源ETL数据到数据仓库中,而且这些数据源存在各种异构性及不一致性,那么就需要对数据进行集成。

在进行ETL操作时,如果数据源的数据质量较差,在进行数据转换时,需要利用数据清洗技术,解决数据质量问题。数据清洗是一种消除数据里面的错误、去掉重复数据的技术

[数据科学笔记]第4章 数据清洗与数据集成_第1张图片

数据清洗

数据清洗的意义

–基于准确的数据(高质量)进行分析,才有可能获得可信的分析结果,基于这些分析结果,才有可能做出正确的决策。

[数据科学笔记]第4章 数据清洗与数据集成_第2张图片

数据异常的不同类型

语法类异常

–词法错误(Lexical Error)

比如,在一张人员表中,每个实体有四个属性,分别是姓名、年龄、性别和身高,某些记录只
有三个属性,这就是词法异常

–值域格式错误(Domain Format Error)

比如姓名是字符串类型,在名和姓之间有一个“,”,那么“John, Smith”是正确的值,而“John 
Smith”则不是正确的值

–不规则的取值(Irregularity)

比如在一个数据库表里面,员工的工资字段,有的是用“元”作为单位,有的是用“万元”作为单
位

语义类异常

–违反完整性约束规则(Integrity Constraint Violation)

比如,我们规定员工表的工资字段必须大于0,如果某个员工的工资<0,那么就违反了完整性约
束规则

–数据中出现矛盾(Contradiction)

如果在数据库表里面,某位员工的实发工资,不等于应发工资减去所得税,那么就出现了矛盾

–数据的重复值(Duplicate)

–无效元组(Invalid Tuple)

覆盖类异常

值的缺失(Missing Value)

它指的是,在进行数据采集的时候,就没有采集到相应的数据。

元组的缺失(Missing Tuple)

它指的是,在客观世界中,存在某些实体,但是并没有在数据库中通过元组表示出来。

数据质量

正确性(Accuracy)

所谓正确性,指的是数据集里所有正确的取值,相对于所有取值的比例。
这个标准,包括三个子标准,分别是完整性(Integrity)、一致性(Consistency)、和密度
(Density)

完整性(Integrity),继续划分为完备性(Completeness)和有效性(Validity)

一致性(Consistency),继续划分为模式符合性(Schema Conformance)和统一性
(Uniformity)
所谓模式符合性,指的是符合数据模式的元组,占所有元组的比例。所谓不符合数据模式,主
要是指数据的取值不在值域范围之内,比如年龄字段的取值为300岁
统一性,指的是数据集里,不包含不规则性(Irregularity)的属性,占所有的属性的比例。
不规则的取值(Irregularity),指的是取值、单位、和简称的使用不统一

密度(Density),指的是所有元组里,各个属性上的缺失值(Missing Value),占所有应该存
在的所有属性上的取值的比例

唯一性(Uniqueness)

是指代表相同实体的重复元组,占数据集里所有元组的比例

数据清洗的任务和过程

数据清洗,是剔除数据里的异常,使得数据集成为现实世界的准确、没有重复的(Correct & Duplicate Free)表示的过程

(1) 对元组及其各个属性值的格式进行调整,使之符合值域要求,使用统一的计量单位、统一的简称等。
(2) 完整性约束条件的检查和实施(Enforcement)。
(3) 从已有的取值,导出缺失的值。
(4) 解决元组内部和元组之间的矛盾冲突(Contradiction)。
(5) 消除、合并重复值。
(6) 检测离群值(Outlier),这些离群值极有可能是无效的数据

数据清洗的过程,可以分为4个主要的步骤,分别是:

–(1) 对数据进行审计,把数据异常(Anomaly)的类型标识出来。
–(2) 选择合适的方法,用于检测和剔除这些异常。
–(3) 在数据上,执行这些方法。第2步和第3步,实际上是定义数据清洗的工作流和执行这个工作流。
–(4) 最后,后续处理和控制阶段将检查清洗结果,把在前面步骤中没有纠正过来的错误元组,进行进一步的处理

[数据科学笔记]第4章 数据清洗与数据集成_第3张图片

数据审计

一般通过对数据进行解析、以及采用各种统计方法,来检测数据的异常。对整个数据集的每个属性进行分析,可以统计出该属性的最大/最小长度、取值范围、每个取值的频率、方差、唯一性、空值出现的情况、典型的字符串模式、数据集体现出的函数依赖(Functional Dependency)关系、数据中体现的关联性(关联规则)等。

制定数据清洗工作流

为了把数据中的各种异常情况剔除掉,需要对数据进行一系列的操作。

执行数据清洗工作流

定义好的数据清洗工作流,其正确性经过验证以后(可以在小批量数据上实验一下),在整个数据集上执行。

后续处理和控制阶段

数据清洗工作流执行结束后,需要对结果进行检查,以确认各个操作是否正确执行,数据修正的结果是否正确。所谓控制(Controlling),是指对于未能在工作流自动化处理阶段完成纠错、而记录下来的元组,由领域专家进行人工干预,手工完成修正

数据清洗的具体方法

数据解析(Parsing)

在数据清洗过程中,对数据进行解析,目的是检测语法错误(Syntax Error)。对于错误的字符
串取值,比如应该为“smith”而写成了“snith”,可以通过字符串解析,以及使用编辑距离
(Edit Distance),寻找最相近的正确的字符串,给出可能的纠正方案

数据转换(Transformation)

数据转换,其目的是把数据从一个格式映射到另外一种格式,以适应应用程序的需要。在实例
层面(Instance Level),对各个元组的各个字段的取值,一般采用标准化
(Standardization)、和规范化方法(Normalization),剔除数据的不规则性
(Irregularity)。
所谓数据的标准化,是经过转换函数,把数据的值转换成标准形式,比如把性别字段的值,全
部转换成“1”/“0”。
而规范化,则把数据映射到一个最小值、最大值所在的范围,比如把数据映射到[0,1]之间。
对数据进行转换,有时候需要转换其类型(Type Conversion)

重复数据消除

重复数据消除(Duplicate Elimination),也称为记录连接(Record Linkage)。

在数据清洗中的重复数据消除,和数据集成过程中的重复数据消除,目的都是把数据中的重复
元组给剔除掉,只不过后者处理的是来自多个数据源的数据

一些统计方法

统计方法,可以用于对数据进行审计,甚至还可以对数据中的异常(Anomaly)进行纠正
在一些数据集里面,离群值不一定意味着错误数据,而是实际情况如此。比如信用卡诈骗,体
现出和正常交易不一样的模式,不能把信用卡诈骗看作是错误数据,而应该从这些数据中发现
这些模式,防止诈骗的发生

数据集成

所谓数据集成,是指把数据从多个数据源整合在一起,提供一个观察这些数据的统一视图(Common View)的过程

数据集成分为物理式数据集成、虚拟式数据集成两类。

–所谓物理式数据集成,需要从各个数据源把数据拷贝到目标数据仓库。

–而虚拟式的数据集成,数据仍然保留在各个数据源中,通过某种机制,使得用户可以通过统一的视图,对数据进行查询


数据集成要解决的首要问题,是各个数据源之间的异构性,所谓异构性就是差异性

(1) 数据管理系统的异构性
(2) 通讯协议异构性
(3) 数据模式的异构性(Schema Heterogeneity)
(4) 数据类型的异构性(Data Type Heterogeneity)
(5) 取值的异构性(Value Heterogeneity),不同的数据源,有些数据的逻辑取值(Logical Value),物理取值(Physical Value)不一样
(6) 语义异构性(Semantic Heterogeneity):不同的数据源,某个数据项的取值相同,但是却代表不同的含义

有三种基本的策略,进行数据的集成,分别是联邦数据库(Federated Database)、数据仓库(Data Warehousing)、中介者(Mediation)(有的文献翻译为仲裁)


联邦数据库模式

联邦数据库的主要优点是,如果我们有很多的数据源,但是仅仅需要在少数几个数据源之间进
行通讯和集成,联邦数据库是最合算的一种模式。

其缺点也是很明显的,如果我们需要在很多的数据源之间,进行通讯和数据交换的话,我们需
要建立大量的Wrapper

[数据科学笔记]第4章 数据清洗与数据集成_第4张图片


数据仓库模式

在数据仓库模式下,同样的数据被复制了两份,一份在数据源那里,一份在数据仓库这里。一
个重要的问题是,如何因应数据源里数据的变化,及时更新数据仓库里的数据。我们可以采用
两种方法,同步数据源和数据仓库的数据

第一种方法,是对数据仓库进行完全重建(Complete Rebuild)的办法
第二种方法,是增量式更新(Incremental Update)的方法

[数据科学笔记]第4章 数据清洗与数据集成_第5张图片


中介者模式

中介者(Mediator)扮演的是数据源的虚拟视图的角色(Virtual View),中介者本身不保存任
何数据,数据仍然保存在数据源中。中介者维护一个虚拟的数据模式(Virtual Schema),它把
各个数据源的数据模式组合起来

[数据科学笔记]第4章 数据清洗与数据集成_第6张图片


中介者包括两种类型,分别是GAV(Global as View)和LAV(Local as View)

GAV,由Mediator 模式充当所有数据源数据模式的一个视图。Mediator通过一些规则,实现
Mediator上的查询,到针对各个数据源的查询的转换。和单一数据库上的常规视图类似,我们
只能通过视图,查找到各个数据源数据的一个子集(Subset)

LAV,则首先有一个全局数据模式(Global Schema),然后基于该全局数据模式定义各个数据源
的模式。每个数据源通过表达式(Expression),描述如何从全局模式,产生该数据源的模式。
LAV能够超越各个数据源,涵盖更多的数据

[数据科学笔记]第4章 数据清洗与数据集成_第7张图片

LAV和GAV比较

GAV的主要优势是易于设计和实现,但是通过GAV只能看到全部数据的一个子集。
LAV,比起GAV来,难于设计和实现,但是它具有更大的扩展性(Extensible),新的数据源可以
很容易增加进来,只要从全局模式定义新数据源的模式即可

你可能感兴趣的:(数据科学概论,数据仓库,数据库,java,大数据,数据分析)