




已阅读5页,还剩58页未读, 继续免费阅读
(计算机应用技术专业论文)数据挖掘功能组件的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要:数据挖掘是信息科学及其应用中一个非常有前景的发展方向。数据挖掘, 也叫做知识发现,用于提取蕴涵于大型数据库、数据仓库、互联网、其它数据源、 以及数据流中的代表有用知识的模式。如今,以爆炸性速度增长的数据使得人们 迫切需要一种自动化的数据挖掘工具用于将大量数据转变为有价值的信息和知 识。 d m 2 是一款由我们自行设计并开发的数据挖掘平台,该平台的设计目标是为 了服务于中小型的数据挖掘项目d m 2 平台不仅支持当今主流的数据库产品,如 o r a c l e 、m y s q l 、s q l s e r v e r 等,而且还与著名的数据挖掘实验平台w e k a 相兼容。 目前,我们已经完成了平台核心结构的设计和开发,并在其基础上实现了i d 3 、 n a i v eb a y e s 、f p g r o w t h 、c l o s e t 等数据挖掘算法。 这篇文章主要介绍了d m 2 平台的详细设计思想,包括数据类型的设计,与数 据库交互的方法,以及一些挖掘算法的基本原理等,同时本文还介绍了我们利用 d m 2 平台在铁路货票数据上所进行的数据挖掘实验 关键词:数据挖掘;数据挖掘平台;关联规则;铁路货票分析 分类号:1 7 3 1 9 a b s t r a c t :d a t am i n i n gi sal a o m i s i n gf e n t i e ri nd a t a 锄【l di n f o r m a t i o ns y s t e m sa n d t h e i ra p p l i c a t i o n s d a t am i n i n g , a l s or e f e r r e dt oa sk n o w l e d g ed i s c o v e r yf r o md a t a , i s t h ea u t o m a t e do rc o n v e n i e n te x t r a c t i o no fp a t t e r n sr e p r e s e n t i n gk n o w l e d g ei m p l i c i t l y s t o r e di nl a r g ed a t a b a s e ,d a t ew a r e h o u s e , t h ew e b ,o t h e ri n f o r m a t i o nr e p o s i t o r i e s ,o rd a t a s l r e a m s t o d a y se x p l o s i v eg r o w t ho fd a t ah a sg e n e r a t e d 觚w g e n tn e e df o rn e w a u t o m a t e dd a t am i n i n gt o o l st h a tc a ni n t e l l i g e n t l ya s s i s t 瑚i nt r a n s f o r m i n gt h ev a s t a m o u n to f d a t ai n t ou s e f u li n f o r m a t i o na n dk n o w l e d g e d m 2i sad a t am i n i n gp l a t f o r md e s i g n e da n di m p l e m e n t e db yo u r s e l v e s ,t h ed e s i g n g o a lo f t h ep l a t f o r mi s t os u p p o r ts m a l la n d m i d d l es c a l ed a t am i n i n gp r o j e c t s t h ed m 2 p 蜥o r mn o to n l ys u p p o r t st o d a y sp o p u l a rr d b m sp r o d u c t s ,s u c ha so r a c l e , m y s q l s q l s e r v 盯,b u ta l s oi sc o m p a t i b l ew i t hw e k a , af a m o u sd a t am i n i n ge x p e r i m e n t a l s y s t e m a tp r e s e n t , w eh a v ea l r e a d yi m p l e m e n t e dt h ep l a t f o r m se n l e , a n dav 耐e t yo f d a t am i n i n ga l g o r i t h m sl i k ei d 3 ,n a i v eb a y e s ,f e - g r o w t h ,c l o s e t u p o nt h eb a s i c p l a t f o r mi n f i - a s t r u c t u r e t h i sp a p e rm a i n l yi n t r o d u c e sd e t a i ld e s i g nt h o u g h t so ft h ed m 2p l a t f o r m , i n c l u d i n gt h ed a t at y p ed e s i g n , t h ew a yt oi n t e r a c tw i t hd a t a b a s e , a n ds e v e r a ld a t a m i n i n ga l g o r i t h r ai m p l e m e n t a t i o n s ,d a t am i n i n ge x p e r i m e n t so nr a i l r o a d 口a n s p o r t a t i o n d a t aw i t hd m 2 p l a t f o r ma r ea l s oi n c l u d e di nt h ep a p e r k e y w o r d s :d a t am i n i n g ;d a t am i n i n gp l a t f o r m ;a s s o c i a t i o nr u l e ;r a i l r o a d t r a n s p o r t a t i o na n a l y s i s c l a s s n 0 :t p 3 1 9 a l i a s a n t e c e d t a n t im o n o t o n e a p i , a p p l i c a t i o np r o g a m m e ri n t e r f a c e a s s o c i a t i o n a s s o c i a t i o nr u l e a t t r i b u t e c l a s s i f i e r c i a u s c c l o s e df i e q u e n ti t e m s e t o u s t e r c o n c u n e n t c o n f i d e n c e c o n s e q u e n t c o u p l i n g d a t am i n i n g d e b u g d i v i d ea n dc o n q u e r o r e x c e p t i o n f f l t e r f o r e i g nk e y f r e q u e n tp a t t e r n f r e q u e n tp a t t e r nt r e e g r a n u l a r i t y i m p l i c a t i o n l l l g k q l l c e i n s t a n c e s i n t e r e s t i n g n e i t e m i t e m s e t l l 旧r a t o r j o i n k n o w l e d g ed i s c o v e r yf r o md a t a , k d d l a b e l l o n gp a t t e r n l o o s ec o u p l i n g m a n a g e m e n ti n f o r m a t i o ns y m = n , m 塔 m e t a d a t a m i s s i n g v a l u e m o d e l 索引 别名 前提 反单调特性 程序编程接口 关联 关联规则 属性 分类嚣 字句 闭频繁项集 聚类 并发 置信度 结论 偶合 数据挖掘 调试 分治法 异常 过滤器 外部关键字 频繁模式 频繁模式树 粒度 蕴涵关系 实例 实例集 兴趣度量 项 项集 迭代器 连接 知识发现 标签 长模式 松偶合 管理信息系统 元数据 缺损值 模型 n oc o u p l i n g n o m 斟a l n l l l i mr 岫i c o l 删 o p t i o n o r d 聃a l p e r s i s t e n to b j e c t p r e d i c a t e p r i m a r yk e y p r o j e c t i o n r a n d o ma o o 嘲 r a n k r e f e r e n c e s e m i t i g h tc o u p l i n g s e r i a l i z a b l e s e s s i o n s q l ,s t r u c t u r a lq u e r yl a n g u a g e s u p p o r t s u p p o r tc o u n t t h r e s h o l d 啊g h tc o u p l i n g t r a n s a c t i o n t m v e l s e v i c w w o r l dw i d ew e b ,w w w 无偶合 名称型数据 空值 数值型数据 操作数 选项 有序型数据 持久化对象 谓词 主关键字 投影 随机访问 级别 引用 半紧偶合 串行化 会话 结构化查询语言 支持度 支持度计数 阈值 紧偶合 事务 遍历 视图 万维同 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:纳默政导师签名: 签字日期:7 o 卯年,z 月2 1 日 签字日,2 月z 日 l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:纳政玛l 签字日期:z o o7 年眨月纠日 致谢 本论文的工作是在我的导师黄厚宽教授的悉心指导下完成的。黄厚宽教授严 谨的治学态度和科学的工作方法给了我极大的帮助和影响,在此衷心感谢三年来 他对我的关心和指导。 贺志博士对我的科研工作和论文都提出了许多的宝贵意见,在此表示衷心的 感谢。 在实验室工作及撰写论文期问,曹源、李广群、冯奇、付蓉、王丽君等同学 对我论文中的研究和工作给予了热情帮助。在此向他们表达我的感激之情。 1 引言 俗话说需求是发明之母,近年来由于各行各业大量数据的积累以及从数据中 提取有用信息和知识的需求,数据挖掘成为了信息产业中被广泛关注的研究和发 展方向。 1 1 数据挖掘概述 计算机被誉为是二十世纪人类最伟大的发明之一,随着计算机在商业、科学 研究、政府办公等行业中的应用,以及伴随着计算机技术而发展起来的数码照相 技术、屯子出版技术、数据收集和图形图像扫描技术的普及,人类产生并积累的 数据和信息正在以爆炸性的速度增长。尤其是二十世纪九十年代以来随着网络技 术的流行,万维网( w o r l dw i d ew e b ,w w w ) 逐渐成为一个全球性的信息系统, 为我们提供了无比丰富的信息资源。 在过去三十年间,以稳定而惊人的速度发展的计算机硬件技术为我们提供了 功能强大的计算机,先进的数据收集设备和存储设备,这些技术极大地促进了数 据库、数据仓库技术及信息产业的发展,使得海量数据的存储和管理不再成为问 题。由于先进的硬件设备和数据库管理系统的支持,在各个行业中逐渐出现了众 多服务于不同需求的数据库和数据仓库,而对大量数据进行高效分析也变成了非 常具有挑战性的工作。 当今的人类社会活动中一方面不断积累着丰富的数据和信息,另一方面迫切 需要强大的数据分析工具来对这些数据进行分析,这种状况被称作是“数据丰富, 但信息贫乏( d a t ar i c h , b u ti n f o r m a t i o np o o r ) ”。以爆炸性的速度增长的数据和信息 已远远超越了人类仅凭手工处理就能理解的程度,所以大型的数据库和数据仓库 往往成为了“数据坟墓”,即数据一旦被存入就很少再次被访问。由于缺乏有效的 数据分析工具和手段从海量数据中提取有价值的知识,重要的决策常常是根据决 策者的经验和直觉作出而不是以数据源中丰富的信息为参考背景作出。数据”和 。信息”间的差距需要一种新的技术来将“数据坟墓”变为“数据金矿”,越来越 多的应用需要新的技术和智能的工具来协助人们从海量数据中提取有用的信息和 知识。 数据挖掘( d a t am i n i n g ) ,也叫做知识发现( k n o w l e d g ed i s c o v e r yf r o md a t a , k d d ) ,是- - f l 从数据库、数据仓库、互联网、数据流、或其他数据源中提取隐含 于其中的知识、模式,以用于决策指导的新兴学科。数据挖掘出现于二十世纪八 十年代晚期,在二十世纪九十年代取得巨大进步并一直发展至今。与其他学科不 同,数据挖掘是一个多学科领域,它的研究和发展融合了来自如数据库、机器学 习、统计学、人工智能等学科的技术和成果,使得目前的数据挖掘技术和系统表 现出多种多样的形式常用的数据挖掘技术和方法有:频繁模式挖掘和关联分析, 分类和预测,聚类分析,对数据流和序列数据的挖掘,图挖掘和社会网络分析, 时间、空间、多媒体数据库挖掘及互联网挖掘等。数据挖掘有着广阔的应用前景, 概要来说,只要是能产生和积累数据的地方就可以使用数据挖掘技术来对数据进 行分析以获得有用的信息。具体的数据挖掘应用例如贷款偿还预测,客户信用度 策略分析,金融诈骗预测,产品销售分析,基因序列对比等 1 2 主要工作和论文的组织 本文主要介绍一款由我们自行设计并开发的数据挖掘平台d m 2 。d m 2 平台由 j a v a 语言开发,并使用h i b e r n a t e 访问数据库,该平台的设计目标是服务于中小型 的数据挖掘项目 文章首先在第2 章中介绍d m 2 平台的核心结构,包括数据类型的设计,对数 据所进行的处理,以及如何访问数据库等内容;接着在第3 章中介绍在平台基础 结构之上建立起来的关联规则挖掘机制以及相关算法的实现;然后在第4 章中介 绍我们利用d m 2 平台在铁路货票数据上进行的挖掘实验;文章最后在第5 章中给 出了我们在今后可能对d m 2 平台所做的改进。 2 2 通用数据挖掘平台d m 2 本章主要介绍d m 2 平台的核心结构。d m 2 平台核心包括了数据类型、实例、 实例集等概念在该平台中的实现,并负责实例的存取和与数据库交互,是各种数 据挖掘算法的基础。本章首先在2 1 节中概要介绍d m 2 平台的开发背景及该平台 的特点,接着在2 2 和2 3 节中给出数据挖掘中数据类型、实例、实例集等基本概 念,然后在第2 4 至2 6 节中介绍这些概念在d m 2 平台上的实现,最后在2 7 节中 介绍d m 2 中数据挖掘模型的概念。 2 1 d m 2 平台介绍 越来越多的数据挖掘应用需求促进了数据挖掘工具的研制和开发。目前比较 著名的数据挖掘商业软件有m m 的i n t e l l i g e n tm i n e r ,微软的s q ls e r v e r2 0 0 5 , o r a c l e 的o d m 等,这类产品的特点是大多由大型数据库或软件公司开发,功能强 大,适用范围广且和数据库交互能力较强,但是价格昂贵,所以这类产品适合于 大型商业化数据挖掘应用;而目前较为流行的数据挖掘实验平台有w e k a ( h t t p :w w w c s w a i k a t o a c n z m l w e k a ) ,r a p i dm i n e r ( h t t p :r a p i d - i c o m ) 等,这类 软件是开源软件,可以免费使用,而且在这些软件中集成了非常丰富的数据挖掘 算法,所以适合用于数据挖掘的学习和实验,各种算法的对比以及新算法的研究, 但是由于只能处理较小数据量的数据且和数据库交互能力较差,所以这类软件不 适合用于数据挖掘项目的开发。 衰2 1 w c k a 与d m 2 的比较 w e k n d m 2 主要用途教据挖掘实验,挖掘算法的比较和开发中小型数据挖掘项目 评价,新算法的研发 挖掘算法比较评价的能力强般 与数据库交互的能力弱 强 处理大数据集的能力弱强 挖掘关联规则的能力弱强 可扩充性 好好 挖掘过程和结果可视化好不好 综合商用数据挖掘软件和开源数据挖掘实验平台的特点,针对中小型的数据 挖掘应用需求,我们自行设计并开发了d m 2 平台在该平台的基础上,熟悉数据 挖掘相关知识的开发者可以非常容易地编写挖掘算法并集成到平台中,或者利用 已有的算法来开发中小型的数据挖掘项目。 d m 2 的核心结构和著名的数据挖掘实验平台w e k a 非常相似,实际上,d m 2 的设计和开发借鉴了w e k a 的许多经验,但是d m 2 不是w e k a ,两个平台有着不同 的设计目标:w e k a 主要用于数据挖掘实验以及各种挖掘算法的性能比较,所以 w e k a 非常适合于研发新的挖掘算法;而d m 2 平台则主要用于开发中小型的数据 挖掘项目,它与数据库交互的能力较强,并且擅长于处理大数据集。表2 1 中列出 了w e k a 与d m 2 的不同。 对于中小型的数据挖掘应用来说d m 2 平台具有许多优点:首先,d m 2 使用j a v a 语言开发,所以具有良好的跨平台特性;第二,d m 2 与数据库的交互能力较强, 可以直接在数据库表或视图上进行挖掘,且d m 2 支持目前大多数的主流数据库产 品,方便于项目的灵活配置:第三,d m 2 采用与w e k a 相同的内部数据格式,所 以熟悉w e k a 的开发者可以利用w e k a 丰富的a p i 在d m 2 平台上开发数据挖掘算 法。当然,d m 2 目前也有许多的不足:首先,所有在d m 2 中使用的数据集都需 要预先定义,d m 2 还无法在一个任意的s q l 查询上进行挖掘;其次,d m 2 在数 据离散化和挖掘过程及结果可视化这两方面的功能还比较弱。我们将在今后的工 作中继续完善和开发d m 2 平台。 2 2 数据挖掘中的数据类型 s q l ( 结构化查询语言) 标准中为数据库产品的实现和使用定义了丰富的数据 类型,如i n t e g e r ,d o u b l e 、c h a r 、v a r c h a r 、d a t e 、t i m e 等,先进的 数据库管理系统如o r a d e 还额外提供了b l o b 、c l o b 等类型用于更高级的应用。 数据库管理系统中丰富而完善的数据类型为数据的存储和管理提供了保证。与数 据库管理系统不同,数据挖掘主要用于发现数据中蕴涵的规律,所以数据挖掘中 的数据类型应该比s q l 数据类型更加简单,更加便于数据的分析和处理。d l v i 2 平 台将s q l 数据类型简化为了三种类型:数值型、名称型、有序型。 数值型( 删e r i c ) 数据 我们说某个学生的数学成绩是8 5 分,北京到昆明的路程为3 1 8 3 千米,某件 商品的单价为5 8 3 元,圆周率庐3 1 4 1 5 9 2 6 ,这些都是数值型数据的例子。如 果要将以上例子中的数据存储到数据库中,那么学生成绩可以存储为t i n y i n t 类 型,因为分数取值只能从0 到1 0 0 ;而路程的取值超过了t i n y i n t 的范围,所以 。t i n y i n t 、i n t e g e r ,f l o a t 、d o u b l e ,以及圈z l 中的s 4 卧d j j l q t 、b i g i n t ,这些名称来自于h i b m t a t e 对数值型数据的规定 需要存储为矾t e g e r 类型;商品单价可以存储为f l o a t 类型且为保留两位小 数的格式;而圆周率耳由于计算精确度的需要应该存储为d o u b l e 类型。 从上面的例子可以看出,在数据库中不同的应用环境需要将数字存储为不同 的数据类型,以方便数据的存储和组织,而如图2 1 所示,数据挖掘中将所有的数 字类型统一为了一种数据类型,即数值型( mm e r i c ) 数据数据挖掘的重点在 于数据分析,使用统一的数值型数据更加便于数学运算和数值比较,并且显著减 少了数据类型的种类 圈2 1 数据挖掘中的致值型致据 名称型( n o m i n a l ) 数据 名称型数据由有限个不同的取值组成,每个取值由一个字符串标签( l a b e l ) 表示。例如人的性别只能为男或女,分别用标签“m ”和“f ”表示;某大学计算 机专业分为“计算机应用技术”、。软件与理论”、“计算机体系结构”三个方向; 某种药物的用法为“o 1 ”、。o 2 ”、。o 3 ”、。0 4 ”、“0 5 ”毫克等都是名称型数据类 型的例子。 名称型数据的标签只能用来表示属性的取值,而不能表示取值之间的大小关 系以及不同取值之间的距离。在上面的第一个例子中,标签“m ”代表性别为男性, 而标签“f ”代表性别为女性,两个标签没有先后顺序,而我们也无法衡量他们之 间的距离:而在第三个例子中,虽然“0 1 ”、“0 2 ”、“0 3 ”、。0 4 ”、0 5 是数字, 仅就数学运算来说可以比较大小和计算距离,但这对它们只作为名称型数据的标 签使用,比较大小和计算距离都是无意义的操作。 有序型( o i m 玳a l ) 数据 在有的研究和分析中不但需要表示数据的不同取值,还要比较数据的大小或 计算不同取值之间的距离,这就需要用到有序型数据类型。与名称型数据相似, 有序型数据同样由有限个不同的取值组成,每个取值由一个字符串标签表示,但 与名称型数据不同的是,有序型数据允许认为地为每个标签指定一个数值作为该 标签的级别( r a n k ) ,通过级别的比较和运算就可以比较有序型数据中各个取值的 大小和计算取值之间的距离。举例来说:假设学生成绩可以分为四个等级,分别 用。a ”、“b ”、。c ”、。d ”表示,则“a ”、“b ”、。c ”、“d ”就是学生成绩的标签, 如果成绩满分为1 0 0 分,则我们可以分别将9 5 、8 5 、7 s 、6 5 赋给对应的标签作为 其级别。由以上学生成绩数据类型的定义可知,。a ” “b ” 。c ” “d ”,且相 邻标签之间的距离为1 0 。 名称型数据和有序型数据有许多相似的地方,究竟使用何种数据类型应该由 具体的数据挖掘应用决定:如果在某个应用中只需要区别不同的取值则,不需要 考虑取值之间的大小和距离关系则应该使用名称型数据类型;如果不但需要区别 不同的取值,而且还需要比较取值的大小或计算取值之间的距离则应该使用有序 型数据类型。 在所有数据挖掘的数据类型中还有一种特殊的取值。即缺损值( m i s s i n g v a l u e ) 。缺损值类似于数据库中空值( n u l l ) 的概念,用于表示取值未知。导致出 现缺损值的原因很多,例如数据错误、历史数据丢失、无法获得数据、数据无意 义等。对于缺损值的解释和处理应该与具体的应用背景和具体的数据挖掘算法结 合起来进行。 2 3 实例和实例集 在人们的日常工作和生活中,数据和信息一般都是以二维表的形式记录并存 储下来的,例如各种报表,数据库表,以及我们熟悉的e x c e l 工作表等。在表2 2 中记录了一些关于天气的数据信息。 表2 2 中所给出的二维表就是一个实例集( 也叫做数据集,但实例集特指由二 维表构成的数据集) ,而表中的一行就是一个实例。该w e a t h e r 实例集来自于w e k a , 记录了根据天气条件决定是否进行室内活动的情况,表中的温度为华氏温度。熟 悉数据库理论的读者可以看出,数据挖掘中实例集的概念类似于数据库中表的概 念,实例的概念则类似于数据库中记录的概念,而实例集的一列,类似于数据库 中的一个字段,在这里则统一称为属性。结合2 2 节所介绍的数据挖掘中数据类型 的概念,表2 2 中的o u t l o o k ( 天气概况) 属性可看作是名称型数据,取s u n n y ( 晴) 、 o v f f f c a s t ( 多云) 、r a i n y ( 雨) 三个值;t a m p e r a m r e ( 温度) 和h u m i d i t y ( 湿度) 剐为数值型数据:而w i n d y ( 是否有风) 和p l a y ( 是否进行室内活动) 也为名称 型数据,分别取值眦( 有风) 、f a l s e ( 无风) 及y e s ( 活动) 、n o ( 不活动) 6 袭2 2w e a t h e r 实例集 o u t i o e k t e m p e r a t u r eh m a l d i t yw m yp l a y 8 58 5f a l s e 目咀y 8 09 0t r u e o v e r c a s t 8 3 8 6f a l s e y e s 7 09 6 f a l s e y e s 6 88 0f a l s e y e s r a i n y 6 57 0饥k o v 0 k 嘲6 46 5t r u e y e s s u n n y 7 29 5f a l s e s u n n y 6 97 0 y e s r a i n y 7 58 0r a i s e y e s s u n n y 7 57 0t r u e y e s o v e r c a s t7 29 0t r u e y e s o v e r c a s t8 17 5f a l s e y e s r a i n y 7 l9 lt r u e 在数据挖掘中虽然实例集也可以表示为一张二维表,但是二维表并不完全等 同于实例集,并不是任何一个数据库表都可以看作是实例集的。在上一节中曾提 到过,数据库主要服务于数据的存储和管理,而数据挖掘主要用于数据分析,为 了分析储存于原始二维表中的数据则还需要对二维表进行一系列的数据预处理操 作。预处理操作例如数据清理、除去缺损值和噪声数据、数据集成和变换、属性 选择、数据离散化等,目的是将原始数据转换为数据挖掘算法能够处理或容易处 理的形式。经过数据预处理操作的二维表就可以看作是一个实例集。 2 4 d m 2 中的属性 d m 2 采用与w e k a 相同的内部数据格式,即当载入数据到内存中时把所有数 据都转换为j a v a 的d o u b l e ( 双精度浮点) 类型数据。这样傲的好处是不仅统一了 数据类型,还使得数据挖掘算法的开发者只需要关心d o u b l e 类型的数据,而不必 关心原始的数据类型,另外,d o u b l e 类型更容易存储和比较,也可以直接用于数 学运算。由于采用了与w e k a 相兼容的内部数据格式,开发者也可以利用w e k a 丰 富的a p i 在d m 2 平台上进行数据挖掘算法的开发。 7 d m 2 属性( a t t r i b u t e ) 用于记录数据集中字段的名称,并且负责将数据在其 原始格式和d o u b l e 型内部数据格式之间转换。数据从其原始格式转换为内部格式 主要用于数据的内部存储和挖掘算法中的操作;而数据从内部格式转换为其原始 格式主要用于挖掘结果展示和数据的持久化存储。根据2 2 节所提到的数值型、名 称型、有序型三种数据类型,d m 2 分别提供了对应的n u m e r i c a t t n b u t e 、 n o m i n a l a t t r i b u t e 、o r d i n a l a t t r i b u t e 三个属性实现,这三个类位于d i n 2 心程序包 ( p a c k a g e ) 中,并且都继承了位于同一程序包中的a t t r i b u t e 抽象类。 n u m e r i c a t t r i b u t e 将所有的数值类型数据,包括b y t e ( 字节型) 、s h o r t ( 短整型) 、 i n t ( 整型) 、l o n g ( 长整型) 、f l o a t ( 浮点型) 、d o u b l e ( 双精度浮点型) 统一转换 为d o u b l e 类型。由于j a v a 的d o u b l e 类型占8 个字节,而除l o n g 型外的其他数据 类型都小于8 个字节且将l o n g 型转为d o u b l e 型时可能会有精度损失2 ,但这样做 统一了数据类型,也使褥数据的操作和存储更加容易。 一个n o m i n a l a t t r i b u t e 对象中维护了一个包含所有该数据类型标签的数组,和 一个由标签到其在数组中索引的h a s h m a p 映射,所以它能够将数据在标签和其索 引值之间自由转换,而标签的索引值就作为该标签在d m 2 中内部数据格式的取值。 注意索引值从0 开始。图2 2 是一个n o m i n a l a t t r i b u t e 的例子。 计算机专业 计算机体系结构计算机应用技术l 计算机应用技术软件与理论 2 软件与理论 计算机体系结构 o 2 o 圈2 , 2 一个n o m i m l a t m b m e 的例子,某大学计算机专业的三个方向 图2 2 的n o m i n a l a t t r i b u t e 将某大学计算机专业的三个方向:。计算机应用技 术”、“软件与理论”、。计算机体系结构”分别映射到了l 、2 、0 。注意与w e k a 不 同的是,d m 2 对名称型数据是按照标签的字典顺序来编码的。而不是按照标签出 现的先后顺序来编码的,这样做的好处是保证了具有相同标签的名称型数据具有 。b y t e 、s h o r t 、i m 、l o n g ,f l o a t 、d o u b l e 为j a v a 中的数值数据类型 2 虽然两种敷据类型都占3 字节即6 4 位t 且d o u b l e 类型所能表示的教的范围比l o n g 类型广,但是d o u b l e 类 型需要i1 位来表示指数部分,而剩余的5 3 位表示尾数部分,而l o n g 类墅所有“位都表示数字部分所以在 将l o n g 型敢据转换为d o u b l e 堑教据时可能有精度损失 8 相同的内部编码。 对于有序型数据,用户可以为每个标签定义一个实数作为该标签的级别,而 级别就正好可以作为该标签的内部数据格式。在o r d i n a l a t t r i b u t e 中维护了从标签 到级别和从级别到标签的两个h a s h m a p 映射,用于标签与级别,即其内部数据格 式之间的相互转换。蝴t t r i b u t e 的例子如图2 3 所示。 a b c d 学生成绩 a9 5 6 5 d b8 57 5c c7 58 5b d6 59 5a 圈2 3 一个0 i d i n a l 蚵b ,忙的例子,学生成绩的四个等级 d m 2 与w e k a 对于缺损值的处理也相同。d m 2 同样使用j a v a 的d o u b l e n a n 作为缺损值的内部格式编码,而对于名称型数据和有序型数据的标签来说,问号 ( ? ) 、空字符串、空值( n u l l ) 都代表缺损值,而当将缺损值由内部格式转换为标 签时则统一返回问号。 2 5d m 2 中的实例与实例集 实例是数据库中记录或元组的概念在数据挖掘中的抽象。与w e k a 相同,d m 2 的实例同样将数据存储为一个d o u b l e 型的数组,所有属性值都被转换为其内部数 据格式并按照属性出现的顺序存储于数组的对应位置中。举例来说,表2 2 中 w e a t h e r 实例集的第一行为:“s u n n y ,8 5 ,8 5 ,f a l s e ,n o ”,按照2 3 节中为w e a t h e r 实例集定义的数据类型,当该行被转换为一个d m 2 实例时,该实例内部的d o l | b l e 数组将为:【2 ,8 5 ,8 5 ,0 ,0 】,注意d m 2 中名称型数据的标签是按照标签的字典 顺序来编码的。 位于d m 2 c o 他程序包下的h 妇n c c 类为实例在d m 2 中的实现。一个d m 2 实 例的结构如图2 4 所示 9 圈2 4 一个d m 2 实例的结构,该实例来自于w e k a 中w e a t h e r 实例集的第一行 从图2 4 中可以看出,除了用于存储数据的d o u b l e 数组之外,一个d m 2 实例还引 用( r e f e r e n c e ) 了一个l n s t a n c e s m e t a d a t a ( 实例集元数据) 对象,该对象来自于 实例所属的实例集,在图2 4 中即w e a t h e r 实例集。一个i n s t a n c e s m e t a d a t a 对象中 包含了对应实例集中的所有属性和属性出现的顺序,即实例集的元数据( m e t a d a t a ) 信息,用于将数据在其原始格式和内部格式之间转换。 d m 2 实例和w e k a 实例最大的区别就是d m 2 实例还包含了一个j a v a 可串行 化( s e r i a l i z a b l e ) 对象作为实例的i d i ,即主关键字。i d 是一类特殊的属性,首先, 从数据挖掘的角度来说,i d 仅仅用于标识数据,其中并不包括任何的能揭示数据 中所蕴涵规律的信息,所以i d 不用于数据挖掘;但是从数据库的角度来说,i d 对 于定位和标识记录、索引的建立、各种查询操作、以及对海量数据的处理和操作 优化至关重要,所以i d 又是必不可少的。综合了以上两方面因素,考虑到d m 2 针对于数据挖掘实际应用的设计目标,d m 2 实例中包含了i d ,但是作为一类特殊 的属性,i d 与其它用于数据挖掘的属性在d m 2 实例中被分开来存储,且d m 2 实 例为i d 提供了与其它属性不同的专门的操作。 值得一提的是,d m 2 中的实例还高效地实现了w e k a 实例中所没有实现的判 断两个实例是否相等的操作( 即j a v a 中的e q u a l s 方法) 。要判断两个实例是否相等, 单比较它们内部的d o u b l e 数组是否相等是不够的,因为来自两个属性个数相同的 不同实例集的实例完全可能会有相同的内部编码,所以除了比较d o u b l e 数组之外, 还需要比较两个实例对应的属性。但是对于名称型数据和有序型数据来说,属性 定义中可能包含了大量的名称标签或标签,级别映射,所以若要比较两个名称型属 性或有序型属性是否相等则必须比较他们的所有名称标签或标签级别映射,这是 相当费时的工作。 d m 2 中所有的属性类,以及用于表示元数据的i n s t a n c e s m e t a d a t a 类都被设计 为是不可变的( i m m u t a b l e ) ,即这些类的对象中只含有只读的信息,且对象一旦被 氟据库中常用作甜的敦据类型,如i n t e g e r ,c h a r 、v a r c l t a r 等在j a v a 中都是可串行化的 1 0 构造就不能再被修改。除此之外,在d m 2 中还提供了相关的优化方法使得相同的 属性或元数据对象只会被构造一次。所以在d m 2 中,一个属性或元数据对象可能 被多个实例或实例集所共享,且来自结构相同实例集的实例一定共享相同的元数 据和属性。所以,在比较名称型属性或有序型属性是否相等时只须使用j a v a 中的 “= = ”操作( 即比较两个对象所在的内存地址是否相同) 即可,因为若两个属性 不是同一个对象,则它们的结构一定不同。该优化措施免除了大量名称标签或标 签级别映射的比较操作,显著提高了系统的效率。在d m 2 中,不单是实例比较, 还有其它许多操作,如判断元数据之问的包含关系( 大量用于下章所讲的关联规 则挖掘中) ,其运行效率也由于这项优化设计而得到显著提升 1一r 衄n s t a n c c a c h c d i n s t a m 器 d b i n s t a m c s 曰圄圄 田2 5d m 2 中的实例集实现 实例集( i n s t a n c c s ) 的意思是实例的集合或数据集,在d m 2 中所有用于数据 挖掘算法的数据均来自于实例集。d m 2 针对不同的应用环境,目前提供了三个实 例集的实现版本:a r f f g n s t a n e _ 七s 、c a c h e d i n s t a n c e s 、d b i n s t a n c c s ,这些类位于d i n 2 c o 程序包下,且d m 2 中所有的实例集实现都继承自d i n 2 o o 下的i n s t a t l o g s 抽象类。 d m 2 实例集和对应的应用环境如图2 5 所示。 a r f f l n s t a n c c s 用来读取储存于j 埘f i 文件中的数据。a r f f 格式是w c k a 中用于表 示数据集的一种数据格式,该格式中包括了实例集的名称、数据类型定义、以及 实例集中的数据,使用该格式表示的实例集可以直接存储于文本文件中,并且一 般以“a r f f ”作为文件名后缀命名,称为a r f f 文件。a r f f 格式具有简单明了,与数 据挖掘平台无关,可以被人直接理解等优点,非常适合表示用于数据挖掘研究的 数据集。目前世界各地的数据挖掘学者已从众多不同的行业中收集了许多a r f f 数 a r f f 格式可参阅参考文献【i 】第2 4 节 据集供数据挖掘研究使用,比较著名的有美国南加州大学的u c i 数据集( 可以从 h t t p :w w w c s w a i k a t o a c n z m l w e k a 下载其a r f f 格式数据集) 等。 与w e k a 相似,使用a r f f n s t a n c e s 读取a r f f 文件时,位于文件中的数据不能被 修改或删除,且新的实例只能被追加到文件的末尾但与w e k a 不同的是, 缸m m t a i 啪s 不是将所有实例都缓冲到内存中,而是一行接一行地顺序访阃a r f f 文件,换句话说,用户只能使用a r f l l h l s t a n 嘲遍历( t r a v e t 辩) 数据集。因为无须 缓冲数据,所以a 嘟n s t a r i 嘲所能处理的数据集规模不会受内存大小的限制,但是 a r f f l n s t a n c e s 也无法直接提供给用户例如求实例个数等进一步的操作。 知们n s t a n c 鼯所提供的最基本的操作对于许多应用来说已经足够了。因为在多数挖 掘算法中,实例大多是被顺序地、只读地访问,而实例集中的实例个数或其它统 计特征也可以在完成对实例集的第一次遍历后求出。 d m 2 的c a c h e d l n s t a n e e s 将所有实例都缓 中于计算机内存中。由于所有实例都 是立即可用的,所以c a c h e x i i n s t a a c c s 对实例的操作非常灵活且快速,用户能随意 地添加、删除、修改实例,且所有实例都能够被随机访问( r a n d o ma c c e s s ) 但是 由于内存大小的限制,c a c h e d i n s t a n 淄不能处理大数据集,所以c a c h c d i n s m n c 鹤 主要用在数据挖掘实验,临时结果存储,挖掘算法评价等方面。 d b c c s 的作用是将数据库表或视图映射为实例集,用户可以通过 d b l n s t a n c c s 直接使用挖掘算法分析数据库中的数据。我们将在下一节中详细介绍 d b l n s t a n c c s 。 圈2 6d m 2 中属性、实例、实倒集元致据、实例集之问的关系 从图2 5 中还可以看出,由于所有d m 2 中的实例集都继承自h l s 锄c 嚣抽象类。 所以所有实例集的实现版本都支持将数据导出为a r f f 格式且用户还可以针对特 1 2 殊的应用需求通过继承i n s t a l l c e s 来开发自己的实例集实现 在介绍了d m 2 中属性( a t t r i b u t e ) 、实例( i n s t a n c e ) 、实例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年职业技能鉴定-铁路职业技能鉴定-货运员(初级工)历年参考题库含答案解析(5套)
- 2025年综合评标专家-黑龙江-黑龙江综合评标专家(工程监理类)历年参考题库含答案解析(5套)
- 热电厂生产工艺培训课件
- 热浸镀锌基础知识培训
- 职专园艺考试题及答案
- 烧烤摊防火安全知识培训课件
- 烤红薯美育课件
- 存款保险知识培训总结课件
- 烟厂基础知识培训课件小结
- 陕西省华阴市2025年上半年事业单位公开招聘教师岗试题含答案分析
- 施工组织设计施工总体部署完整版
- TUPSW微机控制电力专用不间断电源(UPS)系统使用说明书
- 骨质疏松诊治与中医药
- LY/T 2383-2014结构用木材强度等级
- GB/T 528-2009硫化橡胶或热塑性橡胶拉伸应力应变性能的测定
- 中日关系历史
- GB/T 15171-1994软包装件密封性能试验方法
- 2023年江苏省中学生生物学竞赛(奥赛)初赛试题和答案
- 信息系统运维服务方案
- 化工试生产总结报告
- DB32-T 3129-2016适合机械化作业的单体钢架塑料大棚 技术规范-(高清现行)
评论
0/150
提交评论