第三章 数据预处理

        当今现实世界的数据库极易受噪声缺失值不一致数据的侵扰,因为数据库太大(常常多达数兆兆字节,甚至更多)。“如何对数据进行预处理,提高数据质量,从而提高挖掘结果的质量? 如何对数据预处理,使得挖掘过程更加有效、更加容易?”

        有大量数据预处理技术。数据清理可以清除数据中的噪声,纠正不一致。数据集成将数据由多个数据源合并成一致的数据存储,如数据仓库。数据归约可以通过如聚集、删除冗余特征或聚类来降低数据的规模。数据变换(例如,规范化)可以用来把数据压缩到较小的区间,如0.0到1.0。这可以提高涉及距离度量的挖掘算法的精确率和效率。这些技术不是相互排斥的,可以一起使用。例如,数据清理可能涉及纠正错误数据的变换,如通过把一个数据字段的所有项都变换成公共格式进行数据清理。

1、数据预处理:概述

1.1  数据质量:为什么要对数据预处理

        数据如果能满足其应用要求,那么它是高质量的。数据质量涉及许多因素,包括准确性、完整性、一致性、时效性、可信性和可解释性。

        不正确、不完整和不一致的数据是现实世界大型数据库和数据仓库的共同特点。

        导致不正确的数据(即具有不正确的属性值)可能有多种原因:收集数据的设备可能出故障;人或计算机的错误可能在数据输入时出现;当用户不希望提交个人信息时,可能故意向强制输入字段输入不正确的值(例如,为生日选择默认值“1月1日”)。这称为被掩盖的缺失数据。错误也可能在数据传输中出现。这可能是由于技术的限制。不正确的数据也可能是由命名约定或所用的数据代码不一致,或输入字段(如日期)的格式不一致而导致。

        不完整数据的出现可能有多种原因。有些感兴趣的属性,如销售事务数据中顾客的信息,并非总是可以得到的。其它数据没有包含在内,可能只是因为输入时认为是不重要的。相关数据没有记录可能是由于理解错误,或者因为设备故障。与其它记录不一致的数据可能已经被删除。此外,历史或修改的数据可能被忽略。缺失的数据,特别是某些属性上缺失值的元组,可能需要推导出来。

        数据质量依赖于数据的应用。对于给定的数据库,两个不同的用户可能有完全不同的评估。

        时效性也影响数据的质量。

        影响数据质量的另外两个因素是可信性可解释性。可信性反映有多少数据是用户信赖的,而可解释性反映数据是否容易理解。

1.2  数据预处理的主要任务

        数据预处理的主要步骤:数据清理、数据集成、数据规约和数据变换。

        数据清理例程通过填写缺失的值,光滑噪声数据,识别或删除离群点,并解决不一致来“清理”数据。

        数据集成涉及集成多个数据库、数据立方体或文件。代表同一概念的属性在不同的数据库中可能具有不同的名字,这又导致不一致性和冗余。有些属性可能是由其它属性导出的(例如,年收入)。除数据清理之外,必须采取步骤,避免数据集成时的冗余。通常,在为数据仓库准备数据时,数据清理和集成将作为预处理步骤进行。还可以再次进行数据清理,检测和删去可能由集成导致的冗余。

        数据归约得到数据集的简化表示,它小得多,但能够产生同样的(或几乎同样的)分析结果。数据规约策略包括维归约和数值规约。

        在维规约中,使用数据编码方案,以便得到原始数据的简化或“压缩”表示。例子包括数据压缩技术(例如,小波变换和主成分分析),以及属性子集选择(例如,去掉不相关的属性)和属性构造(例如,从原来的属性集导出更有用的小属性集)。

        在数值规约中,使用参数模型(例如,回归和对数线性模型)或非参数模型(例如,直方图、聚类、抽样或数据聚集),用较小的表示取代数据。

        回到你的数据,假设你决定使用诸如神经网络、最近邻分类或聚类这样的基于距离的挖掘算法进行你的分析。如果待分析的数据已经规范化,即按比例映射到一个较小的区间(例如,[0.0,1.0]),则这些方法将得到更好的结果。离散化和概念分层产生也可能是有用的,那里属性的原始值被区间或较高层的概念所取代。例如,年龄的原始值可以用较高层的概念(如青年、中年和老年)取代。对于数据挖掘而言,离散化概念分层产生是强有力的工具,因为它们使得数据的挖掘可以在多个抽象层上进行。规范化、数据离散化和概念分层产生都是某种形式的数据变换。数据变换操作是引导挖掘过程成功的附加的预处理过程。

        上面的分类不是互斥的。例如,冗余数据的删除既是一种数据清理形式,也是一种数据规约形式。


