首页 > 代码库 > 数据预处理

数据预处理

数据挖掘是从大量的,不完全的,有噪声的,模糊的,随即的数据中,提取隐含在其中的,人们事先不知道的,但有潜在的有用信息和知识的过程。

数据挖掘过程一般包括数据采集数据预处理数据挖掘以及知识评价和呈现

在一个完整的数据挖掘过程中,数据预处理要花费60%左右的时间,而后的挖掘工作仅仅占工工作量的10%左右。

目前对挖掘的研究主要集中于挖掘技术,挖掘算法,挖掘语言等

在海量的原始数据中,存在这大量杂乱的,重复则,不完整的数据,严重影响到数据挖掘算法的执行效率,有可能导致挖掘结果的偏差。

 

数据预处理分类:

从对不同的源数据进行预处理的功能来分,数据预处理主要包括数据清理,数据集成,数据变换,数据规约等4个基本的功能。

早实际的数据预处理过程中,这4中功能不一定都用得到,而且,他们的使用也没有先后顺序,某种预处理可能先后要多次进行。

 

从数据预处理所采用的技术和方法来分:

基本粗集理论的简约方法;复共线性数据预处理方法;基于Hash函数取样的数据预处理方法;基于遗传算法数据预处理方法;基于神经网络的数据预处理方法;Web挖掘的数据预处理方法等等。

 

在数据挖掘整体过程中,海量的原始数据中存在这大量复杂的,重复的,不完整的数据,严重影响到数据挖掘算法的执行效率,甚至可能导致挖掘结果的偏差,为此,在数据挖掘算法执行之前,必须对收集到的原始数据进行预处理,以改进数据的质量,提高数据挖掘过程的效率,精度,性能。数据预处理主要包括数据清理,数据集成,数据变换与数据规约等技术。

1)数据清理

数据清理要去除源数据集中的噪声数据和无关数据,处理遗漏数据和清洗脏数据,空缺值,识别删除孤立点等。

  (1.1)噪声:噪声是一个测量变量中的随即错误和偏差,包括错误的值或偏离期望的孤立点值,对于噪声数据有如下几种处理方法:分箱法,聚类法识别孤立点,回归

  (1.2)空缺值的处理:目前最常用的方法是使用最肯呢个的值填充空缺值,如用一个全局常量替换空缺值,使用属性的平均值填充空缺值或将所有元组按照某些属性分类,然后用同一类中属性的平均值填充空缺值。例5.2:一个公司职员平均工资收入为3000元,则使用该值替换工资中“基本工资”属性中的空缺值。

  (1.3)清洗脏数据:异构数据源数据库中的数据并不都是正确的,常常不可避免的存在着不完整,不一致,不精确和重复的数据,这些数据统称为“脏数据”,脏数据能使挖掘过程陷入混乱,导致不可靠的输出。清洗脏数据可采用下面的方式:1手工实现方式,2用专门编写的应用程序,3采用概率统计学远离查找数值异常的记录,4对重复记录的检测和删除

 

2)数据集成  

(2.1) 实体识别问题:在数据集成时候,来自多个数据源的现实世界的实体有时并不一定是匹配的,例如:数据分析者如何才能确信一个数据库中的student_id和另一个数据库中的stu_id值是同一个实体,通常,可以根据数据库或者数据仓库的元数据来区分模式集成中的错误。

 (2.2)冗余问题:数据集成往往导致数据冗余,如同一属性多次出现,统一属性命名不一致等,对于属性间冗余可以用先关分析检测到,然后删除。

 

数据值冲突检测与处理:对于现实世界的同一实体,来自不同数据源的属性值可能不同,这可能是因为表示、比例、或编码、数据类型、单位不统一、字段长度不同。

 

3) 数据变换

数据变换主要是找到数据的特征表示,用维变换或转换方法减少有效变量的数目或找到数据的不变式,包括规格化,规约,却换,旋转,投影等操作。

规格化是指将元组集按照规格化条件进行合并,也就是属性值量纲的归一化处理。规格化定义了属性的多个取值到给定虚拟值的对应关系,对于不同的数值属性特点,一般可以分为取值连续和取值分散的数值属性规格化问题。

 

4)规约:是指将元祖按语义层次结构合并,语义层次结构定义了元组属性值之间的语义关系,规约化和规约能大量减少元组个数,提高计算效率,同时,规格化和规约过程提高了知识发现的起点,使得一个算法能够发现多层次的知识,适应不同应用的需要。

数据规约是将数据库中的海量数据进行规约,规约之后的数据仍接近于保持原数据的完整性,但数据量相对小的多,这样进行挖掘的性能和效率会得到很大的提高。

