韩家炜数据挖掘概念与技术第3章ppt

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章数据预处理2014-11目录•3.1数据预处理:概览•3.2数据清洗•3.3数据聚合•3.4数据删减•3.5数据转换和数据离散化•3.6总结数据预处理真实世界中的数据库对噪声、缺失、以及不一致的数据是高度敏感的,因为这些数据常常容量很大,并且很可能是多来源的异质数据。数据的低质量会导致低质量的数据挖掘结果。“如何处理数据,以有助于提到数据的质量和数据挖掘的效果呢?数据被如何处理能够提高挖掘过程的高效性和简易型呢?”这里有几种数据预处理的技术,包括:数据清洗,数据聚合,数据删减,数据转换。这些技术能提升挖掘算法的精确性和效率。它们并非相对独立,是共同工作的。比如,数据清洗也包含数据转化以去除错误数据。3.1数据预处理:概览•3.1.1数据质量:为什么做数据预处理?如果数据满足了人们的预期用途的需求,则数据质量好。数据质量包含很多因素,如:精确性、完整性、一致性、时效性、可信性以及可解释性。数据的不精确、不完整以及不一致是大型真实世界数据库以及数据仓库的常见特点。数据的不精确性不精确数据有很多可能的原因:1.数据收集工具可能错误,数据记录中很多人为的或计算机导致的的错误。2.用户也可能在值当他们不愿意暴露个人资料的时候在一些强制必须填写的栏目故意提交了错误的资料(如生日直接用默认值1月1日)。这是一些伪装缺失的数据。3.数据在传输时也可能出错。一些技术上的限制,例如并行同步数据的传输和计算时缓冲区间的有限性。4.不正确的数据也可能因为命名习惯或者数据编码的不一致性,或者输入域的格式不一致。5.重复的元组也需要进行数据清洗。数据的不完整性导致数据的不完整性的原因也有很多:1.感兴趣的属性并不能总是可获得,比如销售交易数据中的客户资料信息。2.另外,很可能因为在当时的条目中,该属性被认为是不重要的。3.相关联的数据没有被记录可能因为误解或者设备故障的原因。不一致的数据和其他数据记录不一致的数据应该被被删掉。另外,数据历史和修改可能被忽视。缺失的数据,特别是缺失了某些属性值的元组,值可能需要被推断。数据质量依赖于人们对数据的预期使用。两个不同的用户可能对一个给定的数据库的质量有不同的评估。比如,一个市场分析员获得了一个由顾客地址列表的数据库。一些地址是过期或错误的,总体上有80%是精确的。市场分析员认为这是一个针对目标市场的很大的客户数据库,对数据的精确性很满意。但是,销售经理可能认为数据是不精确的。数据的时效性时效性也可能影响数据质量:比如你在浏览AllElectronics公式的每月销售奖金的数据分布。一些销售代表在月末的时候没有及时的提交他们的销售记录。在月末之后可能有一些数据的更正和调整。从每个月的时间周期来看,数据库中存放的数据是不完整的。因为月末的数据没有被及时的更新导致了数据质量的负面性影响。数据的可信性和可解释性另外的两个影响数据质量的因素是可信性和可解释性。可信性反映用户有多相信这些数据,可解释性反应数据有多容易被理解。例如一个数据库在某一时刻有一些错误,然后都被更正了。过去的错误导致了销售部门用户的大量问题,因此他们不再相信这些数据。这些数据可能使用了很多会计代码,销售部门不懂如何解释。即使这些数据是精确完整一致和有时效性的,但是仍然被销售部门用户认为是低质量的。3.1.2数据预处理的主要任务•数据预处理的主要步骤是:–数据清洗–数据聚合–数据删减–数据转换数据清洗数据清洗的工作是清洗数据,通过填写缺失的数据,平滑噪音数据,识别需要去除的离群点,以及解决不一致性。如果用户相信数据是脏数据,便不可能信任数据挖掘的结果。另外,脏数据可能导致挖掘过程中的混乱,导致不可靠的输出结果。即使绝大多数的挖掘方法都有处理数据不完整和噪声的步骤,但仍然不够健壮。通常,这些算法集中避免建模的函数对数据的过度拟合。因此,有用的预处理的步骤是把你的数据通过一些数据清洗的例程工作来完成。数据聚合如果你的分析中数据是多来源的,则需要进行数据聚合工作,即聚合多种数据库,数据立方,以及文件。一个给定概念的属性在不同数据库中可能有不同的命名,导致了不一致性和冗余。例如,顾客的主键属性在一个数据库中是custom_id,在另外的数据库却是cust_id。命名的不一致性也可能发生在属性值的上面。例如,一个数据库中人名的第一个名字是”Bill”,在另一个中是”William”,第三个中是”B”.同时,你怀疑一些属性值是由其他属性值计算的(比如年收入)。有大量的冗余数据会让知识发现过程速度降低以及产生混乱。因此,除了数据清洗,必须采取步骤来避免在数据聚合中出现冗余。通常,数据清洗和数据聚合在为数据仓库准备数据时被整合成一个预处理步骤。在数据清洗之外,在鉴别和去除因聚合导致的冗余数据的步骤。数据删减“我被选做分析的数据集非常大,这确信无疑的会减慢挖掘过程。是否有一个方法能够在不影响数据挖掘的效果的情况下减小数据集呢?”这就是数据删减。数据删减能得到一个数据集的删减集,比原来的数据小很多,但是能产生相同的(或几乎相同的)分析结果。数据删减包括维度删减和数据块删减。–维度删减:•维度删减是一种获得原有数据的删减或者压缩集的数据编码方案。•比如,数据压缩技术(小波分析、主成分分析)属性子集选择(去除不相关属性),以及属性构造(如从原有数据集中建立小的更有用的属性)–数据块删减:•数据被可选的更小的数据替换,使用参数模型(如回归和对数-线性模型)或者非参数模型(直方图,聚类,抽样和数据聚集)。数据转换在神经网络、最近邻分类以及聚类分析中,你可能使用一个基于距离的挖掘算法。如果将数据标准化,按比例缩小到一个更小的范围,如[0.0,1.0]中,可能会得到更好的效果。你的顾客数据中可能包含年龄属性和年薪属性。年薪属性会使用一个比年龄大得多的值范围。因此,如果属性是左非规范的,距离测量会在年薪上产生更大的距离权重。离散化和概念层次生成也很有效。用于将原始数据值替换成范围区间或者高层概念层级。例如,原始的年龄值被高层级的概念:年轻人,成年人和老年人替换。离散化和概念层次生成是数据挖掘的强大工具,因为他们允许数据挖掘在更多抽象级别上进行。标准化、离散化和概念层次生成是数据转换的几种形式。多种预处理的形式预处理的作用总之,真实世界中的数据更可能是脏的、不完整和不一致的。数据预处理技术可以提升数据质量,因而提升接下来的挖掘过程的精确性和有效性。数据预处理是知识发现过程的一个重要步骤,因为好的质量抉择基于好的质量的数据。发现数据的异常,在早期进行修正,减少被分析的数据会给决策制定带来巨大的回报。3.2数据清洗•3.2.1缺失值–假设你需要分析AllElectronics的销售和顾客数据。你注意到许多元组在一些属性例如顾客收入上没有记录值。如何能填写这些属性的缺失值呢?有如下方法:•1.忽略元组。常常在类别标签(假定是分类任务)缺失时这样做。这种方法不是非常有效,除非元组包含若干缺失值的属性。当每个属性上缺失的值占的比例变化很大时,这种方法特别糟糕。通过忽略这些元组,也不会使用这些元组剩下的属性值。本来这些数据可以很有用的。•2手工填写缺失值。通常,这种方法耗时,并且对一个有很多缺失值的大型数据集来说并非可行。•3使用一个全局常数来填写缺失值。可以将所有缺失的属性值用同一个常数,例如标签“Unknown”或者”-∞”来表示。如果缺失值被“Unknown”替换,挖掘算法可能错误的认为形成了一个有趣的概念,因为他们都有一个共同的值”Unknown”.因此,即使这种方法很简单,却也并非不会出错。•4使用一个属性的中心性测量来填写缺失值。对于标准(对称的)数据分布,可以使用平均值,对偏斜数据分布可以使用中值。•5.使用给定元组的类别相同的所有样本的均值或者中值。例如,如果根据顾客的信用风险来分类顾客,可以计算和该顾客的信用风险类别相同的所有顾客的收入均值,来填写给定元组的缺失的收入属性。如果对于给定类别数据分布是偏斜的,则使用中值。•6.使用缺失值的最可能的值来填写。值可以由回归、使用Bayes公式的基于推理的工具,或者决策树推理。如,使用你的数据集中的其他顾客的属性,可以建立一个预测顾客缺失的收入值的决策树。–方法3-6改变了数据,即填写的值可能是不正确的。其中,方法6是一种流行的策略。需要重点指出的是,在某些情形,一个缺失的值并非意味着数据的错误!例如,当申请信用卡时,申请者被要求提供驾驶证号码。没有驾驶证的自然就会在这一项不填写。表格应当允许回答者做详细说明,例如“不适合”。软件例程可能被使用来发现其他的空值(例如,“不知道?”或者“空”)。理想情况是,每一个属性有一个或者多个针对空值情形的规则。这些规则可以详细指明空值是否被允许或者种类值如何被处理和转换。属性域可以被留作空白,如果在随后的商业过程中能够被提供。因此,即使在数据被获取之后,我们能够尽力去清洗,好的数据库和数据表过程设计能在第一时间最小化缺失值和错误的数目。3.2.2噪声数据“什么是噪声?”噪声是度量变量的随机错误或者偏差。第2章中介绍的基本统计描述技术(箱子图、散点图)、数据可视化的技术科用来识别离群点,这些可能代表噪声。给定一个数值属性,例如价格,如何来平滑数据以去除噪声呢?有如下技术:1、装箱装箱方法通过参考数据值的“邻居”(即该值周围的数据)来平滑排好序的数据。–排好序的数据被分布到一系列的“桶”,或箱子中。因为装箱方法参考值的邻居,所以使用的是局部平滑。–有若干种装箱技术:•1)等频装箱。例如,价格属性先被排序,然后被分割到箱子的大小为3的等频箱子中。•2)箱子均值平滑。箱子中的每个值被箱子的均值替代。•3)箱子中值平滑。每个箱子值被箱子中值取代。•4)箱子边界平滑。箱子值被最靠近的边界值(最大值或最小值)取代。–箱子的宽度也大,平滑效果也越显著。另外,等宽度的箱子,即每个箱子间隔是个相同的常数也常被使用。箱子技术也是一种数据离散化的技术。–2、回归:•数据平滑也可以使用回归的方法,即将数据值通过一个函数来表达。线性回归是寻找两个属性(或变量)的最好的直线来通过一个属性预测另外一个。多元线性回归是线性回归的扩展。超过两个的属性被包含在其中,数据被拟合成一个高维超平面。–3、离群点分析:•通过聚类的方法可以检测离群点。例如,相似的值被分组,或“簇”。值落在簇之外的被认为是离群点。4、其他方法:很多数据平滑技术也适用于数据离散化和数据削减。例如,装箱技术削减了每个属性的不同值的个数。在基于逻辑的数据挖掘方法例如决策树中,因为需要不断重复的在排序数据上做值的比较,因此这相当于是数据削减。概念分层是数据离散化的一种,可以用来做数据平滑。一个概念分层例如价格,可以映射真实的价格值到便宜、中等、昂贵上。这样削减了挖掘过程需要处理的数据值的个数。一些分类方法有内置的数据平滑机制。3.2.3数据清洗作为一个过程“数据清洗是一个巨大的工作。数据清洗作为一个过程怎么样呢?在处理这个任务是人如何精确的进行呢?有任何可用的工具吗?”数据清洗作为一个过程的第一步是不一致性检测。不一致性可能由多种原因导致:–设计很差的数据表–人为的输入错误–故意的错误(不希望泄露个人信息的回答者),–以及数据延迟(如过期的地址)–还可能因为不一致的数据表达和编码的不一致使用–其他的来源例如测量设备的错误导致的记录数据和系统错误–错误也可能发生在被用于和预期不同的目的时–还有一些不一致性是因为数据聚合导致的(一个给定的属性在不同数据库中使用不同的名称)“那么,如何进行不一致检测呢?”使用任何你事先已经知道的关于数据的相应属性的知识,这种知识被称为“元数据”。例如,数据的类型和每个属性的域是什么?每个属性的可接受的值是什么?基本的统计数据描述(Section2.2)对于获取数据趋势和鉴别异常很有用。例如,寻找均值,中值和众数。数据是对称还是偏斜的?值的取值范围是?所有的值都落在期望的区间吗?每个属性的标准差是多少?值在距离均值两倍标准差的范围外的属性值可能是潜在离群值。属性之间有已知的依赖关系吗?在这个步骤,你可能需要写下你自己的脚本或者

1 / 119
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功