第三章 数据预处理

您所在的位置:网站首页 忽略什么意思忽略 第三章 数据预处理

第三章 数据预处理

2024-07-02 16:22| 来源: 网络整理| 查看: 265

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

        有大量数据预处理技术。数据清理可以清除数据中的噪声,纠正不一致。数据集成将数据由多个数据源合并成一致的数据存储,如数据仓库。数据归约可以通过如聚集、删除冗余特征或聚类来降低数据的规模。数据变换(例如,规范化)可以用来把数据压缩到较小的区间,如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_priced和expensive,从而减少了挖掘过程需要处理的值的数量。

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

      (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):从D的N个元组中抽取s个样本(s



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3