Microsoft Word - 第二章 数据预处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于数据库系统所获数据量的迅速膨胀(已达 或 数量级),从而导致了现实世界数据库中常常包含许多含有噪声、不完整( )、甚至是不一致( )的数据。显然对数据挖掘所涉及的数据对象必须进行预处理。那么如何对数据进行预处理以改善数据质量,并最终达到完善最终的数据挖掘结果之目的呢?
数据预处理主要包括:数据清洗( )、数据集成( )、数据转换( )和数据消减( )。本章将介绍这四种数据预处理的基本处理方法。
数据预处理是数据挖掘(知识发现)过程中的一个重要步骤,尤其是在对包含有噪声、不完整,甚至是不一致数据进行数据挖掘时,更需要进行数据的预处理,以提高数据挖掘对象的质量,并最终达到提高数据挖掘所获模式知识质量的目的。例如:对于一个负责进行公司销售数据分析的商场主管,他会仔细检查公司数据库或数据仓库内容,精心挑选与挖掘任务相关数据对象的描述特征或数据仓库的维度( ),这包括:商品类型、价格、销售量等,但这时他或许会发现有数据库中有几条记录的一些特征值没有被记录下来;甚至数据库中的数据记录还存在着一些错误、不寻常( )、甚至是不一致情况,对于这样的数据对象进行数据挖掘,显然就首先必须进行数据的预处理,然后才能进行正式的数据挖掘工作。
所谓噪声数据是指数据中存在着错误、或异常(偏离期望值)的数据;不完整( )数据是指感兴趣的属性没有值;而不一致数据则是指数据内涵出现不一致情况(如:作为关键字的同一部门编码出现不同值)。而数据清洗是指消除数据中所存在的噪声以及纠正其不一致的错误;数据集成则是指将来自多个数据源的数据合并到一起构成一个完整的数据集;数据转换是指将一种格式的数据转换为另一种格式的数据;最后数据消减是指通过删除冗余特征或聚类消除多余数据。
不完整、有噪声和不一致对大规模现实世界的数据库来讲是非常普遍的情况。不完整数据的产生有以下几个原因:( )有些属性的内容有时没有,如:参与销售事务数据中的顾客信息;( )有些数据当时被认为是不必要的;( )由于
误解或检测设备失灵导致相关数据没有记录下来;( )与其它记录内容不一致而被删除;( )历史记录或对数据的修改被忽略了。遗失数据( ),尤其是一些关键属性的遗失数据或许需要推导出来。噪声数据的产生原因有:( )数据采集设备有问题;( )在数据录入过程发生了人为或计算机错误;( )数据传输过程中发生错误;如:由于技术限制(有限通讯缓冲区);( )由于命名规则( )或数据代码不同而引起的不一致。数据清洗还将删去重复的记录行
数据清洗( )处理例程通常包括:填补遗漏的数据值、平滑有噪声数据、识别或除去异常值( ),以及解决不一致问题。有问题的数据将会误导数据挖掘的搜索过程。尽管大多数数据挖掘过程均包含有对不完全( )或噪声数据的处理,但它们并不鲁棒且常常将处理的重点放在如何避免所挖掘出的模式对数据过分准确( )的描述上。因此使用一些数据清洗例程对待挖掘的数据进行预处理是十分必要的。稍后我们将详细介绍数据清洗有关具体方法。
数据集成( )就是将来自多个数据源(如:数据库、文件等)数据合并到一起。由于描述同一个概念的属性在不同数据库取不同的名字,在进行数据集成时就常常会引起数据的不一致或冗余。例如:在一个数据库中一个顾客的身份编码为“ ”,而在另一个数据库则为“ ”。命名的不一致常常也会导致同一属性值的内容不同,如:在一个数据库中一个人的姓取“ ”,而在另一个数据库中则取“ ”。同样大量的数据冗余不仅会降低挖掘速度,而且也会误导挖掘进程。因此除了进行数据清洗之外,在数据集成中还需要注意消除数据的冗余。此外在完成数据集成之后,有时还需要进行数据清洗以便消除可能存在的数据冗余。
数据转换( )主要是对数据进行规格化( )操作。在正式进行数据挖掘之前,尤其是使用基于对象距离( )的挖掘算法时,如:神经网络、最近邻分类( )等,必须进行数据规格化。也就是将其缩至特定的范围之内,如:!", "#。如:对于一个顾客信息数据库中的年龄属性或工资属性,由于工资属性的取值比年龄属性的取值要大许多,如果不进行规格化处理,基于工资属性的距离计算值显然将远超过基于年龄属性的距离计算值,这就意味着工资属性的作用在整个数据对象的距离计算中被错误地放大了。
数据消减( )的目的就是缩小所挖掘数据的规模,但却不会影响(或基本不影响)最终的挖掘结果。现有的数据消减包括:( )数据聚合( ),如:构造数据立方( );( )消减维数( ),
如:通过相关分析消除多余属性;( )数据压缩( ),如:利用编码方法(如最小编码长度或小波);( )数据块消减( $ ),如:利用聚类或参数模型替代原有数据。此外利用基于概念树的泛化( )也可以实现对数据规模的消减,有关概念树的详情将在稍后介绍。
这里需要强调的是以上所提及的各种数据预处理方法,并不是相互独立的,而是相互关联的。如:消除数据冗余既可以看成是一种形式的数据清洗,也可以认为是一种数据消减。
由于现实世界数据常常是含有噪声、不完全的和不一致的,数据预处理能够帮助改善数据的质量,进而帮助提高数据挖掘进程的有效性和准确性。高质量的决策来自高质量的数据。因此数据预处理是整个数据挖掘与知识发现过程中一个重要步骤。
现实世界的数据常常是有噪声、不完全的和不一致的。数据清洗( )例程通过填补遗漏数据、消除异常数据、平滑噪声数据,以及纠正不一致的数据。以下将详细介绍数据清洗的主要处理方法。
假设在分析一个商场销售数据时,发现有多个记录中的属性值为空,如:顾客的收入( )属性,对于为空的属性值,可以采用以下方法进行遗漏数据( )处理:
忽略该条记录。若一条记录中有属性值被遗漏了,则将此条记录排除在♦ 条记录
数据挖掘过程之外,尤其当类别属性( )的值没有而又要进行
分类数据挖掘时。当然这种方法并不很有效,尤其是在每个属性遗漏值
的记录比例相差较大时。
♦ 手工填补遗漏值值。一般讲这种方法比较耗时,而且对于存在许多遗漏情况的大规模数据集而言,显然可行较差。
♦ 利用缺省值填补遗漏值值。对一个属性的所有遗漏的值均利用一个事先确定好的值来填补。如:都用%&来填补。但当一个属性遗漏值较多值,
若采用这种方法,就可能误导挖掘进程。因此这种方法虽然简单,但并
不推荐使用,或使用时需要仔细分析填补后的情况,以尽量避免对最终
挖掘结果产生较大误差。