任务1.3 认识大数据预处理
1.3.1 任务描述
当通过各种数据采集方法采集到数据后,这些数据通常包含不必要的数据或者不完整、不一致的脏数据,无法直接使用,需要对数据进行预处理。本次任务是认识大数据预处理的主要过程及目标。
1.3.2 知识准备
数据预处理是指在对数据进行数据挖掘和存储之前,先对原始数据进行必要的清洗、集成、转换、离散和规约等一系列处理工作,达到使用数据挖掘算法进行知识获取研究要求的最低规范和标准。数据预处理是进行数据挖掘和利用之前很重要的一环。
从现实生活中采集到的数据由于各种原因,会出现数据不完整、数据类型不一致、数据冗余和数据模糊等现象,这种数据一般称为“脏”数据。这样的数据很少能直接满足数据应用要求。另外,海量的数据中无意义的成分很多,严重影响了数据应用执行效率,造成数据效果偏差。因此,需要对不理想的原始数据进行有效预处理。数据预处理技术可以提高数据质量,有助于提高数据处理任务的准确率和效率,已经成为大数据处理技术中很重要的一步。
数据预处理的基本任务主要包括数据清洗(Data Cleaning)、数据集成(Data Integration)、数据规约(Data Reduction)和数据转换(Data Transformation),如图1-11所示。
图1-11 数据预处理基本任务
1.3.3 任务实施
本任务由以下活动完成。
活动1 了解数据清洗(Data Cleaning)内容
数据清洗主要是将不同来源、不同数据格式或模式的数据按照一定的规则发现并纠正数据文件中可识别的错误,包括检查数据一致性,处理无效值和缺失值等,并对无效数据和缺失数据进行处理的过程。
数据清洗是数据预处理过程中很重要的一步。数据清洗可以有效避免学习过程中可能出现的相互矛盾的情况。数据清洗的目的不只是要消除错误、冗余和数据噪音,其目的是要使按不同的、不兼容的规则所得的各种数据集一致化。数据清洗处理过程通常包括填补遗漏的数据值,平滑有噪声数据,识别或除去异常值,以及解决不一致问题。
需要数据清洗的数据类型主要有不完整数据、错误数据、重复数据3大类。
1)不完整数据:顾名思义就是数据有缺失,数据不完整,比如一条数据表中的某条记录,其中有几个字段的内容缺失,这条记录就是不完整数据记录,如图1-12所示。
图1-12 不完整数据记录
2)错误数据:错误数据主要指数据类型和输入格式不正确,比如数值数据在采集过程中数字字符及日期格式不正确等。错误数据示例如图1-13所示。
图1-13 错误数据示例
3)重复数据:在相同的文件中,重复收集相同的数据条目,比如数据库中重复出现相同记录等。
数据清洗的主要方法是通过填补缺失值,删除缺失项,光滑噪声数据,平滑或删除离群点,解决数据的不一致性问题。
活动2 了解数据集成(Data Integration)内容
数据集成(Data Integration)是将不同来源格式、特点性质的数据在逻辑上或物理上有机地整合在一个数据集中,形成一致的数据存储过程。通过综合数据源,将拥有不同结构、不同属性的数据整合在一起,对外提供统一的访问接口,实现数据共享。数据集成模式如图1-14所示。
图1-14 数据集成模式
例如,许多互联网应用(包括机票、酒店、餐饮、租房、商品比价等服务)就是将来自不同数据源的数据进行有效集成,对外提供统一的访问服务。
1. 数据源的差异性
数据集成要解决的首要问题是各个数据源之间的差异性。数据源之间的差异性如表1-5所示。
表1-5 数据源之间的差异性
2. 数据集成模式
数据集成模式主要有3种,分别是联邦数据库(Federated Database)、数据仓库(Data Warehousing)、中介者(Mediation)。
1)联邦数据库
联邦数据库就是各数据源自治,没有全局数据模式。各个数据节点源使用的数据模式相互不受影响,如图1-15所示。
图1-15 联邦数据库模式图
联邦数据库是简单的数据集成模式。它需要软件在每对数据源之间创建映射(Mapping)和转换(Transform)。该软件称为包装器(Wrapper)。当数据源X需要和数据源Y进行通信和数据集成时,才需要建立X和Y之间的包装器。联邦数据库数据集成方式如图1-16所示。
图1-16 联邦数据库数据集成方式
当有很多的数据源仅仅需要在少数几个数据源之间进行通信和集成时,联邦数据库是比较适宜的模式。但是如果我们需要在很多数据源之间进行通信和数据交换时,就需要建立大量的Wrapper。例如,在n个数据源的情况下,最多需要建立(n(n-1))/2个Wrapper,这将是非常繁重的工作。如果有数据源发生变化,需要修改映射和转换机制,对大量的Wrapper进行更新很困难。
2)数据仓库
数据仓库是通用的一种数据集成模式。在数据仓库模式中,会从各个数据源拷贝数据,经过转换,存储到一个目标数据库中。数据仓库模式图如图1-17所示。
图1-17 数据仓库模式图
从各数据源收集数据后,会通过ETL完成数据仓库集成。
ETL是Extract(抽取)、Transform(转换)、Load(装载)的缩写。ETL过程在数据仓库之外完成。数据仓库负责存储数据,以备查询。
① 抽取:将数据从原始的数据业务中读取出来。
② 转换:按照预先设计好的规格将抽取的数据进行转换、清洗,以及冗余处理,将有差异的数据格式统一处理。
③ 装载:将转换完成的数据按计划增量或全部导入数据仓库中。
在数据仓库模式下,数据集成过程是一个ETL过程。它需要解决各个数据源之间的异构性和不一致性。同时,同样的数据被复制了两份:一份在数据源里;一份在数据仓库里。
3)中介者
数据集成的中介者模式,如图1-18所示:
图1-18 中介者模式图
中介者(Mediator)扮演的是数据源的虚拟视图(Virtual View)的角色。中介者本身不保存数据,数据仍然保存在数据源中。中介者维护一个虚拟的数据模式(Virtual Schema),它把各个数据源的数据模式组合起来。
数据映射和传输在查询时刻(Query Time)才真正发生。
当用户提交查询时,查询被转换成对各个数据源的若干查询。这些查询分别发送到各个数据源,由各个数据源执行这些查询,并返回结果。各个数据源返回的结果经合并后,返回给最终用户。
3. 活动效果评价
本次活动有助于读者了解以下知识。
1)数据集成的主要模式有联邦数据库(Federated Database)、数据仓库(Data Warehousing)、中介者(Mediation)。
2)数据集成的主要目的是解决数据差异性。
活动3 了解数据规约(Data Reduction)方式
数据规约用于帮助从原有庞大数据集中获得一个精简的数据集合,并使精简后的数据集保持原有数据集的完整性,提高数据挖掘效率。同时,使用数据规约的挖掘效果与使用原有数据所获得的结果基本相同。
例如,一个公司的数据仓库有非常庞大的数据集,在这样的海量数据集上进行复杂的数据分析和挖掘将花费很长时间,通常也不可行,而数据规约在尽可能保持数据原貌的前提下,可以最大限度地精简数据量。
数据规约主要通过数值聚集、删除冗余特性的办法压缩数据,提高挖掘模式的质量,降低时间复杂度,得到数据集的规约。在尽可能保持数据原貌的前提下,最大限度地精简数据量。虽然规约数据体量小,但仍可以大致保持原始数据的完整性。这样,在规约后的数据集上挖掘会更有效,并可以产生相同(或几乎相同)的分析结果。
数据规约的途径主要有属性选择和数据采样,分别对数据中的属性和记录进行规约。数据规约方法类似数据集的压缩,它通过减少维度或者减少数据量,来达到降低数据规模的目的。主要方法如下。
1)维度规约(Dimensionality Reduction):减少所需自变量的个数,通过删除不相干的额外属性和维数减少数据量。代表方法为WT、PCA与FSS。
2)数量规约(Numerosity Reduction):使用较小的数据替换原始数据。数值规约分为有参方法和无参方法。
① 有参方法使用一个参数模型估计数据,最后只要存储参数即可。常用技术有线性回归方法、多元回归方法、对数线性模型等。
② 无参方法代表有对数线性回归、聚类、抽样等。
3)数据压缩:通过使用数据编码或变换方式,得到原始数据的压缩结果。数据压缩(Data Compression)类型分为无损压缩与有损压缩。典型的有字符串压缩和音频/视频压缩。
① 字符串压缩通常指无损压缩。在解压缩前,对字符串的操作非常有限;字符串压缩具有广泛的理论基础和成熟的算法。
② 音频/视频压缩通常指有损压缩。主要方法有小波变换和主要成分分析。
活动4 数据转换(Data Transformation)方式
数据转换就是将数据转换或归并以构成一个适合数据挖掘的描述形式。数据转换包括对数据进行规范化、离散化、稀疏化处理,达到适用于挖掘的目的。例如,将属性数据按比例缩放,使之落入一个比较小的特定区间。比如将以下数据按照一定比例缩小100倍。
数据转换的一般方法如表1-6所示。
表1-6 数据转换的一般方法
在数据转换中,常用的方法有平滑处理、规格化处理、合计处理等。规格化处理有最大最小规格化方法、零均值规格化方法、十基数变换规格化方法。
1. 最大最小规格化方法
利用最大最小规格化方法将表1-7中某月商品销售额属性的值映射到0到1范围内。
表1-7 某月商品销售表
1)确定表1-7中销售额属性的最大值和最小值分别是6 781万元和1 106万元。计算公式定义为(待转换属性值-属性最小值)/(属性最大值-属性最小值)×(映射区间最大值-映射区间最小值)+映射区间最小值。例如,对客户ID为曾惠的销售额计算公式如下:
(3 856-1 106)/(6 781-1 106)×(1-0)+0=0.48
2)依次类推,通过最大最小规格化转化销售额数据结果,如表1-8所示。
表1-8 某月销售数据转换表
3)通过最大最小规格化处理后,将需要处理的销售额数据转换成0到1之间的数据。
2. 零均值规格化方法
零均值规格化方法是指根据某个属性的平均值和平方差来对该属性的值进行规格化处理。计算公式为(待转换属性值-属性平均值)/属性标准差。
数据示例表如表1-9所示。
表1-9 数据示例表
1)计算各属性均值:属性均值计算公式如下。
例如,属性1的平均值计算结果是177.571 4。
这样计算得到的各属性平均值如表1-10所示。
表1-10 各属性平均值
2)计算各属性的属性标准差:属性标准差在数学上定义为方差的平方根公式。
例如,属性1的属性标准差计算结果是
同理,各属性标准差如表1-11所示。
表1-11 各属性标准差
3)根据规格化公式:(待转换属性值-属性平均值)/属性标准差,计算属性值。
如属性1第一个值为78,根据公式(78-177.571 4)/43.706 815 42=-0.905 383,依次计算最终转换结果,如表1-12所示。
表1-12 数据转换结果表
3. 十基数变换规格化方法
十基数变换规格化方法是以十进制为基数,通过移动待转换属性值的小数点位置来实现规格化的目的。移动的小数位数取决于属性绝对值的最大值。
假设属性的取值范围是-869~693,则该属性绝对值的最大值为869。属性的值为354时,对应的转换结果如下。
354/103=0.354
计算公式是待转换属性值/10i。其中,i为能够使该属性绝对值的最大值(869)小于1的最小值。
活动效果评价
通过这个活动,可以帮助读者了解以下信息。
1)数据转换常用的方法有平滑处理、规格化处理、合计处理等。
2)规格化处理方法有最大最小规格化方法、零均值规格化方法、十基数变换规格化方法。
3)了解最大最小规格化方法过程。
4)了解零均值规格化方法过程。
1.3.4 任务效果
本次活动有助于读者学习以下知识。
1)理解数据预处理过程;
2)理解数据集成的含义;
3)了解数据转换常用方法;
4)了解数据规约主要目的。