图1  数据预处理的形式

        数据预处理技术可以改进数据的质量,从而有助于提高其后的挖掘过程的准确率和效率。

2、数据清理

        现实世界的数据一般是不完整的、有噪声的和不一致的。数据清理例程试图填充缺失的值,光滑噪声和识别离群点,并纠正数据中的不一致。

2.1  缺失值

        想象你要分析AllElectronics的销售和顾客数据。你注意到许多元组的一些属性(如顾客的income)没有记录值。怎样才能为该属性填上缺失的值?让我们看看下面的方法,

      (1)忽略元组:当类标号缺少时通常这样做(假定挖掘任务涉及分类)。除非元组有多个属性缺少值,否则该方法不是很有效。当每个属性缺失值的百分比变化很大时,它的性能特别差。

      (2)人工填写缺失值:一般地说,该方法很费时,并且当数据集很大、缺少很多值时,该方法可能行不通。

      (3)使用一个全局常量填充缺失值将缺失的属性值用同一个常量(如“Unknown”或 –¥)替换。如果缺失的值都用“Unknown”替换,则挖掘程序可能误以为它们形成了一个有趣的概念,因为它们都具有相同的值——“Unknown”。因此,尽管该方法简单,但是并不十分可靠。

      (4)使用属性的中心度量(如均值或中位数)填充缺失值对于正常的(对称的)数据分布而言,可以使用均值,而倾斜数据分布应该使用中位数。例如,假定AllElectronics的顾客的平均收入为$28,000,则使用该值替换income中的缺失值。

      (5)使用与给定元组属同一类的所有样本的属性均值或中位数例如,如果将顾客按credit_risk分类,则用具有相同信用风险的顾客的平均收入替换income中的缺失值。如果给定类的数据分布是倾斜的,则中位数是更好的选择。

      (6)使用最可能的值填充缺失值可以用回归、使用贝叶斯形式化方法的基于推理的工具或决策树归纳确定。例如,利用数据集中其他顾客的属性,可以构造一棵判定树,来预测income的缺失值。

        方法(3)到(6)使数据有偏,填入的值可能不正确。然而,方法(6)是最流行的策略。与其它方法相比,它使用已有数据的大部分信息来推测缺失值。在估计income的缺失值时,通过考虑其它属性的值,有更大的机会保持income和其它属性之间的联系。

        在某些情况下,缺失值并不意味着有错误。理想情况下,每个属性都应当有一个或多个关于空值条件的规则。这些规则可以说明是否允许空值,并且/或者说明这样的空值应当如何处理或转换。

2.2  噪声数据

        噪声是被测量变量的随机误差或方差。给定一个数值属性,例如price,我们怎样才能“光滑”数据,去掉噪声?让我们看看下面的数据光滑技术。

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


图2 数据光滑的分箱方法

        用箱均值光滑:箱中每一个值被箱中的平均值替换。

        用箱中位数平滑:箱中的每一个值被箱中的中位数替换。

        用箱边界平滑:箱中的最大和最小值同样被视为边界。箱中的每一个值被最近的边界值替换。

        一般而言,宽度越大,光滑效果越明显。箱也可以是等宽的,其中每个箱值的区间范围是个常量。分箱也可以作为一种离散化技术使用,

        回归:也可以用一个函数拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性能够预测另一个。多线性回归是线性回归的扩展,它涉及多于两个属性,并且数据拟合到一个多维面。使用回归,找出适合数据的数学方程式,能够帮助消除噪声。

        离群点分析:可以通过如聚类来检测离群点。聚类将类似的值组织成群或“簇”。直观地,落在簇集合之外的值被视为离群点。


