浅析数据挖掘中的数据预处理技术
2017-12-21张治斌刘威
张治斌++刘威
摘要:无论在数据分析还是数据挖掘过程中,数据预处理都处于重要的地位和作用,占据数据挖掘过程总工作量的60-80%,数据预处理过程决定着数据挖掘结果的准确性和有效性,本文主要针对数据预处理的基本工作内容进行介绍。
关键词:数据预处理;数据挖掘;过程;数据清洗
中图分类号:TP39 文献标识码:A 文章编号:1007-9416(2017)10-0216-02
现实世界的数据库系统中的数据量迅速膨胀,目前数据存储的数量级已经达到G-T-P的级别,由于用户输入、数据库设计与界面设计等各种原因,在海量的数据中难免会出现各种不符合分析需求的噪声数据、空缺值、缺失值;有些数据描述不完整;在进行数据整合与合并时,不同数据源的统一属性字段存在不一致性的情况,为了使数据挖掘的结果能够可观、真实反映历史数据的情况,为用户提供精确的指导建议,所以在数据挖掘之前进行数据预处理工作,改善和提高数据质量非常必要。
1 数据挖掘过程介绍
数据挖掘也叫做资料勘探或数据采矿,从宏观上定义为从海量的各类数据中通过某种算法探索隐匿的信息和知识的过程,许多人把数据挖掘视为数据库知识发现(KDD)的同义词,知识发现的过程如图1所示。
在上述数据挖掘工作中的数据清理与集成、数据选取与变换过程就是数据预处理过程,所谓数据预处理指的是在进行挖掘前对数据进行一些必要的处理,其主要过程包括:数据选取、数据转换和数据加载的过程,这一过程也被称作ETL,数据预处理是数据挖掘的基础,通过研究发现,数据预处理过程要花费整个挖掘过程的60-80%左右的时间和精力。在挖掘前进行有效的数据预处理工作,既可以节省大量时间和空间,更能确保数据挖掘结果得到更好的决策和预测作用。
假设有这样一个需求:某公司要对历史销售的数据进行挖掘分析,以为后期的销售提供指导,我们指导销售数据通常包括诸如商品名称、产地、经销地、生产时间、销售量与销售时间等信息,这样,我们通常首先选取能够获得以上数据的数据库和数据仓库内容,进一步挑选与挖掘任务相关的数据对象的属性特征与记录。但是,我们会发现在数据库中有些数据存在一些错误和不正常与不一致的情况;有些记录属性值不是我们所关心的;有些数据属性之间的值存在较大的偏差,那么在数据挖掘前就有必要将这些噪声数据以及不一致的属性进行预先的处理。
我们通常把数据中存在的错误或异常或偏离期望值的数据成为噪声数据;把有些在挖掘中需要或感兴趣但其属性却没有值的数据称为不完整数据;把数据库中具有相同属性意义,但表现字段属性不同的情况称为不一致的数据,例如:同一部门的编号在数据库中表现为不同的值,或者性别字段的记录值表现形式不同等。
2 数据预处理技术解析
数据预处理技术主要由数据清理、数据集成、数据变换和数据归约等四部分工作组成。所谓数据清洗,是指将数据中存在的噪声数据进行消除,纠正数据库中数据不一致的情况;数据集成比较容易理解与实现,指的是将不同数据源的数据通过横向合并或纵向追加等形式重新构成一个新的数据集合;数据变换的目的是为了数据格式的统一而进行的将一种格式的数据转换为另一种规范统一并能够易于分析处理的数据格式;最后,由于我们处理的是海量数据,为了能够提高挖掘效率,需要将与挖掘业务无关的冗余特征进行删除,再通过聚类等方式消除多余数据,这个过程就是数据归约。下面针对数据预处理的四个过程进行详细介绍。
(1)数据清理:数据清理是完成格式的标准化、对空缺值进行处理、清除重复的数据以及对异常数据进行错误纠正和清除等操作;例如在分析一个学生家庭基本信息的数据时,发现有好多记录中的属性值为空:例如:“家庭年收入”属性;还有一些属性值为异常状况,例如 “家庭年收入”属性值为负数;当数据库中出现空的属性值或异常的属性值时,如果对于挖掘结果影响不大,可以将其忽略;如果不完整数量不多,可以根据需要进行手动填补空缺值或替换异常值;此外,如果对于数据量较大,对数据质量要求较高的时候,也可以利用缺省值、可能出现的值、平均值进行填补的方法。相对来说利用最可能出现的值填补遗漏值是一种比较普遍使用的方法,能够最大程度上确保信息符合当前数据所包含的特征,帮助预测所遗漏的数据。
(2)数据集成:数据集成是将来自不同数据源的数据合并为统一一致的数据存储中,这种数据存储可以是数据库或数据仓库;数据集成主要包括:包含相同字段属性的纵向追加和具有相关属性叠加的横向合并。在进行数据横向合并时,会出现同一对象的一些属性字段在不同数据库或数据仓库中的名称不同或属性值不同,这样就容易造成合成后的数据出现不一致性或者数据的冗余性。例如:在學生成绩的数据库中,学生的学号字段表示为“Student_ID”,学生性别的属性取值为(0,1),在另一个学生基本信息的数据库中,学生的学号字段表示为“ID”,学生性别的属性取值为(‘男,‘女);这样两个数据库的信息在进行集成的时候,就会出现性别字段的属性取值不一致,学号字段的信息存在冗余的情况,这样进一步大大降低数据挖掘的效率,而且会误导挖掘的过程,所以在数据集成过程的一项重要工作是消减数据的冗余。
(3)数据归约:数据归约是针对原始数据集中地属性和记录,实现有效的数据采样与对应属性选择,进一步降低数据规模,在数据归约过程可以采用聚集、聚类以及将冗余特征值删除等形式,达到既能最大限度的保持数据的原有特征,又能够有效的精简数据量的目的。数据归约的前提是保持原有数据的完整性和有效性的基础上,在庞大的数据库或数据仓库系统中抽取出具有特征性的精简的数据集合。数据归约主要通过数据立方体技术、维消减、数据压缩、数据块消减、离散化和概念层次生成等方法实现。
(4)数据变换:数据变换是根据需要将数据压缩到较小的区间中,也就是对数据进行规格化处理,将数据压缩到特定的范围之内,例如【0,1】之间。例如对于学生基本信息中的成绩属性和家庭年收入属性,由于家庭年收入属性比成绩属性的值大得多,如果不进行规范化处理,在进行类似神经网络等挖掘方法处理时,家庭年收入的距离计算值会远远大于学生成绩的距离计算值,这就将家庭年收入的属性作用在整个数据对象的距离计算中被远远放大。
以上所提到的几种数据预处理方法,相互之间不仅关联而且是独立的,各个预处理方法的实施并没有先后顺序的严格制约,并且相互贯通,例如消除数据冗余的过程既可以看做是数据清洗过程的一项工作,也可以认为是数据归约工作中的一种方法。
数据预处理无论在数据挖掘或数据分析过程中,都被视为是一项重要的工作,特别随着海量数据的逐渐庞大,各类噪声数据与不完整数据的层出不穷,每一项数据挖掘工作中都要对数据质量进行严格的预处理工作,以提高数据挖掘结果的准确与真实性,达到提高数据挖掘所获模式知识质量的目的。
参考文献
[1]薛薇.基于SPSS Modeler的数据挖掘[M].中国人民大学出版社,2014.endprint