计算机科学与技术本科生毕业论文——关联规则数据挖掘算法分析_第1页
计算机科学与技术本科生毕业论文——关联规则数据挖掘算法分析_第2页
计算机科学与技术本科生毕业论文——关联规则数据挖掘算法分析_第3页
计算机科学与技术本科生毕业论文——关联规则数据挖掘算法分析_第4页
计算机科学与技术本科生毕业论文——关联规则数据挖掘算法分析_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE PAGE 20本科生毕业论文(设计)题 目: 关联规则数据挖掘算法分析 目 录 TOC o 1-3 h z u HYPERLINK l _Toc450323569 1 绪论 PAGEREF _Toc450323569 h 5 HYPERLINK l _Toc450323570 11 研究背景与意义 PAGEREF _Toc450323570 h 5 HYPERLINK l _Toc450323571 111 数据挖掘的商业背景 PAGEREF _Toc450323571 h 5 HYPERLINK l _Toc450323572 112 数据挖掘的社会背景 PAGEREF _Toc4

2、50323572 h 5 HYPERLINK l _Toc450323573 12 数据挖掘的研究意义 PAGEREF _Toc450323573 h 5 HYPERLINK l _Toc450323574 13 国内外发展及研究现状 PAGEREF _Toc450323574 h 5 HYPERLINK l _Toc450323575 14 开发环境 PAGEREF _Toc450323575 h 5 HYPERLINK l _Toc450323576 141 采用Java语言的原因 PAGEREF _Toc450323576 h 6 HYPERLINK l _Toc450323577 2

3、数据集介绍 PAGEREF _Toc450323577 h 6 HYPERLINK l _Toc450323578 3 关联规则算法 PAGEREF _Toc450323578 h 6 HYPERLINK l _Toc450323579 31 Apriori算法 PAGEREF _Toc450323579 h 6 HYPERLINK l _Toc450323580 3.1.1 Apriori算法介绍 PAGEREF _Toc450323580 h 6 HYPERLINK l _Toc450323581 3.1.2 Apriori算法实现 PAGEREF _Toc450323581 h 6 HY

4、PERLINK l _Toc450323582 3.2频繁模式增长算法 PAGEREF _Toc450323582 h 7 HYPERLINK l _Toc450323583 3.2.1 FP-growth算法介绍 PAGEREF _Toc450323583 h 7 HYPERLINK l _Toc450323584 3.2.2 FP-growth算法实现 PAGEREF _Toc450323584 h 7 HYPERLINK l _Toc450323585 3.3 Eclat算法 PAGEREF _Toc450323585 h 8 HYPERLINK l _Toc450323586 3.3.

5、1 Eclat算法介绍 PAGEREF _Toc450323586 h 8 HYPERLINK l _Toc450323587 3.3.2 Eclat算法实现 PAGEREF _Toc450323587 h 8 HYPERLINK l _Toc450323588 4 实验结果与分析 PAGEREF _Toc450323588 h 9 HYPERLINK l _Toc450323589 4.1相同算法对相同数据集进行不同阈值数据挖掘 PAGEREF _Toc450323589 h 9 HYPERLINK l _Toc450323590 4.1.1 Apriori算法对各个数据集进行不同阈值数据挖

6、掘 PAGEREF _Toc450323590 h 9 HYPERLINK l _Toc450323591 4.1.2 Fp_growth算法对各个数据集进行不同阈值数据挖掘 PAGEREF _Toc450323591 h 10 HYPERLINK l _Toc450323592 4.1.3 Eclat算法对各个数据集进行不同阈值数据挖掘 PAGEREF _Toc450323592 h 10 HYPERLINK l _Toc450323593 4.2 相同算法对不同数据集进行相同阈值数据挖掘 PAGEREF _Toc450323593 h 11 HYPERLINK l _Toc45032359