图3  顾客在城市中的位置的2—D图,显示了3个数据簇。

                                                             可以将离群点看作落在簇集合之外的值来检测

        许多数据光滑的方法也用于数据离散化(一种数据变换方式)和数据归约。例如,上面介绍的分箱技术减少了每个属性的不同值的数量。对于基于逻辑的数据挖掘方法(

决策树归纳),这充当了一种形式的数据归约。概念分层是一种数据离散化形式,也可以用于数据平滑。例如,price的概念分层可以把实际的price的值映射到inexpensive

moderately_pricedexpensive,从而减少了挖掘过程需要处理的值的数量。

2.3  不一致数据

        对于有些事务,所记录的数据可能存在不一致。有些数据不一致可以使用其它材料人工地加以更正。例如,数据输入时的错误可以使用纸上的记录加以更正。这可以与用来帮助纠正编码不一致的例程一块使用。知识工程工具也可以用来检测违反限制的数据。例如,知道属性间的函数依赖,可以查找违反函数依赖的值。

3、数据集成

        数据挖掘经常需要数据集成——合并来自多个数据存储的数据。小心集成有助于减少结果数据集的冗余和不一致。这有助于提高其后挖掘过程的准确性和速度。

3.1  实体识别问题

        模式集成和对象匹配可能需要技巧。来自多个信息源的现实世界的等价实体如何才能“匹配”?这涉及实体识别问题。例如,数据分析者或计算机如何才能确信一个数据库中的customer_id和另一个数据库中的cust_number指的是同一实体?每个属性的元数据包括名字、含义、数据类型和属性的允许取值范围,以及处理空白、零或NULL值的空值规则。通常,数据库和数据仓库有元数据——关于数据的数据。这种元数据可以帮助避免模式集成的错误。元数据还可以用来帮助变换数据。

在集成期间,当一个数据库的属性与另一个数据库的属性匹配时,必须特别注意数据的结构。这旨在确保源系统中的函数依赖和参照约束与目标系统中的匹配。

3.2  冗余和相关分析

        冗余是数据集成的另一个重要问题。一个属性(例如,年收入)如果它能由另一个或另一组属性“导出”,则这个属性可能是冗余的。属性或维命名的不一致也可能导致数据集中的冗余。

        有些冗余可以被相关分析检测到。例如,给定两个属性,根据可用的数据,这种分析可以度量一个属性能在多大程度上蕴涵另一个。对于标称数据,我们使用卡方检验。对于数值属性,我们使用相关系数和协方差,它们都评估一个属性的值如何随另一个变化。

3.3  元组重复

         除了检测属性间的冗余外,还应当在元组级检测重复(例如,对于给定的唯一数据实体,存在两个或多个相同的元组)。

3.4  数据值冲突的检测与处理

        数据集成还涉及数据值冲突的检测与处理。例如,对于现实世界的同一实体,来自不同数据源的属性值可能不同。这可能是因为表示、尺度或编码不同。例如,重量属性可能在一个系统中以公制单位存放,而在另一个系统中以英制单位存放。

        属性也可能在不同的抽象层,其中属性在一个系统中记录的抽象层可能比另一个系统中“相同的“属性低。

4、数据规约

        数据归约技术可以用来得到数据集的归约表示,它小得多,但仍接近地保持原数据的完整性。也就是说,在归约后的数据集上挖掘将更有效,仍然产生相同(或几乎相同)的分析结果。

4.1  数据规约策略概述

        数据规约策略包括维归约、数量规约和数据压缩。

        维归约减少所考虑的随机变量或属性的个数。维归约方法包括小波变换和主成分分析,它们把原数据变换或投影到较小的空间。属性子集选择是一种维归约方法,其中,不相关、弱相关或冗余的属性或维被检测和删除。

        数量规约用替代的、较小的数据表示形式替换原数据。这些技术可以是参数的或非参数的。对于参数方法而言,使用模型估计数据,使得一般只需要存放模型参数,而不是实际数据(离群点可能也要存放)。回归和对数—线性模型就是例子。存放数据规约表示的非参数方法包括直方图、聚类、抽样和数据立方体聚集。

        数据压缩使用变换,以便得到原数据的规约或“压缩“表示。如果原数据能够从压缩后的数据重构,而不损失信息,则该数据规约称为无损的。如果我们只能近似重构原数据,则该数据规约称为有损的

4.2  小波变换

        此处略,因为小波知识在此很难介绍清楚。

