2.2 数据预处理
2.2.1 数据预处理简介
数据预处理就是对于数据的预先处理,其目的是为了提高数据挖掘的质量。数据预处理内容主要包含以下几点。
(1)数据审核
在大数据分析中,对于从不同渠道取得的统计数据,在审核的内容和方法上有所不同。对于原始数据应主要从完整性和准确性两个方面去审核。完整性审核主要是检查应调查的单位或个体是否有遗漏,所有的调查项目或指标是否填写齐全。准确性审核主要包括两个方面:一是检查数据资料是否真实地反映了客观实际情况,内容是否符合实际;二是检查数据是否有错误、计算是否正确等。审核数据准确性的方法主要有逻辑检查和计算检查。逻辑检查主要是审核数据是否符合逻辑,内容是否合理,各项目或数字之间有无相互矛盾的现象,此方法主要适用于对定性(品质)数据的审核。计算检查是检查调查表中的各项数据在计算结果和计算方法上有无错误,主要用于对定量(数值型)数据的审核。数据预处理流程包含数据清洗、数据集成、数据变换、数据规范等环节。而对于通过其他渠道取得的二手资料,除了对其完整性和准确性进行审核外,还应该着重审核数据的适用性和时效性。此外,还要对数据的时效性进行审核,一般来说,应尽可能使用最新的统计数据。
(2)数据筛选
数据筛选包括两方面的内容:一是将某些不符合要求的数据或有明显错误的数据予以剔除;二是将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔除。数据筛选在市场调查、经济分析、管理决策中是十分重要的。
(3)数据排序
数据排序是按照一定顺序将数据排列,以便研究者通过浏览数据发现一些明显的特征或趋势,找到解决问题的线索。除此之外,排序还有助于对数据检查纠错,为重新归类或分组等提供依据。在某些场合,数据排序本身就是分析的目的之一。目前,数据排序可借助于计算机很容易地完成。
(4)数据验证
数据验证的目的是初步评估和判断数据是否满足统计分析的需要,决定是否需要增加或减少数据量。该步骤利用简单的线性模型以及散点图、直方图、折线图等图形进行探索性分析,并利用相关分析、一致性检验等方法对数据的准确性进行验证,确保不把错误的和偏差的数据带入到数据分析中去。
2.2.2 数据预处理方法
数据预处理有多种方法:数据清洗、数据集成、数据变换、数据归约等。这些数据处理技术在数据挖掘之前使用,大大提高了数据挖掘模式的质量,降低了实际挖掘所需要的时间。下面对数据预处理的常用方法进行介绍。
4 数据预处理方法
1.数据清洗
数据清洗通常是通过清洗脏数据、填写缺失的值、光滑噪声数据、清洗重复数据、识别或删除离群点并解决不一致性来“清理”数据。数据清洗的主要目标有格式标准化、异常数据清除、错误纠正、重复数据的清除。
(1)脏数据
脏数据也叫作坏数据,通常是指与期待的数据不一样、会影响系统正常行为的数据。比如,源系统中的数据不在给定的范围内或对于实际业务毫无意义,或数据格式非法,以及在源系统中存在不规范的编码和含糊的业务逻辑。
例如,员工表中有一个员工,名字叫“张超”,但是公司里并没有这个人,该员工数据就是脏数据。
(2)缺失值
缺失值又叫作空值,它是指粗糙数据中由于缺少信息而造成的数据的聚类、分组、缺失或截断。缺失值的常见现象是现有数据集中某个或某些属性的值是不完全的、空白的。
产生缺失值的原因多种多样,主要分为客观原因和人为原因。客观原因是指由于机械原因导致的数据收集或保存的失败造成的数据缺失,比如数据存储的失败、存储器损坏、机械故障导致某段时间数据未能收集。人为原因是指由于人的主观失误、历史局限或有意隐瞒造成的数据缺失,例如,在市场调查中被访人拒绝透露相关问题的答案,或者回答的问题是无效的,或者在数据录入时由于操作人员失误漏录了数据等。
例如,在一张人员表中,每个实体应当有五个属性,分别是姓名、年龄、性别、籍贯和学历,而某些记录只有四个属性值,该记录就缺失数据值。
图2-2所示为某数据库的数据缺失数和缺失率。
图2-2 某数据库的数据缺失数和缺失率
(3)噪声数据
噪声数据是指数据中存在错误或异常(偏离期望值)的数据,这些数据对数据分析造成了干扰。噪声数据主要包括错误数据、假数据和异常数据。在大数据中,最常见的噪声数据是异常数据,也称为异常值。它是指由于系统误差、人为误差或者固有数据的变异导致的与总体的行为特征、结构或相关性等不一样的数据。在机器学习中,异常值也被称为“离群点”,它是指在某种意义上具有不同于数据集中其他大部分数据对象的特征的数据对象,或是相对于该属性的典型值来说不寻常的属性值。值得注意的是,异常值本身应当是人们感兴趣的对象,并且它可以是合法的数据对象或值。
目前,对于异常值的检测是数据挖掘中的重要部分,它的任务是发现与大部分其他对象显著不同的对象,如常见的极值分析、近邻分析、投影方法等。
例如,某公司客户A的年收入是20万元,但在输入时意外地输入为200万元,与其他人的数据相比,这就是异常值。
又例如,测量小学四年级学生的身高数据,其中一部分数据如下:(1.35,1.40,1.42,14.8,1.43,1.44,1.39),单位为m。经过观察可知,其中第4个数据为14.8,这个数据明显是不可能的,因为这个数据远远偏离正常数据,因此需要对这类数据进行相应的处理。
(4)重复数据
重复数据也叫作重复值,即在数据集中存在相同的数据。重复数据一般有两种情况,一种是有多条数据记录的数据值完全相同;另一种是数据主体相同但匹配的唯一属性值不同。这两种情况符合其中一种就是重复数据。图2-3所示为在MySQL中的部分重复数据,如姓名为“张三”的两条数据记录数据值完全相同。
图2-3 MySQL中的部分重复数据
2.数据集成
在数据挖掘中所需要的不同产品或者系统中的数据常常是分散在各自系统中的,并且格式不一致,计量单位不一致。例如,在数据仓库中必须将多个分散的数据统一为一致的、无歧义的数据格式,并解决命名冲突、计量单位不一致等问题,然后将数据整合在一起,才能称这个数据仓库是集成的。
因此,数据集成正是将把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。在企业数据集成领域,已经有很多成熟的框架可以利用。目前通常采用联邦式、基于中间件模型和数据仓库等方法来构造集成的系统,这些技术在不同的着重点和应用上解决数据共享和为企业提供决策支持。
数据集成解决的首要问题是各个数据源之间的异构性,即差异性。例如,如何确定一个数据库中的“custom_id”与另一个数据库中的“custom_number”是否表示同一实体。数据源之间的异构性主要体现在以下几个方面。
1)数据管理系统的异构性。
2)通信协议异构性。
3)数据模式的异构性。
4)数据类型的异构性。
5)取值的异构性。
6)语义异构性。
目前常见的数据集成的模式主要有三种:联邦数据库模式、数据仓库模式和中介者模式。
(1)联邦数据库模式
联邦数据库模式是最简单的数据集成模式。它需要在每对数据源(Source)之间创建映射(Mapping)和转换(Transform)的软件,该软件称为包装器(Wrapper)。当数据源之间需要进行通信和数据集成时,才建立包装器。图2-4所示为联邦数据库模式。
(2)数据仓库模式
数据仓库是最通用的一种数据集成模式。在数据仓库模式中,数据从各个数据源(Source)复制过来,经过转换,然后存储到一个目标数据库(Data Warehouse)中。在数据仓库模式下,数据集成过程是一个ETL过程,它需要解决各个数据源之间的异构性和不一致性。图2-5所示为数据仓库模式。
图2-4 联邦数据库模式
图2-5 数据仓库模式
(3)中介者模式
在数据集成的中介者模式中,中介者(Mediator)扮演的是数据源的虚拟视图(Virtual View)的角色,中介者本身不保存数据,数据仍然保存在数据源中。当用户提交查询时,查询被转换成对各个数据源的若干查询,这些查询分别发送到各个数据源,由各个数据源执行这些查询并返回结果。各个数据源返回的结果经合并(Merge)后,返回给最终用户。图2-6所示为中介者模式。
图2-6 中介者模式
3.数据变换
数据变换是指将数据转换或统一成适合机器学习的形式,主要是指通过平滑聚集、数据泛化、规范化等方式将数据转化成适用于数据挖掘的形式。数据变换的主要内容如下。
1)光滑处理。去掉数据中的噪声,主要技术方法有Bin方法、聚类方法和回归方法等。
2)聚集。对数据进行总结或汇总操作,例如,某公司每天的数据经过合计操作可以获得每月或每年的总额,这一操作常用于构造数据立方或对数据进行多粒度的分析。
3)数据泛化。一个从相对低层概念到相对高层概念且对数据库中与任务相关的大量数据进行抽象概述的分析过程。例如,街道属性可以泛化到更高层次的概念,如城市、省份和国家的属性。
4)标准化。通过一定的数学变换方式,将原始数据按照一定的比例进行转换,使之落入一个小的特定区间内,例如0~1或-1~1的区间内。
5)属性构造。根据已有属性集构造新的属性,以帮助实现数据挖掘。
常见的数据变换方法包括min-max标准化、特征二值化、特征归一化、连续特征变换、定性特征哑编码等。其中,min-max标准化方法在前文第1.2.2节已介绍过,这里介绍其他几种数据变换方法。
(1)特征二值化
特征二值化的核心在于设定一个阈值,将特征与该阈值比较后,转换为0或1(只考虑某个特征出现与否,不考虑出现次数或程度)。它的目的是将连续数值细粒度的度量转化为粗粒度的度量。因此,在数据挖掘领域,特征二值化的目的是为了对定量的特征进行“好与坏”的划分,以剔除冗余信息。例如,银行对5名客户的征信进行打分,分别为50,60,70,80,90。现在,银行不在乎一个人的征信多少分,只在乎他的征信好与坏(如征信值不低于90为好,低于90就不好);再比如学生成绩,考试成绩不低于60及格,小于60就不及格。这种“好与坏”“及格与不及格”的关系可以转化为0-1变量,这就是特征二值化。其对应的计算公式如下:
在这里,对1和0的划分可以用“x≥阈值”或“x<阈值”来表示。
(2)特征归一化
特征归一化也叫作数据无量纲化,主要包括总和标准化、标准差标准化、极大值标准化、极差标准化等。它是数据清洗和数据挖掘中的一项基础工作。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果。为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。
例如,线性归一化和零均值归一化是特征归一化中的常见方法。其中线性归一化将特征线性映射到[0,1]区间上;零均值归一化假设特征分布是正态分布,通过方差和均值,将特征映射到标准正态分布上。
(3)连续特征变换
连续特征变换能够增加数据的非线性特征与捕获特征之间的关系,有效提高模型的复杂度。连续特征变换的常用方法有三种:基于多项式的数据变换、基于指数函数的数据变换和基于对数函数的数据变换。
(4)定性特征哑编码
定性特征哑编码又称为独热编码,它用不同的状态对应不同的数据值。对于离散特征,有多少个状态就有多少个位,且只有该状态所在位为1,其他位都为0。例如天气:{多云、下雨、晴天},湿度:{偏高、正常、偏低},当输入{天气:多云,湿度:偏低}时进行天气状态编码可以得到{100},湿度状态编码可以得到{001},那么两者连起来就是最后的独热编码{100001}。
4.数据归约
数据归约是指在尽可能保持数据原貌的前提下,最大限度地精简数据量(完成该任务的必要前提是理解挖掘任务和熟悉数据本身内容)。数据归约主要有两个途径:属性选择和数据采样,分别针对原始数据集中的属性和记录。
一般而言,原始数据可以用数据集的归约表示。尽管归约数据体积较小,但它仍接近于保持原始数据的完整性。
(1)数据归约的类型
数据归约的类型主要有特征归约、样本归约和特征值归约等。
1)特征归约
特征归约是指在尽可能保持数据原貌的前提下,最大限度地精简数据量。常见做法是从原有的特征中删除不重要或不相关的特征,或者通过对特征进行重组来减少特征的个数。其原则是在保留甚至提高原有判别能力的同时减少特征向量的维度。
2)样本归约
样本归约就是从数据集中选出一个有代表性的样本子集,并且子集大小的确定要考虑计算成本、存储要求、估计量的精度以及其他一些与算法和数据特性有关的因素。
3)特征值归约
特征值归约是特征值离散化技术,它将连续型特征的值离散化,使之成为若干区间,每个区间映射到一个离散符号。这种技术的好处在于简化了数据描述,并易于理解数据和最终的挖掘结果。值得注意的是,特征值归约可以是有参的,也可以是无参的。
(2)数据归约的方法
数据规约方法包括维规约、数量规约和数据压缩等。
1)维规约
维规约也称为特征归约,是指通过减少属性特征的方式压缩数据量,从而提高模型效率。维规约方法包括小波变换、主成分分析(PCA)、属性子集选择和特征构造等。其中小波变换适用于高维数据,主成分分析适用于稀释数据,属性子集选择通常使用决策树,而特征构造可以帮助提高准确性和对高维数据结构的理解。
2)数量规约
数量规约是指用较小的数据集替换原数据集,从而得到原数据的较小表示。数量规约常使用参数模型或非参数模型,其中参数模型只存放模型参数,而非实际数据,例如回归模型和对数线性模型;而对于非参数模型,则可以使用直方图、聚类、抽样等方法来实现。
3)数据压缩
数据压缩是指在不丢失有用信息的前提下,缩减数据量以缩小存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。一般来讲,数据压缩包括有损压缩和无损压缩两种。两者都属于压缩技术,但无论采用何种技术模型,两者的本质是一样的,即都是通过某种特殊的编码方式将数据信息中存在的重复度、冗余度有效地降低,从而达到数据压缩的目的。其基本原理都是在不影响文件的基本使用的前提下,只保留原数据中的一些“关键点”,去掉重复的、冗余的信息,从而达到压缩的目的。