7、4 4.2.1 Apriori算法对不同数据集进行各个阈值数据挖掘 PAGEREF _Toc450323594 h 11 HYPERLINK l _Toc450323595 4.2.2 Fp_growth算法对不同数据集进行各个阈值数据挖掘 PAGEREF _Toc450323595 h 12 HYPERLINK l _Toc450323596 4.2.3 Eclat算法对不同数据集进行各个阈值数据挖掘 PAGEREF _Toc450323596 h 13 HYPERLINK l _Toc450323597 4.3 不同算法对相同数据集进行相同阈值数据挖掘 PAGEREF _Toc450323

8、597 h 13 HYPERLINK l _Toc450323598 4.3.1 不同算法对mushroom数据集进行各个阈值数据挖掘 PAGEREF _Toc450323598 h 13 HYPERLINK l _Toc450323599 4.3.2 不同算法对T10I4D100K数据集进行各个阈值数据挖掘 PAGEREF _Toc450323599 h 14 HYPERLINK l _Toc450323600 4.3.3 不同算法对accidents数据集进行各个阈值数据挖掘 PAGEREF _Toc450323600 h 15 HYPERLINK l _Toc450323601 4.3.

9、4 不同算法对connect数据集进行各个阈值数据挖掘 PAGEREF _Toc450323601 h 16 HYPERLINK l _Toc450323602 5 不同算法的优势与不足 PAGEREF _Toc450323602 h 16 HYPERLINK l _Toc450323603 6 不足与展望 PAGEREF _Toc450323603 h 17 HYPERLINK l _Toc450323604 7 致谢 PAGEREF _Toc450323604 h 17 HYPERLINK l _Toc450323605 参考文献: PAGEREF _Toc450323605 h 17关联

10、规则数据挖掘算法分析摘要:数据挖掘技术在当今需要存储、处理、计算大量数据与信息的社会中有非常重要的作用。数据挖掘出现之前,海量的数据只是被简单的存储,不能对隐含在其中的信息进行分析、利用与创造价值,数据挖掘由此出现。数据挖掘是新兴且前沿的技术,是信息领域和数据库领域热点之一。数据挖掘技术的快速发展,出现了适合各领域需求各异的多种不同的分析方法与算法。算法是分析方法的具体实现,首先详细介绍了基于关联规则分析的Apriori算法、FP-growth 算法和Eclat算法,并通过对比这些算法在不同数据集的运行结果,分析了算法各自的优缺点及其适用领域,同时探讨了各个算法的优势互补、有机结合以弥补单独算

11、法不足的可能性。关键词:数据挖掘;关联规则;Apriori算法;FP-growth算法;Eclat算法Analysis of Association Rules Data Mining AlgorithmAbstract: Data mining technology is based on storage, process, and calculation of a large quantity of data and information, which plays an important role in promoting an information society. Prior t

12、o the birth of data mining, massive data was simply stored so that it cant be implied in the information analysis, or be used to create value. Then data mining appeared and things become different. Data mining is not only a brand new technology in recent years, but also one of the most advanced rese

13、arch directions in the field of database and information decision. Data mining, which is developing at a rapid rate, leads to a wide range of types of data mining algorithms and methods for various requirements and different fields. Generally, algorithm is a realization of analysis method, this pape

14、r analyzes the rules and relationship based on Apriori algorithm, FP growth algorithm and Eclat algorithm. Then, this paper compares the differences of running results, points out the advantages and disadvantages of each of the algorithms in its field of application. Besides, these algorithms have t

15、heir own limitations, which means a proper combination is needed in application field. In this way, these algorithms can work in more effective and efficient ways.Key words: Data mining;Association rule;Apriori algorithms;Fp-growth algorithms;Eclat algorithms引言 在第11届国际人工智能协会的会议中,第一次出现了数据库的知识发现的概念,并且

16、在这次会议后,关于知识发现的学术会议与专题研讨会也在很国际知名的会议上提出1。继1995年第一届KDD国际学术会议在蒙特利尔举行之后,该会议会每年举行。KDD是一个迭代的数据处理过程2。整个过程需要由用户提供主要决策,并依据决策经历多个步骤来得到结果。具体的工作步骤有:数据准备;数据选取;数据预处理;数据变换;确定KDD目标;选择算法;数据挖掘;模式解释;知识评价。数据挖掘是一个对知识发现最重要的一个部分3。利用数据挖掘技术的工具已经普及到了很多领域,如Health-KEFIT是用于健康状况预警的知识发现系统4。这些系统或工具具有如下共同特征:海量数据集。数据利用非常不足。在开发只是发现系统时