4.3  主成分分析

        假定待规约的数据由n个属性或维描述的元组或数据向量组成。主成分分析PCA,又称Karhunen-Loeve或K-L方法)搜索k个最能代表数据的n维正交向量,其中k£n。这样,原来的数据投影到一个小得多的空间上,导致维规约。然而,不像属性子集选择通过保留原属性集的一个子集来减少属性集的大小,PCA通过创建一个替换的、较小的变量集“组合”属性的基本要素。原数据可以投影到该较小的集合中。PCA常常能够揭示先前未曾察觉的联系,并因此允许解释不寻常的结果。

        基本过程如下:

      (1)对输入数据规范化,使得每个属性都落入相同的区间。此步有助于确保具有较大定义域的属性不会支配具有较小定义域的属性。

      (2)PCA计算k个标准正交向量,作为规范化输入数据的基。这些是单位向量,每一个都垂直于其他向量。这些向量称为主成分。输入数据是主成分的线性组合。

      (3)对主成分按“重要性”或强度降序排列。主成分本质上充当数据的新坐标系,提供关于方差的重要信息。也就是说,对坐标轴进行排序,使得第一个轴显示的数据方差最大,第二个显示的方差次之,如此下去。例如,下图显示原来映射到轴X1X2的给定数据集的两个主要成分Y1Y2。这一信息帮助识别数据中的组群或模式。

      (4)既然主要成分根据“重要性”降序排列,就可以通过去掉较弱的成分(即,方差较小的那些)来规约数据。使用最强的主成分,应当能够重构原数据的很好的近似。


图4主成分分析。Y1和Y2是给

定数据的前两个主成分

        PCA可以用于有序和无序的属性,并且可以处理稀疏和倾斜数据。多于二维的多维数据可以通过将问题规约为二维问题来处理。主成分可以用作多元回归和聚类分析的输入。与小波变换相比,PCA能够更好地处理稀疏数据,而小波变换更适合高维数据。 参考:主成分分析(1)  主成分分析(2)

4.4  属性子集选择

        属性子集选择通过删除不相关或冗余的属性(或维)减少数据量。属性子集选择的目标是找出最小属性集,使得数据类的概率分布尽可能地接近使用所有属性的原分布。在缩小的属性集上挖掘还有其它的优点:它减少了出现在发现模式上的属性数目,使得模式更易于理解。

        “如何找出原属性的一个‘好的’子集?”对于属性子集选择,通常使用压缩搜索空间的启发式算法。通常,这些算法是贪心算法,在搜索属性空间时,总是做看上去是最佳的选择。它们的策略是做局部最优选择,期望由此导致全局最优解。在实践中,这种贪心方法是有效的,并可以逼近最优解。

        “最好的”(或“最差的”)属性通常使用统计显著性检验来确定。这种检验假定属性是相互独立的。也可以使用一些其它属性评估度量,如建立分类决策树使用的信息增益度量。

         属性子集选择的基本启发式方法包括以下技术,其中一些图示在下图中。


图5  属性子集选择的贪心(启发式)方法

        (1)逐步向前选择该过程由空属性集开始,选择原属性集中最好的属性,并将它添加到该集合中。在其后的每一次迭代,将原属性集剩下的属性中的最好的属性添加到该集合中。

        (2)逐步向后删除该过程由整个属性集开始。在每一步,删除掉尚在属性集中的最坏属性。

        (3)向前选择和向后删除的结合向前选择和向后删除方法可以结合在一起,每一步选择一个最好的属性,并在剩余属性中删除一个最坏的属性。

        (4)决策树归纳决策树算法,(例如,ID3、C4.5和CART)最初是用于分类的。决策树归纳构造一个类似于流程图的结构,其每个内部(非树叶)结点表示一个属性上的测试,每个分枝对应于测试的一个结果;每个外部(树叶)结点表示一个类预测。在每个结点,算法选择“最好”的属性,将数据划分成类。

        子集评估:子集产生过程所生成的每个子集都需要用事先确定的评估准则进行评估,并且与先前符合准则最好的子集进行比较,如果它更好一些,那么就用它替换前一个最优的子集。如果没有一个合适的停止规则,在属性选择进程停止前,他可能无穷无尽地运行下去。

        这些方法的结束条件可以不同。该过程可以使用一个度量阈值来确定何时停止属性选择过程。属性选择过程可以在满足一下条件之一时停止:(1)一个预先定义所要选择的属性数(2)预先定义的迭代次数(3)是否增加(或删除)任何属性都不产生更好的子集。

        在某些情况下,我们可能基于其他属性创建一些新属性。这种属性构造可以帮助提高准确性和对高维数据结构的理解。通过组合属性,属性构造可以发现关于数据属性间联系的缺失信息,这对知识发现是有用的。 

