数据挖掘原理与实践学习(3)

大家新年好,我将在本文中继续对数据挖掘一书进行总结,今天接着上一篇文章,总结一下数据预处理这个相对来说比较重要的知识点。


数据预处理

数据挖掘的目的是在大量的、潜在有用的数据中挖掘出有用的模式和信息,因此,挖掘的数据的质量就直接影响了挖掘的效果。高质量的数据是进行有效挖掘的前提,高质量的决定必须建立在高质量的数据上。我们将讨论如下主题:数据清理,数据集成,数据变换,数据归约,数据离散化:

数据清理

由于人工录入数据的时候出现的失误、测量设备的限制或数据收集过程的漏洞等因素,现实世界的数据通常是不完整的、有噪声的和不一致的。数据清理的目的就是试图填充缺失值、去除噪声并识别离群点、纠正数据中的不一致值。

(1)缺失值的处理方法(略)

(2)噪声数据的平滑方法

有如下三种方法,其中最重要,相对来说最关键的是分箱(binning)法:

分箱方法通过考察“邻居”(即周围的值)来平滑有序数据的值。有序值被分布到一些“桶”或箱中。由于分箱方法考察近邻的值,因此它进行的是局部平滑。

分箱法主要分为两个类型:等深分箱和等宽分箱。等深分箱即首先分出N个间隔,每个间隔大约包含了等数量的样本;等宽分箱则不同,是根据样本的取值范围,分出N个间隔,每个间隔的取值范围基本相同,一般来说,箱的宽度越大,平滑效果越大。

而在对数据集进行了分箱以后,就要对箱内数据进行平滑(局部平滑)。平滑有数种方法,包括平均值平滑(箱中的每个数值被此箱的平均值替换)、中值平滑(箱中的每个值被箱中的中值替换)以及边界平滑(箱中的最大值和最小值同样被视为边界,箱中的每个值被最近的边界值替换)。

此外,还有聚类法(讲类似的值组织成群或“簇”,直观地,落在簇集合之外的值被视为异常值,通过删除离群点来平滑数据。)以及回归法(通过线性回归、非线性回归等方法让数据适合一个函数来平滑数据),这里就暂时不提。

数据聚合

指将两个或者多个数据源中的数据,存放在一个一致的数据存储设备中。主要考虑数据一致性和冗余这两个重要问题。

数据变换

数据变换一般涉及以下内容:

  1. 平滑:去除数据中的噪声,包括分箱、回归和聚类等算法。
  2. 聚集:对数据进行汇总或聚集。例如,可以通过聚集电信客户的日消费数据,计算月和年消费数据。
  3. 数据泛化:使用概念分层,用高层概念替换低层或“原始”数据。例如,对客户的地址(街道)可以泛化为较高层的概念,如城市或省。
  4. 规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0~1.0或0.0~1.0。
  5. 属性构造(特征构造):利用已知属性,可以构造新的属性,以更好地刻画数据的特性,帮助挖掘过程。
  6. 数据离散化:离散化问题就是决定选择多少个分割点和确定分割点位置的问题,利用少数分类值标记替换连续属性的数值,从而减少和简化原来的数据。

下面是四个重点,大家可以主要看看规范化的方法:

数据泛化

概念分层可以用来规约数据,这种泛化,尽管细节丢失了,但泛化后的数据更容易让人理解和归纳,更加有意义。

规范化(重点!)

数据规范化是将原来的度量值转换为无量纲的值。利用距离度量的分类算法,如涉及神经网络、最近邻分类和聚类算法,规范化特别有用。对于基于距离的方法,规范化可以帮助平衡具有较大初始值域的属性与具有较小初始值域的属性可比性。常用规范化方法有如下三种:

给定一个属性(变量)f,以及fn个观测值x_{1f},x_{2f},x_{3f},...,x_{nf}

(1)最小—最大规范化

做线性变换:z_{if}=\tfrac{x_{if}-min_{f}}{max_{f}-min_{f}}(b-a)+a,将值转换到】[a,b],这里min_{f}max_{f}分别为fn个观测值的最小值和最大值。最常用的情况是取a=0,b=1。

(2)z-score规范化

①计算平均值EX_{f}、标准差\delta _{f}

EX_{f}=\tfrac{1}{n}(x_{1f}+x_{2f}+...+x_{nf})

\delta _{f}=\sqrt{\tfrac{1}{n}(|x_{1f}-EX_{f}|^2+|x_{2f}-EX_{f}|^2+...+|x_{nf}-EX_{f}|^2)}

②计算规范化的度量值(Z-score):

z_{if}=\tfrac{x_{if}-EX_{f}}{\delta_{f}}

当属性f的实际最大和最小值未知,或者离群点左右了最小—最大规范化时,该方法是有用的。

(3)小数定标规范化

小数定标规范化通过移动属性f的小数点位置进行规范化。小数点的移动位数依赖于f的最大绝对值。f的值v被规范化为v',则有:

v'=\tfrac{v}{10^j},其中,j是使max(|v'|)<1的最小整数。