17、,领域专家对该领域的熟悉程度至关重要。最终用户专业知识缺乏。1 绪论11 研究背景与意义 111 数据挖掘的商业背景通过商业销售记录收集用于数据挖掘的数据是最重要的一个方面。而数据挖掘的价值主要表现在降低开销与提高收入两个方面。对商业运营的过程,知识发现用作以下四种工具:数据挖掘为研究工具。利用数据挖掘提高过程的效率。数据挖掘成为市场营销工具。数据挖掘为管理客户关系提供方法。112 数据挖掘的社会背景数据挖掘在个人预言方面:数据挖掘是通过客户历史记录数据的分析,归类对比,预测客户其后的行为5。但实际上,自己的下一步目标客户自己可能都不十分清楚。所以,对于数据挖掘的结果,有一定参考价值,却不一定

18、为生活中的真正答案。12 数据挖掘的研究意义在信息时代,我们生产和处理数据能力迅速提高,但是被我们直接利用的数据只占我们存储的一部分,将隐含在其中有价值的信息,从随机的,有噪声的信息中提取出来,应用于实际操作中,提供决策支持,创造价值6。13 国内外发展及研究现状其他国家对数据挖掘的研究与应用已有很长的时间的发展,累积了了大量的数据与研究成果7。国外在数据挖掘的应用方面,已经有大量的软数据挖掘软件应用于各种领域,并在应用的领域创造了巨大的价值。国内对知识与发现的研究要相比于国外,落后的差距较大。我国在1993年才对数据挖掘研究起步,目前主要的研究人员在大学中,并且还停留在对理论的研究。对应用方

19、面还是较为薄弱,所以其研究资金主要是由国家承担的。14 开发环境本文采用了基于Myeclipse平台的java语言。下面对采用Java语言和Myeclipse平台的原因进行阐述。141 采用Java语言的原因Java语言具有以下特点:1) 支持多平台,Java虚拟机解决了操作系统和核心系统资源变化对编写的程序造成的影响,Java编写的程序可以在任何安装了Java虚拟机的计算机上正确运行;2) 多线程,允许同时完成多个任务;3) 面向对象,支持垃圾回收和异常处理机制;4) 解释型;5) Java语言是免费和开放的。2 数据集介绍表2.1 数据集数据个数数据集数据个数(个)频繁项集数Mushroo

20、m186852一般Connect2904951极多Accidents72307多T10I4D100K1010228极少表2.2 数据集数据规律数据集数据集特征数据示例Mushroom数据大小变化速度快,增加幅度无规律。1 3 9 15 23 25 34 36 38 40 52 54 59 63 67 76 85 86 90 93 Connect数据每次增加3,添加少量噪声数据。10 13 16 27 30 33 65 68 71 74 77 Accidents数据每次增加1,并在连续几个数之后,突变到另一个数,继续每次增加1,加入少量噪声数据10 11 12 21 22 23 29 30T10

21、I4D100K数据无规律,完全散乱排列。93 354 583 606 617 937 71 236 419 477 489 701 706 722 7363 关联规则算法关联规则即支持度和信任度都完全满足客户设定阈值的规则8。事实上,支持度就是一个对数据库研究的概率值,支持度越高代表发现规则的价值在该领域在该数据库越高,由客户或者用户指定实际所需的支持度,代表了用户意愿及其应用领域的特征。从定义上可以得出, 的置信度是一个条件概率。也就是31 Apriori算法3.1.1 Apriori算法介绍R.Agrawal首先提出关联规则模型,并提出了Apriori算法9。Apriori算法是用先验规律