4.5  回归和对数线性模型:参数化数据规约

        回归和对数线性模型可以用来近似给定的数据。在线性回归中,对数据建模,使之拟合到一条直线。例如,可以用以下公式,将随机变量Y(称作因变量)表示为另一随机变量X(称为自变量)的线性函数


其中,假定Y的方差是常量。系数a和b(称为回归系数)分别为直线的Y轴截取和斜率。系数可以用最小二乘法求得,使得分离数据的实际直线与该直线间的误差最小。多元回归是线性回归的扩充,允许用两个或多个自变量的线性函数对因变量Y建模。

        对数线性模型近似离散的多维概率分布。给定n维(例如,用n个属性描述)元组的集合,我们可以把每个元组看做n维空间的点。对于离散属性集,可以使用对数线性模型,基于维组合的一个较小子集,估计多维空间中每个点的概率。这使得高维数据空间可以由较低维空间构造。因此,对数线性模型也可以用于维归约和数据光滑。

        回归和对数线性模型都可以用于稀疏数据,尽管它们的应用可能是受限的。虽然两种方法都可以处理倾斜数据,但是回归可望更好。当用于高维数据时,回归可能是计算密集的,而对数线性模型表现出很好的可伸缩性,可以扩展到10维左右。

4.6  直方图

        直方图使用分箱近似数据分布,是一种流行的数据归约形式。属性A的直方图将A的数据分布划分为不相交的子集或桶。桶安放在水平轴上,而桶的高度(和面积)是该桶所代表的值的平均频率。如果每个桶只代表单个属性值/频率对,则该桶称为单值桶。通常,桶表示给定属性的一个连续区间。


                                  图6  使用单值桶的price直方图—每个                                                                      图7  price的等宽直方图,值被聚集使得

               桶代表一个price值/频率对                                                                                   每个桶都有一致的宽度即10美元

        “如何确定桶和属性值的划分?”有一些划分规则,包括下面的一些:

       (1)等宽:在等宽直方图中,每个桶的宽度区间是一致的(如图中每个桶的宽度为$10)。

       (2)等频(或等深):在等深的直方图中,桶这样创建,使得每个桶的频率粗略地为常数(即,每个桶大致包含相同个数的邻近数据样本)。

         对于近似稀疏和稠密数据,以及高倾斜和一致的数据,直方图是高度有效的。上面介绍的单属性直方图可以推广到多个属性。多维直方图可以表现属性间的依赖。业已发现,这种直方图对于多达5个属性能够有效地近似数据。对于更高维,多维直方图的有效性尚需进一步研究。对于存放具有高频率的离群点,单值桶是有用的。

4.7  聚类

        在数据归约时,用数据的簇代表替换实际数据。该技术的有效性依赖于数据的性质。

        对于被污染的数据,对于能够组织成不同的簇的数据,该技术有效得多。

4.8  抽样

        抽样可以作为一种数据归约技术使用,因为它允许用数据的小得多的随机样本(子集)表示大型数据集。假定大型数据集D包含N个元组。我们看看可以用于数据规约的、最常用的对D的抽样方法。

        S个样本的无放回简单随机抽样 (SRSWOR):从DN个元组中抽取s个样本(s<N);其中D中任何元组被抽取的概率均为1/N。即,所有元组是等可能的。

        S个样本的有放回简单随机抽样(SRSWR)该方法类似于SRSWOR,不同在于当一个元组被抽取后,记录它,然后放回去。这样,一个元组被抽取后,它又被放回D,以便它可以再次被抽取。

        簇抽样如果D中的元组被分组放入M个互不相交的“簇”,则可以得到簇的s个简单随机抽样(SRS),其中s <M。例如,数据库中元组通常一次取一页,这样每页就可以视为一个簇。例如,可以将SRSWOR用于页,得到元组的簇样本,由此得到数据的归约表示。

        分层抽样如果D被划分成互不相交的部分,称作“层”,则通过对每一层的简单随机抽样(SRS)就可以得到D的分层抽样。特别是当数据倾斜时,这可以帮助确保样本的代表性。例如,可以得到关于顾客数据的一个分层抽样,其中分层对顾客的每个年龄组创建。这样,具有最少顾客数目的年龄组肯定能够被代表。


