数据挖掘读书笔记1——数据预处理

此为读《数据挖掘概念与技术》一书的随手摘抄,方便以后查阅。

数据清理
3.2.1 遗漏值
1. 忽略元组:当类标号缺少时通常这样做(假定挖掘任务涉及分类或描述)。除非元组有多个属
性缺少值,否则该方法不是很有效。当每个属性缺少值的百分比很高时,它的性能非常差。
2. 人工填写遗漏值:一般地说,该方法很费时,并且当数据集很大,缺少很多值时,该方法可能
行不通。
3. 使用一个全局常量填充遗漏值:将遗漏的属性值用同一个常数(如“Unknown”或 –∞)替换。
如果遗漏值都用“Unknown”替换,挖掘程序可能误以为它们形成了一个有趣的概念,因为它
们都具有相同的值——“Unknown”。因此,尽管该方法简单,我们并不推荐它。
4. 使用属性的平均值填充遗漏值:例如,假定 AllElectronics顾客的平均收入为$28,000,则使用该
值替换 income 中的遗漏值。
5. 使用与给定元组属同一类的所有样本的平均值:例如,如果将顾客按 credit_risk 分类,则用具
有相同信用度的顾客的平均收入替换 income 中的遗漏值。
6. 使用最可能的值填充遗漏值:可以用回归、使用贝叶斯形式化方法或判定树归纳等基于推导的
工具确定。例如,利用你的数据集中其他顾客的属性,你可以构造一棵判定树,来预测 income
的遗漏值。

3.2.2 噪音数据
噪音是测量变量的随机错误或偏差。下面是一些数据平滑技术。
1. 分箱:分箱方法通过考察“邻居”(即,周围的值)来平滑存储数据的值。存储的值被分布到一些“桶”或箱中。由于分箱方法导致值相邻,因此它进行局部平滑。

例:                 price的排序后数据(元):4, 8, 15, 21, 21, 24, 25, 28, 34
                       划分为(等深的)箱:
                       箱1:4, 8, 15     箱2:21, 21, 24    箱3:25, 28, 34                                   
                       用平均值平滑(同理可用中值):                                                                                                                                                 箱1:9, 9, 9       箱2:22, 22, 22     箱3:29, 29, 29                              
                       用边界平滑(最大和最小为边界,取最接近的):                                                                                                                                     箱1:4, 4, 15     箱2:21, 21, 24     箱3:25, 25, 34 
2. 聚类:局外者可以被聚类检测。聚类将类似的值组织成群或“聚类”。直观地,落在聚类集合之外的值被视为局外者
3. 计算机和人工检查结合:可以通过计算机和人工检查结合的办法来识别局外者。例如,在一种应用中,使用信息理论度量,帮助识别手写体字符数据库中的局外者。度量值反映被判断的字符与已知的符号相比的“差异”程度。其差异程度大于某个阈值的模式输出到一个表中。人可以审查表中的模式,识别真正的垃圾。
4. 回归:可以通过让数据适合一个函数(如回归函数)来平滑数据。线性回归涉及找出适合两个变量的“最佳”直线,使得一个变量能够预测另一个。多线性回归是线性回归的扩展,它涉及多于两个变量,数据要适合一个多维面。
许多数据平滑的方法也是涉及离散化的数据归约方法。例如,上面介绍的分箱技术减少了每个属性的不同值的数量。对于基于逻辑的数据挖掘方法(如判定树归纳),这充当了一种形式的数据归约。概念分层是一种数据离散化形式,也可以用于数据平滑。例如,price的概念分层可以把 price的值映射到 inexpensive、moderately_priced 和 expensive,从而减少了挖掘过程所处理的值的数量。

数据集成
有些冗余可以被相关分析检测到。例如,给定两个属性,根据可用的数据,这种分析可以度量一个属性能在多大程度上蕴涵另一个。属性 A和 B 之间的相关性(Pearson product coefficient)可用下式度量: 
(此处为旧版,标准差公式里除以的是n-1,新版里3.1公式除以的是n,标准差也是除以n)
(3.1)式的值大于 0,则 A和 B 是正相关的,意味 A 的值随 B的值增加而增加。该值越大,一个属性蕴涵另一个的可能性越大。因此,一个很大的值表明 A(或 B)可以作为冗余而被去掉。如果结果值等于 0,则 A 和 B 是独立的,它们之间不相关。如果结果值小于 0,则 A 和 B 是负相关的,一个值随另一个减少而增加。这表明每一个属性都阻止另一个出现。
除了冗余,还要检测重复的,冲突的。

数据变换
可能涉及如下内容:
平滑:去掉数据中的噪音。这种技术包括分箱、聚类和回归。
聚集:对数据进行汇总和聚集。例如,可以聚集日销售数据,计算月和年销售额。通常,这一步用来为多粒度数据分析构造数据方。
数据泛化:使用概念分层,用高层次概念替换低层次“原始”数据。例如,分类的属性,如 street,可以泛化为较高层的概念,如 city 或 country。类似地,数值属性,如 age,可以映射到较高层概念,如 young, middle-age 和 senior。
规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0到 1.0 或0.0到 1.0。
属性构造(或特征构造):可以构造新的属性并添加到属性集中,以帮助挖掘过程。 
通过将属性数据按比例缩放,使之落入一个小的特定区间,如 0.0到 1.0,对属性规范化。对于距离度量分类算法,如涉及神经网络或诸如最临近分类和聚类的分类算法,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘(第7 章),对于训练样本属性输入值规范化将有助于加快学习阶段的速度。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性(例如,income)与具有较小初始值域的属性(例如,二进位属性)相比,权重过大。
最小-最大规范化对原始数据进行线性变换。假定minA 和maxA 分别为属性A的最小和最大值。