22、来减少扫描所花费的时间代价,使算法效率提高。Apriori算法在数据挖掘领域具有很高的地位与很大影响力,很多算法都借鉴过Apriori算法的思想并加以改进。3.1.2 Apriori算法实现数据库中的项集具有如下性质:性质1:频繁项集的子集必为频繁项集。性质2:非频繁项集的超集一定是非频繁的10。算法的伪代码描述:输入:数据库;最小支持度阈值输出:关联规则频繁项集。3.2频繁模式增长算法3.2.1 FP-growth算法介绍 Jiawei Hn等人在研究数据挖掘算法时,没有采用Apriori算法的先验方法缩减项集,而是提出了FP_Tree算法11。 Fp-growth算法的结构是用频繁模式树:

23、频繁模式树的根结点为null。 每个结点包含3个部分:item-name项目名,count结点数,item-next指向兄弟结点。3.2.2 FP-growth算法实现构建FP树算法:通过初次读取数据集,得到该数据集内的频繁一项集及其阈值集合。对每个频繁一项集按照第一次扫描的支持度降序排列每个频繁项集,并形成项目频繁列表L,创建树的结点并且根节点值为空。 ; 3.3 Eclat算法3.3.1 Eclat算法介绍J.ZAKI于 2000 年提出了 ECLAT 算法,采用了与传统挖掘算法水平数据库表示方式完全不同的数据库结构垂直数据表示,利用前缀等价关系划分搜索空间12。算法过程:1) 首次扫描,

24、可以得出频繁一项集并获得其支持度。2) 再次扫描,可以得出频繁二项集并以链表方式存储。表3.1 水平数据库事物TID项目Item1A,B,D2C,D,E,F3B,C,E4A,C,D,E5A,B,C,D,E,F6C,E,F表3.2 Tidset垂直数据库项目Item事物TIDA1,4,5B1,3,5C2,3,4,5,6D1,2,4,5E2,3,4,5,6F2,5,63.3.2 Eclat算法实现输入:数据集, 最小支持度。输出:频繁项集。首次扫描,找出其内的频繁一项集。4 实验结果与分析4.1相同算法对相同数据集进行不同支持度数据挖掘4.1.1 Apriori对各个数据集进行不同阈值数据挖掘表4

25、-1 Apriori算法对mushroom数据集进行不同阈值数据挖掘阈值0.350.300.250.200.15时间(ms)50311103222033282754742334项集(个)1189273555455366398575单个项集时间(ms)4.234.033.975.277.53对表4-1进行分析,可以发现Apriori算法在对快速增长数据集进行数据挖掘时,所用的时间随着频繁项集的增加而增加,通过与项集个数的对比,可以发现,在阈值大于0.25时,频繁项集数量增加的速度不快,单个项集所用的时间基本相等而在阈值小于0.25后,频繁项集的数量突然急剧增加,算法所用的时间与发现单个频繁项集的

26、时间都大幅度增长。表4-2 Apriori算法对T10I4D100K进行不同阈值数据挖掘阈值0.350.300.250.200.150.100.05时间(ms)2032352192192032191297项集(个)00000010单个项集时间(ms)-129.7对表4-2进行分析,可以发现Apriori算法那在对T10I4D100K数据集进行数据挖掘时,在没有频繁项集时,其所用时间非常平稳,但在出现频繁项集后,所用时间有一个大幅度的突变增加。表4-3 Apriori对accidents进行不同阈值数据挖掘阈值0.350.30时间(ms)6539722515885项集(个)91851201883

27、单个项集时间(ms)7.1212.46对表4-3进行分析,Apriori算法对突变数据集进行数据挖掘时,发现单个项集的时间与总时间随着频繁项集数目的增多而增多。通过与表4-1一起分析,可以发现,Apriori算法对频繁项集的个数较为敏感,总时间与发现单个项集的时间会随着频繁项集数量的增加而增加。表4-4 Apriori算法对connect数据集进行不同阈值数据挖掘(未完成运行)阈值0.35时间(小时)10.5项集(个)79555单个项集时间(ms)475.14Apriori算法在运行该算法时,由于所需运行时间太长,无法运行出最终结果,只能对部分结果进行分析,通过与表4-1、表4-3一起分析,发