图8 抽样可以用于数据规约

        采用抽样进行数据归约的优点是,得到样本的花费正比例于样本集的大小s,而不是数据集的大小N。因此,抽样的复杂度可能亚线性(sublinear)于数据的大小。其它数据归约技术至少需要完全扫描D。对于固定的样本大小,抽样的复杂度仅随数据的维数n线性地增加;而其它技术,如使用直方图,复杂度随d呈指数增长。

4.9  数据立方体聚集

        一个聚集如下图所示。结果数据量小得多,但并不丢失分析任务所需的信息。


图9AllElectronics的给定分店2008年到2010年的销售数据。左部,销售数据按

                                                     季度显示。右部,数据聚集以提供年销售额

        数据立方体前面已经稍微介绍。在最低抽象层创建的立方体称为基本方体。基本方体应当对应于感兴趣的个体实体。换言之,最底层应当是对于分析可用的或有用的。最高层抽象的立方体称为顶点方体。对不同层创建的数据立方体称为方体,因此“数据立方体”可以看做方体的格。

5、数据变换与数据离散化

        在数据预处理阶段,数据被变换或统一,使得挖掘过程可能更有效,挖掘的模式可能更容易理解。数据离散化是一种数据变换形式。

5.1  数据变换策略概述

        数据变换策略包括如下几种:

      (1)光滑:去掉数据中的噪音。这种技术包括分箱、聚类和回归。

      (2)属性构造(或特征构造):可以由给定的属性构造新的属性并添加到属性集中,以帮助挖掘过程。

      (3)聚集:对数据进行汇总和聚集。例如,可以聚集日销售数据,计算月和年销售量。通常,这一步用来为多个抽象层的数据分析构造数据立方体。

      (4)规范化:把属性数据按比例缩放,使之落入一个特定的小区间,如-1.0到1.0或0.0到1.0。

      (5)离散化:数值属性(例如,年龄)的原始值用区间标签(例如,0到10,11到20等)或概念标签(例如,youth,adult,senior)替换。这些标签可以递归地组织成更高层概念,导致数值属性的概念分层。

      (6)由标称数据产生概念分层:属性,如street,可以泛化到较高的概念层,如city或country。

5.2  通过规范化变换数据

        规范化数据视图赋予所有属性相等的权重。

        有许多数据规范化的方法,我们将学习三种:最小-最大规范化、z-score规范化和按小数定标规范化。在我们的讨论中,令A是数值属性,具有n个观测值v1,v2,…,vn

        最小-最大规范化对原始数据进行线性变换。假定和分别为属性A的最小和最大值。最小-最大规范化通过计算


A的值vi映射到区间[,]中的vi’。

        最小-最大规范化保持原始数据值之间的联系。如果今后的输入实例落在A的原数据值域之外,则该方法将面临“越界”错误。

        在z分数规范化(或零-均值规范化)中,基于A的平均值和标准差规范化。A的值vi被规范化为vi,由下式计算:


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

        小数定标规范化通过移动属性A的值的小数点位置进行规范化。小数点的移动位数依赖于A的最大绝对值。A的值vi被规范化为vi,由下式计算:


其中,j是使得Max(|v’|) < 1的最小整数。

5.3  通过分箱离散化

        分箱是一种基于指定的箱个数的自顶向下的分裂技术。前面光滑噪声时已经介绍。

        分箱并不使用类信息,因此是一种非监督的离散化技术。它对用户指定的箱个数很敏感,也容易受离群点的影响。

5.4  通过直方图分析离散化

         像分箱一样,直方图分析也是一种非监督离散化技术,因为它也不使用类信息。直方图把属性A的值划分成不相交的区间,称作桶或箱。

         可以使用各种划分规则定义直方图。例如,在等宽直方图中,将值分成相等分区或区间(例如,属性price,其中每个桶宽度为10美元)。理想情况下,使用等频直方图,值被划分,使得每个分区包括相同个数的数据元组。