z- score规范化(或零-均值规范化)中,属性 A 的值基于A 的平均值和标准差规范化。A 的
值 v 被规范化为 v’
                         

小数定标规范化通过移动属性 A 的小数点位置进行规范化。小数点的移动位数依赖于 A 的最大
绝对值。A 的值 v 被规范化为 v’,由下式计算:
                     
其中,j 是使得 Max(|v’|) < 1 的最小整数。
属性构造是由给定的属性构造和添加新的属性,以帮助提高精度和对高维数据结构的理解。例如,我们可能根据属性 height 和 width 添加属性 area。属性结构可以帮助平缓使用判定树算法分类的分裂问题。

数据归约
数据归约的策略如下: 
1. 数据方聚集:聚集操作用于数据方中的数据。 
2. 维归约:可以检测并删除不相关、弱相关或冗余的属性或维。

属性子集选择的基本启发式方法包括以下技术
1. 逐步向前选择:该过程由空属性集开始,选择原属性集中最好的属性,并将它添加到该集合
中。在其后的每一次迭代,将原属性集剩下的属性中的最好的属性添加到该集合中。
2. 逐步向后删除:该过程由整个属性集开始。在每一步,删除掉尚在属性集中的最坏属性。
3. 向前选择和向后删除的结合:向前选择和向后删除方法可以结合在一起,每一步选择一个最
好的属性,并在剩余属性中删除一个最坏的属性。
4. 决策树归纳:ID3,C4.5,CART

3. 数据压缩:使用编码机制压缩数据集。 
小波变换

离散小波变换(DWT)是一种线性信号处理技术,当用于数据向量D 时,将它转换成不同的数值向量小波系数D’。两个向量具有相同的长度。小波变换后的数据可以裁减。仅存放一小部分最强的小波系数,就能保留近似的压缩数据。傅里叶变换(DFT)是一种涉及正弦和余弦的信号处理技术,然而,一般地说,DWT 是一种较好的有损压缩。小波变换可以用于多维数据,如数据方。可以按以下方法做:首先将变换用于第一个维,然后第二个,如此下去。计算复杂性对于方中单元的个数是线性的。对于稀疏或倾斜数据、具有有序属性的数据,小波变换给出很好的结果。

流行的小波变换包括Haar_2,Daubechies_4 和Daubechies_6 变换。应用离散小波变换的一般过程使用一种分层金字塔算法,它在
每次迭代将数据减半,导致很快的计算速度。该方法如下:
1. 输入数据向量的长度L 必须是2 的整数幂。必要时,通过在数据向量后添加0,这一条件可以满足。
2. 每个变换涉及应用两个函数。第一个使用某种数据平滑,如求和或加权平均。第二个进行加权
差分,产生数据的细节特征。
3. 两个函数作用于输入数据对,产生两个长度为L/2 的数据集。一般地,它们分别代表输入数据
的平滑后或低频的版本和它的高频内容。
4. 两个函数递归地作用于前面循环得到的数据集,直到结果数据集的长度为2。
5. 由以上迭代得到的数据集中选择值,指定其为数据变换的小波系数。

主成分分析

假定待压缩的数据由N 个元组或数据向量组成,取自k-维。主要成分分析(PCA,又称
Karhunen-Loeve 或K-L 方法)搜索c 个最能代表数据的k-维正交向量;这里c ≤ k。这样,原来的数
据投影到一个较小的空间,导致数据压缩。PCA 可以作为一种维归约形式使用。然而,不象属性子
集选择通过保留原属性集的一个子集来减少属性集的大小,PCA 通过创建一个替换的、较小的变量
集“组合”属性的本质。原数据可以投影到该较小的集合中。

1. 对输入数据规范化,使得每个属性都落入相同的区间。此步确保具有较大定义域的属性不会主
宰具有较小定义域的属性。
2. PCA 计算c 个规范正交向量,作为规范化输入数据的基。这些是单位向量,每一个都垂直于另
一个。这些向量被称为主要成分。输入数据是主要成分的线性组合。
3. 对主要成分按“意义”或强度降序排列。主要成分基本上充当数据的一组新坐标轴,提供重要
的方差信息。即,对轴进行排序,使得第一个轴显示的数据方差最大,第二个显示的方差次之,
如此下去。
4. 既然主要成分根据“意义”降序排列,就可以通过去掉较弱的成分(即,方差较小的那些)来
压缩数据。使用最强的主要成分,应当可能重构原数据的很好的近似值。

与数据压缩的小波变换相比,PCA 能较好地处理稀疏数据,而小波变换更适合高维数据。

4. 数值压缩:用替代的、较小的数据表示替换或估计数据,如参数模型(只需要存放模型参数,而不是实际数据)或非参数方法,如聚类、选样和使用直方图。
回归和对数线性模型、直方图、聚类、选样
5. 离散化和概念分层产生:属性的原始值用区间值或较高层的概念替换。概念分层允许挖掘多个抽象层上的数据,是数据挖掘的一种强有力的工具。
五种数值概念分层产生方法:分箱、直方图分析、聚类分析、基于熵的离散化和通过“自然划分”的数据分段
基于熵的离散化的基本方法如下:

自然划分:3-4-5 规则可以用于将数值数据划分成相对一致、“自然的”区间。一般地,该规则根据最重要的数字上的值区域,递归地、逐层地将给定的数据区域划分为3、4 或5 个等长的区间。

数据清理工具(Data scrubbing tool)
数据审计工具(Data auditing tool)
数据迁移工具(Data migration tool)
工具Potter's Wheel   http://control.cs.berkeley.edu/abc/

posted @ 2013-04-11 15:05  sillypudding  阅读(923)  评论(0编辑  收藏  举报