28、现运行时间更长,而发现的频繁项集数目却更少,而原因就在数据集本身,由于connect数据集比accidents数据集与mushroom数据集大的多,所以发现每个频繁项集就需要扫描一遍数据集而导致时间的极速增长而发现的频繁项集的速度异常慢。4.1.2 Fp_Tree对各个数据集进行不相同阈值数据挖掘表4-5 Fp_Tree算法对mushroom数据集进行不同阈值数据挖掘阈值0.350.300.250.200.15时间(ms)7199381516754314349项集(个)1189273555455366398575单个项集时间(ms)0.600.340.270.140.15对表4-5进行分析,F

29、p-Tree算法对mushroom数据集进行数据发现时所用的总时间会随着阈值的降低,频繁项集数目的增多而增加,但是比较得知单个频繁项集的时间却会减小,减小的幅度会随着频繁项集的增多而减缓。表4-6 Fp_Tree对T104D100K数据集进行不同阈值数据挖掘阈值0.350.300.250.200.150.100.05时间(ms)8766831385958344838184708547项集(个)00000010单个项集时间(ms)-854.7对表4-6进行分析,Fp-Tree对T104D100K进行数据挖掘所用的总时间比较平稳,即使项集数目的突然少量增加,也不会对算法所用的总时间造成影响。表4-

30、7 Fp_Tree对accidents数据集进行不同阈值数据挖掘阈值0.350.300.250.200.15时间(ms)200234323294094239159732903项集(个)9185120188347484512410693957195单个项集时间(ms)0.220.210.200.190.185对表4-7进行分析,Fp-growth对突变数据集(accidents)进行数据挖掘,当阈值减小,频繁项集数目增多,总时间也会随之增多,但是单个频繁项集所用的时间会减少。与表4-5一起分析,可以发现该算法的效率会随着频繁项集数目的增多而提高。因为算法在其所构建的树上进行数据挖掘,所以数据越多

31、,效率越高,花费在构建树上的时间所占比例就越少。4.1.3 Eclat算法对各个数据集进行不同阈值数据挖掘表4-8 Eclat算法对mushroom进行不同阈值数据挖掘阈值0.350.300.250.200.15时间(ms)17651172186022192437项集(个)1189273555455366398575单个项集时间(ms)1.480.430.340.0410.0025对表4-8进行分析,Eclat算法对快速增长数据集进行数据挖掘,在阈值减少,频繁项集数目快速增长时,所用的总时间只是缓慢增长,而发现单个频繁项集的时间则急剧减少。表4-9 Eclat算法对T1I4D100K进行不同阈

32、值数据挖掘阈值0.350.300.250.200.150.100.05时间(ms)8288857888128297834483298360项集(个)00000010单个项集时间(ms)-836对表4-9进行分析,可以发现,Eclat算法对稀疏集进行数据挖掘所消耗的时间代价十分平稳,即使项集少量增加,总时间亦无明显变化。表4-10 Eclat对accidents进行不同阈值数据挖掘阈值0.350.300.250.200.15时间(ms)323484691919673500521652项集(个)9185120188347484512410693957195单个项集时间(ms)0.0350.0420

33、.0400.0590.13对表4-10进行分析,可以发现阈值减少,频繁项集数目极速增加,所花费的总时间也快速增加,发现打个频繁项集的时间也在增加。Eclat在进行挖掘时,首先要为每个数据创建并分配概念格,之后的操作的在就是对概念格的操作,所以对数据个数总数小,频繁项集数目较多的数据集进行数据挖掘时,效率高。4.2 相同算法对不同数据集进行相同支持度数据挖掘4.2.1 Apriori对不同数据集进行各个阈值数据挖掘表4-11 Apriori算法对不同数据集进行阈值为0.35数据挖掘数据集mushroomT10I4D100Kaccidentsconnect(未完)时间(ms)50312036539

34、7210.5小时项集(个)118909185179555单个项集时间(ms)4.23-7.12475.14表4-12 Apriori算法对不同数据集进行阈值为0.30数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)110322352515885项集(个)27350201883单个项集时间(ms)4.03-12.46表4-13 Apriori算法对不同数据集进行阈值为0.25数据挖掘数据集mushroomT10I4D100K时间(ms)22033219项集(个)55450单个项集时间(ms)3.97-表4-15 Apriori算法对不同数据集进行阈值为0.20数据

