《数据仓库与数据挖掘》主讲:王名扬信息与计算机工程学院2引言目前,数据挖掘的研究工作大都集中在算法的探讨而忽视对数据处理的研究。事实上,数据预处理对数据挖掘十分重要,一些成熟的算法都对其处理的数据集合有一定的要求:比如数据的完整性好,冗余性小,属性的相关性小等。高质量的决策来自高质量的数据,因此数据预处理是整个数据挖掘与知识发现过程中的一个重要步骤。数据挖掘:数据库中的知识挖掘(KDD)–数据挖掘——知识挖掘的核心数据清洗数据集成数据库数据仓库任务相关数据选择数据挖掘模式评估第4章数据预处理5数据预处理的重要性数据预处理是数据挖掘的重要一环,而且必不可少。要使挖掘算法挖掘出有效的知识,必须为其提供干净,准确,简洁的数据。然而,当今现实世界中的数据库极易受到噪声数据、空缺数据和不一致性数据的侵扰,多数为“脏”数据。1)杂乱性:如命名规则的不同如性别:A数据库male=1,female=2B数据库male=‘男’,female=‘女’C数据库male=‘M’,female=‘F’数据预处理的重要性2)重复性:同一客观事物在数据库中存在两个以上相同的物理描述。假设某周刊有100000个订户,邮件列表中0.1%的记录是重复的,主要是因为同一个客户的名字可能有不同的写法,如:JonDoe和JohnDoe。因此,每周需要印刷和邮寄100份额外的刊物,假设每份刊物每周的邮寄和印刷费用是两美元,公司每年将至少浪费1万美元以上。数据预处理的重要性3)不完整性:由于实际系统设计时存在的缺陷以及使用过程中的一些人为因素,数据记录可能会出现数据值的丢失或不确定。原因可能有:(1)有些属性的内容有时没有(家庭收入,参与销售事务数据中的顾客信息)(2)有些数据当时被认为是不必要的(3)由于误解或检测设备失灵导致相关数据没有记录下来(4)与其它记录内容不一致而被删除(5)忽略了历史数据或对数据的修改数据预处理的重要性4)噪声数据:数据中存在着错误或异常(偏离期望值)如:血压和身高为0就是明显的错误噪声数据的产生原因:数据采集设备有问题;在数据录入过程发生人为或计算机错误;数据传输过程中出现错误;由于命名规则或数据代码不同而引起的不一致。数据预处理的重要性数据清理(清洗)----去掉数据中的噪声,纠正不一致数据集成-----将多个数据源合并成一致的数据存储,构成一个完整的数据集,如数据仓库。数据变换(转换)-----将一种格式的数据转换为另一格式的数据(如规范化)数据归约(消减)----通过聚集、删除冗余属性或聚类等方法来压缩数据。数据预处理的常见方法114.1数据清洗4.2数据集成和变换4.3数据归约4.4数据离散化和概念分层*第4章14学习目的掌握数据清洗的处理方法(空缺、噪声、不一致);掌握各种数据归约的方法;理解数据离散化的方法。4.1数据清洗现实世界的数据一般是脏的、不完整的和不一致的。而数据清洗试图填充空缺的值、识别孤立点、消除噪声,并纠正数据中的不一致性。因此,从如下几个方面介绍:(1)空缺值;(2)噪声数据;(3)不一致数据。1.空缺值的处理?17空缺值数据并不总是完整的数据库表中,很多条记录的对应字段可能没有相应值,比如销售表中的顾客收入引起空缺值的原因设备异常与其他已有数据不一致而被删除因为误解而没有被输入的数据在输入时,有些数据因为得不到重视而没有被输入对数据的改变没有进行日志记载空缺值要经过推断而补上。如何处理空缺值1)忽略该元组:若一条记录中有属性值被遗漏了,则将该记录排除在数据挖掘之外;尤其当类标号缺少时通常这样做(假定挖掘任务涉及分类或描述);但是,当某类属性的空缺值所占百分比很大时,直接忽略元组会使挖掘性能变得非常差。如何处理空缺值2)人工填写空缺值:工作量大,可行性低3)使用属性的平均值填充空缺值:如所有顾客的平均收入为$1000,则使用该值替换income中的空缺值。如何处理空缺值4)使用一个全局变量填充空缺值:如:将空缺的属性值用同一个常数(如“Unknown”)替换。如果空缺值都用“Unknown”替换,当空缺值较多时,挖掘程序可能误以为它们形成了一个有趣的概念,因为它们都具有相同的值——“Unknown”。因此,尽管该方法简单,我们并不推荐它。如何处理空缺值5)使用与给定元组属同一类的所有样本的平均值:适用于分类数据挖掘;如将顾客按信用度分类,则用具有相同信用度的顾客的平均收入替换income中的空缺值。6)使用最可能的值填充空缺值(最常用):可以利用回归、贝叶斯计算公式或判定树归纳确定,推断出该条记录特定属性最大可能的取值;如,利用数据集中其他顾客的属性,构造一棵判定树,预测income的空缺值。2.噪声数据的处理?噪声数据噪声(noise):是一个测量变量中的随机错误或偏差引起噪声数据的原因–数据收集工具的问题–数据输入错误–数据传输错误–技术限制–命名规则的不一致如何处理噪声数据1)分箱(binning):分箱方法通过考察“邻居”(即周围的值)来平滑存储数据的值。存储的值被分布到一些“桶”或箱中。由于分箱方法参考相邻的值,因此它进行局部平滑。如何处理噪声数据分箱的步骤:首先排序数据,并将它们分到等深(等宽)的箱中;然后可以按箱的平均值、按箱中值或者按箱的边界等进行平滑。按箱的平均值平滑:箱中每一个值被箱中的平均值替换按箱的中值平滑:箱中的每一个值被箱中的中值替换按箱的边界平滑:箱中的最大和最小值被视为箱边界,箱中的每一个值被最近的边界值替换。如何处理噪声数据①等深分箱(binning):按记录数进行分箱,每箱具有相同的记录数,每箱的记录数称为箱的权重,也称箱子的深度。示例:已知一组价格数据:15,21,24,21,25,4,8,34,28现用等深(深度为3)分箱方法对其进行平滑,以对数据中的噪声进行处理。思考:根据bin中值进行平滑的结果?结果:Bin1:8、8、8;Bin2:21、21、21;Bin3:28、28、28如何处理噪声数据②等宽分箱(binning):在整个属性值的区间上平均分布,即每个箱的区间范围设定为一个常量,称为箱子的宽度。示例:已知一组价格数据:15,21,24,21,25,4,8,34,28现用等宽(宽度为10)分箱方法对其进行平滑,以对数据中的噪声进行处理。结果:先排序:4,8,15,21,21,24,25,28,341)划分为等宽度箱子Bin1:4、8;Bin2:15、21、21、24、25;Bin3:28、342)根据均值进行平滑Bin1:6、6;Bin2:21、21、21、21、21;Bin3:31、313)根据中值进行平滑Bin1:6、6;Bin2:21、21、21、21、21;Bin3:31、314)根据边界进行平滑:Bin1:4、8;Bin2:15、25、25、25、25;Bin3:28、34练习:已知客户收入属性income排序后的值(人民币元):800,1000,1200,1500,1500,1800,2000,2300,2500,2800,3000,3500,4000,4500,4800,5000要求:分别用等深分箱方法(箱深为4)、等宽分箱方法(宽度为1000)对其进行平滑,以对数据中的噪声进行处理。(1)等深分箱结果:(1)首先,划分为等深的箱:箱1(800,1000,1200,1500);箱2(1500,1800,2000,2300);箱3(2500,2800,3000,3500);箱4(4000,4500,4800,5000)(2)按箱的平均值平滑,结果为:箱1(1125,1125,1125,1125);箱2(1900,1900,1900,1900);箱3(2950,2950,2950,2950);箱4(4575,4575,4575,4575)(1)等深分箱结果:(2)按箱的中值平滑,结果为:箱1(1100,1100,1100,1100);箱2(1900,1900,1900,1900);箱3(2900,2900,2900,2900);箱4(4650,4650,4650,4650)(2)按箱的边界值平滑,结果为:箱1(800,800,1500,1500);箱2(1500,1500,2300,2300);箱3(2500,2500,3500,3500);箱4(4000,4000,5000,5000)(2)等宽分箱结果:(1)首先,划分为等宽的箱:箱1(800,1000,1200,1500,1500,1800);箱2(2000,2300,2500,2800,3000);箱3(3500,4000,4500);箱4(4800,5000)(2)按箱的平均值平滑,结果为:箱1(1300,1300,1300,1300,1300,1300);箱2(2520,2520,2520,2520,2520);箱3(4000,4000,4000);箱4(4900,4900)(2)等宽分箱结果:(1)按箱的中值平滑,结果为:箱1(1350,1350,1350,1350,1350,1350);箱2(2500,2500,2500,2500,2500);箱3(4000,4000,4000);箱4(4900,4900)(2)按箱的边界值平滑,结果为:箱1(800,800,800,1800,1800,1800);箱2(2000,2000,3000,3000,3000);箱3(3500,3500,4000);箱4(4800,5000)如何处理噪声数据2)聚类(Clustering):相似或相邻近的数据聚合在一起形成各个聚类集合,而那些位于聚类集合之外的数据对象,被视为孤立点。特点:直接形成簇并对簇进行描述,不需要任何先验知识。通过聚类分析查找孤立点,消除噪声如何处理噪声数据3)计算机和人工检查结合计算机检测可疑数据,然后对它们进行人工判断4)回归发现两个相关的变量之间的变化模式,利用回归分析方法所获得的拟合函数,帮助平滑数据及除去噪声。xyy=x+1X1Y1Y1’3.不一致数据的处理?40不一致数据处理不一致数据的方式:人工更正利用知识工程工具:如,如果知道属性间的函数依赖关系,可以据此查找违反函数依赖的值。数据字典:在将不同操作性数据库中的数据进行集成时,也会带来数据的不一致。如:一个给定的属性在不同的数据库中可能具有不同的名字,如姓名在一个数据库中为Bill,在另一个数据库中可能为B。对此,可根据数据字典中提供的信息,消除不一致。4.2数据集成和变换数据挖掘所需要的海量数据集往往涉及多个数据源,因此,在信息处理之前需要合并这些数据源存储的数据。如果原始数据的形式不适合信息处理算法的需要,就要进行数据变换。1)数据集成:将来自多个数据源的数据合并到一起:2)数据变换:对数据进行规范化操作,将其转换成适合于数据挖掘的形式。1.数据集成?43数据集成数据集成将多个数据源中的数据整合到一个一致的存储中。这些源可以是关系型数据库、数据立方体或一般文件。它需要统一原始数据中的所有矛盾之处,如字段的:同名异义;异名同义;单位不统一;字长不一致等。44数据集成集成过程中需要注意的问题模式集成问题;冗余问题;数据值冲突检测与消除。45(1)模式集成问题模式集成:整合不同数据源中的元数据;进行实体识别:匹配来自不同数据源的现实世界的实体如:如何确信一个数据库中的customer_id和另一个数据库中的cust_number是同一实体。通常,数据库的数据字典和数据仓库的元数据,可帮助避免模式集成中的错误。46(2)数据冗余问题数据冗余问题:同一属性值不同的数据库中会有不同的字段名;一个属性可以由另外一个表导出,如:一个顾客数据表中的平均月收入属性,可以根据月收入属性计算出来。47(2)数据冗余问题数据冗余问题:有些冗余可以被相关分析检测到:BABAnBBAAr)1())((,如果变量A、B间具有较高的相关系数,表明A或B可以作为冗余而去掉。除