*特别需要注意的是,规范化将原来的数据改变很多,因此有必要保留规范化参数(如EX_{f}\delta _{f}min_{f}max_{f}),以便将来的数据可以用一致的方法规范化。

特征构造

数据集的特征维数太高容易导致维灾难,而维度太低又不能有效地不活数据集中重要的信息。在实际应用中,通常需要对数据集中的特征进行处理来创建新的特征。由原始特征创建新的特征集有时候被称为特征提取或者特征构造,其目的是帮助提高精度和对高维数据结构的理解。

数据离散化

聚类、分类或关联分析中的某些算法要求数据是分类属性,因此需要对数值属性进行离散化(discreization)。

连续属性离散化为分类属性涉及两个子任务:决定需要多少个分类值,以及确定如何将连续属性值映射到这些分类值中。第一步,将连续属性值排序后,通过制定k-1个分割点(split point)把他们分成k个区间。第二步,将一个区间的所有值映射到相同的分类值。因此,离散化问题就是决定选择多少个分割点和确定分割点位置的问题。利用少数分类值标记替换连续属性的数值,从而减少和简化了原来的数据。

离散化技术根据是否使用类别信息可分为两类。如果离散化过程使用类别信息,则称之为监督(指导)离散化;反之,则称之为非监督(无指导)离散化。

等宽和等频(等深)离散化是两种常用的无监督离散化方法(等宽和等深可以参见之前的分箱法)。等宽方法将属性的值域分成具有相同宽度的区间,而区间的个数由用户指定。等宽离散化方法经常会造成实例分布非常不均匀,这样会严重削弱属性帮助构建较好决策结果的能力。

等频或等深方法试图将相同数量的对象放进每个区间,区间个数由用户指定。

数据规约

接下来我们来了解一下数据规约,首先看看什么叫做维度规约和特征变换。

1、维度规约和特征变换

维度(数据特征的数目)规约是指通过数据编码或变换,得到原始数据的规约或“压缩”表示。如果原始数据可以由压缩数据重新构造而不丢失任何信息,则该数据规约是无损的;如果只能重新构造原始数据的近似表示毛泽改数据规约是有损的。此外,维度规约还有很多好处:

  • 降低纬度,使得许多数据挖掘算法效果更好。
  • 维规约使得模型涉及更少的特征,因而可以产生更容易理解的模型。
  • 可以降低数据挖掘算法的时间和空间复杂度。

接下来简单介绍两种有效的有损规约方法,如果有兴趣的可以自行去拓展,笔者也不费笔墨了。

(1)离散小波变换(DWT)

离散小波变换是一种线性信号处理技术,有许多实际应用,包括手写体图像压缩、计算机视觉、时间序列数据分析和数据清理。当用于数据向量D时,离散小波转换将D转换成不同数值向量小波系数D',这两个向量具有相同的长度。

小波变换后的数据可以裁减,仅存放一小部分最强的小波系数,就能保留近似的压缩数据。离散小波变换一般使用分层金字塔算法,在每次迭代中将数据减半(因此计算速度很快),方法如下:

  1. 输入数据向量的长度L必须是2的整数幂,必要时,通过在数据向量后添加0来满足这一条件。
  2. 每个变换涉及应用两个函数。第一个使用某种数据平滑,如求和或加权平均;第二个进行加权差分,产生数据的细节特征。
  3. 两个函数作用于输入数据对,产生两个长度为L/2的数据集。一般地,它们分别代表输入数据平滑后的低频内容和高频内容。
  4. 两个函数递归地作用于前面循环得到的数据集,直到结果数据集的长度为2。
  5. 在以上迭代得到的数据集中选择值,指定其为数据变换的小波系数。

(2)主成分分析(PCA)

主成分分析是一种用于连续属性的线性变换技术,找出新的属性(主成分),这些属性是原属性的线性组合,是相互正交的,使原数据投影到较小的集合中,并且捕获数据的最大变差。PCA常常能揭示先前未曾察觉的联系、解释不寻常的结果。其基本过程如下:

  1. 对输入数据规范化,使得每个属性都落入相同的区间。
  2. PCA计算k个标准正交单位向量,作为规范化输入数据的基。这些向量称为主成分,输入数据是主成分的线性组合。
  3. 对主成分按“重要性”或强度降序排列。主成分基本上充当数据的新坐标轴,提供关于方差的重要信息。也就是说,对坐标轴进行排序,使得第一个坐标轴显示数据的最大方差,第二个显示次大方差,以此类推。例如图中展示对于原来映射到轴X_{1}X_{2}的给定数据集的两个主要成分Y_{1}Y_{2}.这一信息帮助识别数据中的分组或模式。
  4. 既然主要成分是根据“意义”降序排列,因此可以通过去掉较弱的成分来规约数据。使用最强的主要成分,可能重构原数据的很好的近似值。

2、抽样

在这里只简单叙述几种主要的抽样方法:

①无放回简单随机抽样方法。该方法从N个数据行中随机(每一数据行被选中的概率都为\tfrac{1}{N})抽取出n个数据行,以构成抽样数据子集。