35、挖掘数据集mushroomT10I4D100K时间(ms)282754219项集(个)536630单个项集时间(ms)5.27-表4-16 Apriori算法对不同数据集进行阈值为0.15数据挖掘数据集mushroomT10I4D100K时间(ms)742334203项集(个)985750单个项集时间(ms)7.53-对表4-114-16进行分析,可以发现Apriori算法对mushroom数据集的效率最高,对connect数据集的效率最低。考虑不同数据集内数据量的多少,与频繁项集的多少,可以发现,Apriori对快速变化,数据量较少的数据集(mushroom)效率最高,对数据数量很少,但频繁

36、项集很多的数据集(accidents)的效率一般,而对数据量异常多,频繁项集也极多的数据集(connect)的效率极低。总结为,Apriori由于发现每个项集都要对数据集进行一次完整的扫描,算法的效率受频繁项集的数量与数据集内数据的数量的限制,数据集内数据的个数越多效率越低。所以算法擅长对频繁项集数量少或者频繁项集数量极少,数据量很大的数据集进行数据挖掘。4.2.2 Fp_Tree算法对不同数据集进行各个阈值数据挖掘表4-17 Fp_Tree对不同数据集进行支持度为0.35数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)719876620023项集(个)1189

37、091851单个项集时间(ms)0.60-0.22表4-18 Fp_Tree对不同数据集进行支持度为0.30数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)938831343232项集(个)27350201883单个项集时间(ms)0.34-0.21表4-19 Fp_Tree对不同数据集进行支持度为0.25数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)1516859594094项集(个)55450474845单个项集时间(ms)0.27-0.20表4-20 Fp_Tree对不同数据集进行支持度为0.20数据挖掘数据集mushro

38、omT10I4D100Kaccidents时间(ms)75438344239159项集(个)5366301241069单个项集时间(ms)0.14-0.19表4-21 Fp_Tree对不同数据集进行支持度为0.15数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)143498381732903项集(个)9857503957195单个项集时间(ms)0.15-0.185对表4-17表4-21进行分析,可以发现Fp-growth算法的效率随着阈值的减少,频繁项集数目的增多,算法的效率不断提高,但在阈值小于等于0.20时,Fp_tree对mushroom数据集的效率超过

39、了对accidents数据集的效率。总结为,Fp-growth算法在阈值较大时,对数据量较少,频繁项集数目较多的数据集进行数据挖掘的效率较高;在阈值较小时,对数据量较多,频繁项集数目较少的数据集进行数据挖掘的效率较高。因为如果频繁项集越多,树内存储的信息就会越多,在树内进行挖掘的效率就会越高。4.2.3 Eclat算法对不同数据集进行各个阈值数据挖掘表4-22 Eclat算法对不同数据集进行阈值为0.35数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)176582883234项集(个)1189091851单个项集时间(ms)1.48-0.035表4-23 Ecl

40、at算法对不同数据集进行阈值为0.30数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)117285788469项集(个)27350201883单个项集时间(ms)0.43-0.042表4-24 Eclat算法对不同数据集进行阈值为0.25数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)1860881219196项集(个)55450474845单个项集时间(ms)0.34-0.040表4-25 Eclat算法对不同数据集进行阈值为0.20数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)22198297

41、73500项集(个)5366301241069单个项集时间(ms)0.041-0.059表4-26 Eclat算法对不同数据集进行阈值为0.15数据挖掘数据集mushroomT10I4D100Kaccidents时间(ms)24348344521652项集(个)9857503957195单个项集时间(ms)0.0025-0.13对表4-22表4-26进行分析,可以发现Eclat算法对mushroom数据集进行数据挖掘时,其总时间随着频繁项集数目的总数的增多而缓慢增加,效率则会随着越来越高。而对accidents数据集进行数据挖掘时,总时间会随着频繁项集数目的增多而快速增加,其效率则不断降低,发