数据规约的策略主要有数据立方体聚集,维规约,数据压缩,数值压缩,离散化和概念分层。

   (4.1)维规约:通过删除不相关的属性(或纬)减少数据量,不仅仅压缩了数据集,还减少了出现在发现模式上的属性数目,通常采用属性子集选择方法找出最小属性集,使得数据类的概率分布尽可能的接近使用所有属性的原分布

   (4.2)数据压缩,数据压缩分为无损压缩和有损压缩,比较流行和有效的有损数据压缩方法是小波变换和主要成分分析,小波变换对于稀疏或倾斜数据以及具有有序属性的数据有很好的压缩效果。

  (4.3)数值规约:数值归约通过选择替代的、较小的数据表示形式来减少数据量。数值归约技术可以是有参的,也可以是无参的。有参方法是使用一个模型来评估数据,只需存放参数,而不需要存放实际数据。有参的数值归约技术有以下两种,回归:线性回归和多元回归;对数线性模型:近似离散属性集中的多维概率分布。无参的数值归约技术有3种:直方图,聚类,选样

  (4.4)概念分层通过收集并用较高层的概念替换较低层的概念来定义数值属性的一个离散化。概念分层可以用来归约数据,通过这种概化尽管细节丢失了,但概化后的数据更有意义、更容易理解,并且所需的空间比原数据少。对于数值属性,由于数据的可能取值范围的多样性和数据值的更新频繁,说明概念分层是困难的。数值属性的概念分层可以根据数据的分布分析自动地构造,如用分箱、直方图分析、聚类分析、基于熵的离散化和自然划分分段等技术生成数值概念分层。由用户专家在模式级显示地说明属性的部分序或全序,从而获得概念的分层;只说明属性集,但不说明它们的偏序,由系统根据每个属性不同值的个数产生属性序,自动构造有意义的概念分层。

 

 

数据预处理的方法:

数据预处理方法就是根据不同的挖掘问题采用相应的理论和技术,实现数据清理、数据集成、数据变换、数据归约等基本功能。

预处理方法很多,在此介绍常用的几种方法。

(1)基于粗集理论的简约方法:粗糙集理论是一种研究不精确、不确定性知识的数学工具,可以对数据属性进行十分有效的精简,求出最小约简集,是数据预处理一种有效的方法。数据一般存在信息的含糊性问题。粗糙集理论的最大特点是无需提供问题所需处理的数据集合之外的任何先验信息。

粗糙集理论的基本思路是利用定义在数据集合U上的等价关系对U进行划分,对于数据表来说,这种等价关系可以是某个属性,或者是几个属性的集合。因此按照不同属性的组合就把数据表划分成不同的基本类,在这些基本类的基础上进一步求得最小约简集。
例如:表5.1 优秀人才决策表给出了某部门的员工数据记录集,通过对员工的政治表现、工作能力、科研能力等确定优秀人才人选。

论域

U

条件属性(C)

决策属性

政治表现(C1)

工作能力(C2)

科研能力(C3)

优秀人才(D)

e1

优秀

e2

良好

一般

一般

e3

一般

e4

一般

一般

一般

e5

良好

一般

e6

优秀

其中:条件属性集为C={政治表现,工作能力,科研能力},决策属性集为D={优秀人才}。

根据粗糙集理论对表5.1进行离散化后再进行数据预处理。处理过程分两个步骤进行,一是对决策表条件属性集进行约简求核;二是对条件属性值进行约简。
 
基于粗糙集理论的数据预处理具有优点:
第一,数据挖掘的对象一般都是通过观测、试验、调查得到的数据,通过观测、试验、调查等得到的数据存在着冗余、杂乱、不完整等因素,采用粗糙集理论进行数据预处理,不需要预先知道额外的信息,有利于集中精力解决问题;第二,算法简单。对于给定的决策表,预处理过程所使用的算法可以是分辨矩阵或逐个属性、逐条规则进行检验,算法简单,易于计算机的实现,方便挖掘系统的自动操作;第三,可以有效地去除冗余的属性或属性的值。
 
(2)复共线性数据的预处理方法
常规方法进行函数发现时一般要作出一个假设:数据满足统计不相关。而传统的函数发现算法中,常常忽略对数据是否满足该假设的检验。若数据不满足统计不相关的假设(也称数据变量之间存在复共线性),在这种情况下,函数发现算法挖掘出来的函数关系表达式可能会存在系统误差,该表达式将不是我们要发现的理想函数。
为解决该问题,本节给出ε-复共线性的概念,然后给出不满足不相关假设的情况下进行数据预处理的算法ε-MDPA(ε-Multicollinearity Data Preprocessing Algorithm复共线性数据预处理算法)。
假定给定的样本数据为Y、X,其中因变量样本数据矩阵Y=(y1,y2,…,yn)是p×n样本矩阵,即p个因变量,n个样本;自变量样本数据矩阵X是q×n矩阵,即q个自变量,n个样本。在实际计算时,X一般是将原始数据中心化后得到的样本矩阵,即:X×1n=0。
v在一般的函数发现算法中,自变量样本数据矩阵X需要数据满足统计不相关假设,也即X各行之间不能存在线性关系。而实际上,只要矩阵X的行向量之间存在近似线性关系时,函数发现算法就有可能达不到实用的效果。为此,下面我们给出ε-复共线性的定义,并对满足这一定义的数据给出数据预处理的算法(ε-MDPA)。
v定义5.1(ε-复共线性)给定矩阵X,设X′为X的转置矩阵,设矩阵(XX′)n×n的特征根为λ1, λ2, …,λn, 若对预设的正数ε,0<ε<0.1,有max(λi,i=1,…,n)/ min(λi,i=1,…,n)>1/ε,则称矩阵X满足ε-复共线性。
-复共线性描述了最大特征根和最小特征根之间的差距,当ε足够小时,XX′至少有一个特征根接近于0,这时,X的行向量之间存在着近似的线性关系,从而描述了数据之间的相关程度。
用于控制X各行向量之间的相关程度,当其线性关系达到用户指定的程度,那么,该组数据在进行函数发现之前应该进行转换预处理。

数据预处理