②有放回简单随机抽样方法。该方法与无放回简单随机抽样方法类似,也是从N个数据行中每次随机抽取一数据行,但该数据行被选中后仍将留在数据集D中,这样最后获得由n个数据行组成的抽样数据子集中可能会出现相同的数据行。

③分层抽样方法。首先将数据集D划分为若干不相交的“层”,再分别从这些“层”中随机抽取数据对象,从而获得具有代表性的抽样数据子集。

3、特征选择

特征选择是指从一组已知特征集合中选择最具有代表性的特征子集,使其保留原有数据的大部分信息,即所选择的特征子集可以像原来的全部特征一样用来正确区分数据集中的每个数据对象。通过特征选择,一些与任务无关或者冗余的特征被删除,从而提高数据处理的效率,简化学习模型。

特征选择的理想方法是:将所有可能的特征子集作为感兴趣的数据算法的输入,然后选取产生最好结果的子集。这种方法的优点是反映了最终使用的数据挖掘算法的目的与偏爱,但是由于涉及n个属性的子集多达2^n个,大部分情况下这种理想方法偶读行不通,因此我们需要其他的策略。

根据特征选择过程与后续数据挖掘算法的关联,特征选择方法可以分为过滤、封装和嵌入

①过滤方法(Filter Approach):使用某种独立于数据挖掘任务的方法,在数据挖掘算法运行之前进行特征选择,即先过滤特征集产生一个最有价值的特征子集。

②封装方法(Wrapper Approach):将学习算法的结果作为特征子集评价准确的一部分,根据算法生成规则的分类精度选择特征子集。该类算法具有使得生成规则分类精度高的优点,但特征选择效率较低。

③嵌入方法(Embedded approach):特征选择作为数据挖掘算法的一部分自然地出现。在数据挖掘算法运行期间,算法本身决定使用哪些属性和忽略哪些特征,如决策树C4.5分类算法。

根据特征选择过程是否用到类信息的指导,特征选择可以分为监督式特征选择、无监督式特征选择和半监督式特征选择。

①监督式特征选择:使用类信息来指导,通过度量类信息与特征之间的相互关系来确定子集大小。

②无监督式特征选择:在没有类信息的指导下,使用样本聚类或特征聚类对聚类过程中的特征贡献度进行评估,根绝贡献度的大小进行特征选择。

③半监督式特征选择:有类信息的数据是非常“昂贵”的,通常情况下没有足够的有类信息的数据。如果有类信息的数据太少,以致不能提供足够的信息的时候,可以使用少量的有类信息的数据和无类信息的大量数据组合成数据集而进行特征选择。

而特征子集选择的搜索策略主要包括以下技术:

  1. 逐步向前选择:从空属性集作为归约集开始,确定原属性集中最好的属性,并将它添加到归约集中。在其后的每次迭代中,将剩下的原属性集中最好的属性添加到该集合中。
  2. 逐步向后删除:由整个属性集开始,在每一步,删除尚在的属性集中最差的属性。
  3. 向前选择和向后删除的结合:将逐步向前选择和逐步向后删除结合在一起,每一步选择一个最好的属性,并在剩余的属性中删除一个最差的属性。
  4. 决策树归纳:构造出一个类似于流程图的结构,其中每个内部结点表示一个属性的测试,每个分支对应于测试的一个输出;每个外部结点表示一个类预测;在每个节点,算法选择“最好”的属性,将数据划分成类。

以上就是数据预处理的一些重点内容,由于接下来时间受限,我可能会不按照章节,而是对应地按照一些重点单独写博客,希望大家谅解。

 

 

 

 

 

 

系统化地阐述了数据挖掘和知识发现技术的产生、发展、应用和相关概念、原理、算法。对数据挖掘中的主要技术分支,包括关联规则、分类、聚类、序列、空间以及Web挖掘等进行了理论剖析和算法描述。本书的许多工作是作者们在攻读博士学位期间的工作总结,一方面,对于相关概念和技术的阐述尽量先从理论分析入手,在此基础上进行技术归纳。另一方面,为了保证技术的系统性,所有的挖掘模型和算法描述都在统一的技术归纳框架下进行。同时,为了避免抽象算法描述给读者带来的理解困难,本书的所有典型算法都通过具体跟踪执行实例来进一步说明。本书共分8章,各章相对独立成篇,以利于读者选择性学习。在每章后面都设置专门一节来对本章内容和文献引用情况进行归纳,它不仅可以帮助读者对相关内容进行整理,而且也起到对本内容相关文献的注释性索引功能。第1章是绪论,系统地介绍了数据挖掘产生的商业和技术背景,从不同侧面剖析了数据挖掘的概念和应用价值;第2章给出了知识发现的过程分析和应用体系结构设计;第3章对关联规则挖掘的原理和算法进行全面阐述;第4章给出分类的主要理论和算法描述;第5章讨论聚类的常用技术和算法;第6章对时间序列分析技术和序列挖掘算法进行论述;第7章系统地介绍了Web挖掘的主要研究领域和相关技术及算法;第8章是对空间数据挖掘技术和算法的分析和讲述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值