42、现单个频繁项集的时间会增加。总结为Eclat算法对数据量较多而频繁项集数目较少的数据集进行数据挖掘时,其挖掘效率会随着阈值的降低而提高;对数据集内数据个数较少,而频繁项集数目多的数据集,该算法的挖掘效率会因为阈值的减少,频繁项集的增多而增长。因为算法是基于概念格理论,其操作是and,or操作。所以,频繁项集越多,一个概念格进行与或操作的次数就会越多,发现的频繁项集就会越多,其效率也会越高。4.3 不同算法对相同数据集进行相同阈值数据挖掘4.3.1 不同算法对mushroom进行各个阈值挖掘表4-27 不同算法对mushroom数据集进行阈值为0.35数据挖掘算法FP_growthEclatAp

43、riori时间(ms)71917655031项集(个)118911891189单个项集时间(ms)0.601.484.23表4-28 不同算法对mushroom数据集进行阈值为0.30数据挖掘算法FP_growthEclatApriori时间(ms)938117211032项集(个)273527352735单个项集时间(ms)0.340.434.03表4-29 不同算法对mushroom数据集进行阈值为0.25数据挖掘算法FP_growthEclatApriori时间(ms)1516186022033项集(个)554555455545单个项集时间(ms)0.270.343.97表4-30 不同

44、算法对mushroom数据集进行阈值为0.20数据挖掘算法FP_growthEclatApriori时间(ms)75432219282754项集(个)536635366353663单个项集时间(ms)0.140.0415.27表4-31 不同算法对mushroom数据集进行阈值为0.15数据挖掘算法FP_growthEclatApriori时间(ms)143492437742334项集(个)985759857598575单个项集时间(ms)0.150.00257.53对表4-27表4-31进行分析,可以发现,Apriori对mushroom数据集的效率是最低的,Apriori所用的时间与效率和

45、Fp-tree算法,Eclat比较,差距会随着阈值的降低、数据集频繁项集数量的增多而不断加大。与另外两个算法相比,Apriori算法不擅长对该数据库进行数据挖掘,因为Apriori算法会随着频繁项集的增多,遍历整个数据集的趟数也会增多。通过对FP-tree算法与Eclat算法的时间与效率对比,在阈值较大时,Fp-tree算法的效率要优于Eclat算法,并且两个算法的效率都会由于阈值的减少,频繁项集数目的增大而提高,但是Eclat算法的效率的加快要高于Fp-growth算法,所以在阈值为0.20时,Eclat算法的效率超过了Fp-growth算法。Fp-growth算法先构造树,如果树的结构过大

46、,树内寻找到另一个数据所花的时间代价也不可忽略,而Eclat算法,通过对概念格的操作,不需要频繁的寻址,在频繁项集数量多时,优势就会体现出来。总结为Apriori算法与Fp_tree算法和Eclat算法相比,在对数据集内数据量较少,频繁项集较少的数据集进行数据挖掘时,没有任何优势。而Fp-growth算法在阈值较大时,效率高于Eclat;阈值较小时,则是Eclat算法的效率高于Fp-growth算法。4.3.2 不同算法对T10I4D100K进行各个支持度挖掘表4-32 不同算法对T10I4100K进行阈值为0.35数据挖掘算法FP_growthEclatApriori时间(ms)876682

47、88203项集(个)000单个项集时间(ms)-表4-33 不同算法对T10I4100K进行阈值为0.05数据挖掘算法FP_growthEclatApriori时间(ms)854783601297项集(个)101010单个项集时间(ms)854.7836.0129.7由于在阈值为0.30-0.10时,结果与阈值为0.35几乎一致,所以省略0.30,0.25,0.20,0.15,0.10这5张图表。对表4-32表433进行分析,可以发现Apriori算法全面优于Fp-growth算法和Eclat算法。即使突然有了少量频繁项集,但是Apriori的算法依旧比其他两个算法快了不少,但是相比所花费时间

48、的稳定性,Apriori算法就差了不少,在有了频繁项集之后,Apriori算法有一个突变。但是Fp-growth算法和Eclat算法所花费的时间并无多大的变化。4.3.3 不同算法对accidents进行各个阈值数据挖掘表4-34 不同算法对accidents进行阈值为0.35数据挖掘算法FP_growthEclatApriori时间(ms)200233234653972项集(个)918519185191851单个项集时间(ms)0.220.0357.12表4-35 不同算法对accidents进行阈值为0.30数据挖掘算法FP_growthEclatApriori时间(ms)43232846