5.5  通过聚类、决策树和相关分析离散化

        聚类分析是一种流行的离散化方法。通过将属性A的值划分成簇或组,聚类算法可以用来离散化数值属性A。聚类考虑A的分布以及数据点的邻近性,因此可以产生高质量的离散化结果。

        为分类生成决策树的技术可以用来离散化。这类技术使用自顶向下划分方法。离散化的决策树方法是监督的,因为它使用类标号。 其主要思想是,选择划分点使得一个给定的结果分区包含尽可能多的同类元组。

        相关性度量也可以用于离散化。ChiMerge是一种基于卡方的离散化方法。它采用自底向上的策略,递归地找出最近邻的区间,然后合并它们,形成较大的区间。ChiMerge是监督的,因为它使用类信息。过程如下:初始时,把数值属性A的每个不同值看做一个区间。对每对相邻区间进行卡方检验。具有最小卡方值的相邻区间合并在一起,因为低卡方值表明它们具有相似的类分布。该合并过程递归地进行,直到满足预先定义的终止条件。

5.6  标称数据的概念分层产生

        概念分层可以用来把数据变换到多个粒度值。

        下面我们研究四种标称数据概念分层的产生方法。

      (1)由用户或专家在模式级显式地说明属性的部分序通常,分类属性或维的概念分层涉及一组属性。用户或专家在模式级通过说明属性的部分序或全序,可以很容易地定义概念分层。例如,关系数据库或数据仓库的维location可能包含如下一组属性:street,city, province_or_statecountry。可以在模式级说明一个全序,如street,来定义分层结构。

      (2)通过显式数据分组说明分层结构的一部分这基本上是人工地定义概念分层结构的一部分。在大型数据库中,通过显式的值枚举定义整个概念分层是不现实的。然而,对于一小部分中间层数据,我们可以很容易地显示说明分组。例如,在模式级说明了province和country形成一个分层后,用户可以人工地添加某些中间层。如显式地定义“{Albert, Sakatchewan, Manitoba}Ì prairies_Canada”和“{British Columbia,prairies_Canada} ÌWestern_Canada”。

      (3)说明属性集,但不说明它们的偏序用户可以说明一个属性集,形成概念分层,但并不显式说明它们的偏序。然后,系统可以试图自动地产生属性的序,构造有意义的概念分层。

        “没有数据语义的知识,如何找出一个任意的分类属性集的分层序?”考虑下面的观察:由于一个较高层的概念通常包含若干从属的较低层概念,定义在高概念层的属性与定义在较低概念层的属性相比,通常包含较少数目的不同值。根据这一事实,可以根据给定属性集中每个属性不同值的个数,自动地产生概念分层。具有最多不同值的属性放在分层结构的最低层。一个属性的不同值个数越少,它在所产生的概念分层结构中所处的层越高。在许多情况下,这种启发式规则都很顶用。在考察了所产生的分层之后,如果必要,局部层次交换或调整可以由用户或专家来做。

        注意,这种启发式规并非万无一失。例如,在一个数据库中,时间维可能包含20个不同的年,12个不同的月,每星期7个不同的天。然而,这并不意味时间分层应当是“year < month < days_of_the_week”, days_of_the_week在分层结构的最顶层。

     (4)只说明部分属性集在定义分层时,有时用户可能不小心,或者对于分层结构中应当包含什么只有很模糊的想法。结果,用户可能在分层结构说明中只包含了相关属性的一小部分。例如,用户可能没有包含location所有分层的相关属性,而只说明了streetcity。为了处理这种部分说明的分层结构,重要的是在数据库模式中嵌入数据语义,使得语义密切相关的属性能够捆在一起。用这种办法,一个属性的说明可能触发整个语义密切相关的属性被“拖进”,形成一个完整的分层结构。然而,必要时,用户应当可以忽略这一特性。

        总之,模式和属性值计数信息都可以用来产生标称数据的概念分层。使用概念分层变换数据使得较高层的知识模式可以被发现。它允许在多个抽象层上进行挖掘。

 

 

 

 

 

你可能感兴趣的:(数据挖掘)