49、92515885项集(个)201883201883201883单个项集时间(ms)0.210.0424.03表4-36 不同算法对accidents进行阈值为0.25数据挖掘算法FP_growthEclat时间(ms)9409419196项集(个)474845474845单个项集时间(ms)0.200.040表4-37 不同算法对accidents进行阈值为0.20数据挖掘算法FP_growthEclat时间(ms)23915973500项集(个)12410691241069单个项集时间(ms)0.190.059表4-38 不同算法对accidents进行阈值为0.15数据挖掘算法FP_gro

50、wthEclat时间(ms)732903521652项集(个)39571953957195单个项集时间(ms)0.1850.13对表4-34表4-38分析,可以得知Apriori在频繁项集数目项集数目较多时,全面落后于Fp-growth算法和Eclat算法,它所耗费的时间和它的效率不在一个数量级上。所以对比分析就在Fp-growth算法和Eclat算法中进行。可以看出Eclat算法一直优于Fp-growth算法,但是在阈值大于0.25之后,Eclat算法效率有降低的趋势,而Fp-growth算法的效率虽然相比Eclat算法较低,但是它的效率依然在缓慢提升;如果按照这个趋势发展,Fp-growt

51、h算法的效率很可能超过Eclat算法。4.3.4 不同算法对connect进行各个阈值挖掘表4-39 不同算法对connect进行阈值为0.35挖掘(未完成运行)算法Apriori时间(小时)10.5项集(个)79555单个项集时间(ms)475.14在对connect数据集进行数据挖掘时,由于在编译器中限制了运行内存的大小,导致Fp-growth算法和Eclat算法在运行时会直接发生内存溢出异常,而Apriori算法虽然运行的异常缓慢,运行了10.5个小时只出了一小部分结果,可以预见,在大量的时间下,Apriori算法会运行出最终结果。5 不同算法的优势与不足Apriori算法的优势:在对T

52、10I4D100K进行数据挖掘时,表现最为突出,速度是Fp-tree算法和Eclat算法的近40倍。表明如果数据集内数量庞大,几乎没有频繁项集的情况下,Apriori的效率有绝对的优势。该算法对connect数据进行数据挖掘,可以得知,Apriori所耗费的物理内存要远小于Fp-tree。所以,Apriori更加适合只有很少频繁项集的数据集。由于其对物理内存的要求不高,所以如果设备的物理内存少,而且数据集庞大,频繁项集多的情况下,Apriori算法也是很好的选择。Apriori算法的不足:在频繁项集数量极少的数据集上有优异表现的Apriori,在频繁项集数目较多的情况下就全面落后于Fp-tre

53、e和Eclat,它对这样的数据集进行数据挖掘时,效率会差另外两个算法十倍百倍或者更多。并且由于Apriori的运行原理,每发现一个项集,就要完整遍历一遍数据集。在频繁项集数目较多时,会对物理存储设备造成较大的损耗。Fp-growth算法的优势:通过对T10I4D100K的数据挖掘,Fp-growth算法的稳定性很高,波动很小,花费的时间即使在频繁项集数目有一个突变时也无明显变化。在对mushroom数据集进行高阈值数据挖掘时,是三个算法中表现最突出的。可以得知Fp-treeh算法擅长对数据集数量中等,并且项集数目较少的数据集进行数据挖掘。Fp-growth算法在对accidents进行数据挖掘时,Fp-growth算法在实验阈值内的效率并没有超过Eclat算法,但是会随着阈值的降低,效率提升的速度会超过Eclat算法。表明Fp-growth算法在对数据量较少,频繁项集数量多的数据集进行低阈值数据挖掘时,也会有出彩的表现。Fp-growth算法的不足:虽然在T10I4D100K数据集上表现出了很好的稳定性,但是所花费的时间与Apriori算法相比还是略长。在对mushroom数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论