




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陕西理工学院毕业论文 AprioriAll和GSP算法的研究及实现作者:刘剑青(陕西理工学院 数学系信息与计算科学专业044班 陕西 723000) 指导教师:周涛摘要:序列模式挖掘即从序列数据库中发现频繁子序列以作为模式,它是一类重要的数据挖掘问题,有着非常广泛的应用前景,被应用在包括顾客购买行为的分析、网络访问模式分析、科学实验的分析、疾病治疗的早期诊断、自然灾害的预测、DNA 序列的破译等方面。的效率上。本文我就是在对序列模式挖掘的其中两种算法进行研究,即:Armorial和GSP算法。首先讲述了序列模式的一些概念及基本原理。并通过具体的实例演示算法的执行过程,进而达到掌握理解的成度。再次基础上采用vc编程语言和Access数据库进行实现,最后对程序运行结果进行分析和总结。关键字:数据挖掘 Armorial算法 GSP算法Two Data Mining AlgorithmsAuthor:Liu Jianqing(Grade04,Class04, Information and calculation science,Department of Mathematics,Shaanxi University of Technology,Hanzhong 723000,Shaanxi)Tutor: Zhou TaoAbstract: Sequential pattern mining from the sequence found in the database as a sequence of frequent pattern, it is a kind of important data mining issues, has a very wide application, be used in customer buying behavior, including the analysis of network access mode of analysis, the scientific experiments Analysis, the early diagnosis of disease, natural disasters forecast, DNA sequences deciphered, and so on. The efficiency. In this paper, I was in the sequence pattern mining one of two algorithms to study, namely: Armorial and GSP algorithm. First on the sequence patterns of some basic concepts and principles. And demonstrate through concrete examples of the implementation of the algorithm, then reached into the grasp of understanding. Used vc again based on the programming language and Access database to achieve the end result of running the analysis and synthesis. Keyword: Data mining algorithm Aprioriall algorithm GSP Algorithm目录序列模式挖掘的基本概念- 1 -2AprioriAll算法学习- 2 -21基本思想- 2 -22 AprioriAll算法的基本思路- 2 -23 应用举例- 2 -24 AprioriAll算法程序实现- 5 -241 AprioriAll算法的描述- 5 -242 AprioriAll算法的程序- 6 -243 AprioriAll算法程序的结果- 6 -244 AprioriAll算法程序运行结果分析- 7 -25 AprioriAll算法的本质- 7 -26 AprioriAll 算法存在的问题- 7 -3GSP 算法的学习- 8 -31 GSP 算法的基本思想- 8 -32 GSP 算法的基本思路- 8 -33 产生候选序列模式的步骤- 8 -34 后选集计数- 9 -35 GSP 算法程序实现- 10 -35 1 GSP 算法的程序- 10 -35 2 GSP 算法程序结果- 10 -354 GSP算法程序运行结果分析- 12 -36 GSP 算法分析- 12 -37 GSP 法存在的问题- 12 -4对于Apriori 的算法小结- 12 -5研究发展展望- 12 -致谢- 13 -参考文献- 14 -附件一:- 15 -附件二- 32 - 陕西理工学院毕业论文 序列模式挖掘的基本概念项目集或称项集(Itemset)是各种项目组成的集合。设I=i1,i2,im是一个项目集合,事务数据库D=t1,t2,tn是由一系列具有惟一标识TID 的事务组成,每个事务ti(i=1,2,n)都对应I上的一个子集。设I1I,项目集I1在D上的支持度(support) 是包含I1的事务在D中所占的百分比,即support(I1)=|tD|I1t|/|D|对项目集I 和事务数据库D,I中所有满足用户指定的最小支持(Minsupport)的项目集,即大于或等于Minsupport的I的非空子集,称为频繁项目集或者大项目集。在频繁项目集中挑选出所有不被其它元素包含的频繁项目集称为最大频繁项目集(Maximum Frequent Itemsets)或最大大项目集(Maximum Large Itemsets)。Agrawal等人建立了用于事务数据库挖掘的项目集格空间理论,这个理论的核心思想是:频繁项目集的子集是频繁项目集; 非频繁项目集的超集是非频繁项目集。这个理论是经典的数据挖掘理论,也是下面将讨论的算法的理论依据。设I=i1,i2,im是项集,ik(1km)是一个项,序列S记S=,其中sj(1jn)为项集(也是S的元素)。每个元素由不同项组成。序列的元素可表示为(i1,i2,ik)。序列包含的项的个数称为序列的长度,长度为k 的序列记为k - 序列。设=,=,如果存在整数1j1j2jnm,使得a1bj1,a2bj2,anbjn,a1bj1则称序列为序列的子序列,又称序列包含序列,记为,序列在序列数据库S中的支持数为序列数据库S中包含序列的序列个数, 记为Support(),给定支持度阈值,如果序列在序列数据库中的支持数不低于,则称序列为序列模式,长度为k 的序列模式记为k-模式。序列是不同项集的有序排列。 定义1(序列)I=i1,i2,im是项集,ik(1=k=m)是一个项,序列S记为S其中sj(1=j=n)为项集(也称序列S的元素),即sjI,每个元素由不同项组成,序列的元素可表示为(i1,i2,ik),若一个序列只有一个项,则括号可以省略。 序列包含的所有项的个数称为序列的长度。长度为l 的序列记为l -序列。定义2(子序列):序列T是另一个序列S=的子序列,满足下面条件:对于每一个j,1=j=m-1,有ijij+1i且对于每一个j,1=j=m存在1=k=V,则称序列S为序列数据库D中的一个(频繁)序列模式。 序列模式挖掘的任务就是找出数据库中所有的序列模式,即那些在序列集合中出现频率超过最小支持度(用户指定最小支持度阀值)的子序列。 定义4:(序列关联规则)对于给定的项集I=i1,i2,Im以及序列S,T,形如ST的表达式称为序列关联规则。设有种子集合Lk-1,候选序列集合Ck 通过将- 1 -种子集合Lk- 1与Lk-1相连接得到。设s1、s2分别为种子集合Lk - 1中序列,s1、s2能够相连接得到一个候选k序列的充要条件为s1拿去首项所得的子序列等于s2拿去末项所得的子序列。产生候选k序列的规则为将序列s1与序列s2的末项相连。若s2的末项为s2的最后一个元素,则该项变成s1的最后一个元素;否则,该项变成s1最后一个元素的最后一项。2AprioriAll算法学习 21基本思想在每一次扫描(pass) 数据库时,利用上一次扫描时产生的大序列生成候选序列,并在扫描的同时计算它们的支持度( support) ,满足支持度的候选序列作为下次扫描的大序列。第1 次扫描时,长度为1 的频繁序列模式作为初始的大1 序列。22 AprioriAll算法的基本思路1) 排序阶段 利用客户标识customer 2id作为主关键字以及事务发生的时间transaction 2 time作为次关键字对数据库D排序,该步骤将原始的事务数据库转换成客户序列的数据库.2) 发现频繁项集阶段 利用关联规则挖掘算法找出所有的频繁项目集.3) 转换阶段 在已经转换的客户序列中,每一个事务被包含于该事物中的所大项目集来替换,如果一个序列不包含任何大项目集,则在已经转换的序列中不应该保留这项事务.4) 序列阶段 利用核心算法找出所有的序列模式. 23 应用举例表一交易发生的时间客户标识购买项June 10042A,BJune 12045HJune 15042CJune 20042D,F,GJune 25044CJune 25044C,E,GJune 25041CJune 30041HJune 30044D,GJuly 25044H重新排序阶段表二客户标识交易时间购买项1June 2504C1June 3004H2June 1004A,B2June 1504C2June 2004D,F,G3June 2504C,E,G4June 2504C4June 3004D,G4July 2504H5June 1204H由客户标识及交易发生的时间为关键字所排序的数据库表三客户号客户序列12345客户序列描述数据库表四频繁项集映射(C)1(D)2(G)3(DG)4(H)5频繁项集分别是(C)、(D)、(G)、(D,G)和(H)转换阶段:表五客户标识原始客户序列转换后客户序列映射后序列12345序列阶段:表六客户号客户序列12345本例子我们设定的Min-upport=2,其求解过程如下表。表七 L1:1-序列支持度42444L2:表八2-序列支持度243322322L3:表九3-序列支持度22322L4:表十4-序列支持度2最大频繁子序列:表十序列支持度1 2 3 421 3 524 5224 AprioriAll算法程序实现241 AprioriAll算法的描述AprioriAll算法输入:大项集阶段转换后的序列数据库输出:所有最长序列(1) L1=large1- sequence;/大项集阶段得到的结果(2) For(k=2;Lk-10;k+)do begin(3) Ck=Candidate generate(Lk-1)/Ck是从Lk-1中产生的新的候选者(4) For each customer sequence c in the database do/对数据库中的每一个顾客序列c(5) Increment the count of all candidates in Ck that are contained in c;/对包含于c中Ck内的所有候选者计数(6) Lk=Candidates in Ck with minimumsuport;/Lk为Ck中满足最小支持度的候选者(7) End(8) Answer=Maximal Sequences in kLk其中候选集生成算法Ck=Candidate generate(Lk-1)如下:输入:所有的大(k 1)序列的集合输出:候选 Ck(1) Insert into Ck/首先进行 Lk-1与Lk-1的连接运算select p.litemset1,p.litemseti-1,q.litemseti-1from LK-1 p,Lk-1 q/p和q是Lk-1 中两个不同的序列串where p.litemset1=q.litemset1,p.litemsetk-2=q.litemsetk-2;(2) delete all sequences c Ck such that some/对候选者进行修剪(修剪的理论是频繁模式集的子集合也是频繁的)2.4.2 AprioriAll算法的程序本程序采用了vc开发工具和Access数据库。见文章后附件2.4.3 AprioriAll算法程序的结果本程序以I1,I2,I3,I4,I5,I6,I7,I8,I9,I10作为项目集。Minsupport=0.2,序列数据库如下:其经程序运行,结果如下:244 AprioriAll算法程序运行结果分析在本程序中,我以AprioriAll算法的基本原理作为依据进行编程实现其功能。其输出结果也达到了AprioriAll算法预期的结果。运行时间仅为0.297秒。可以进行初步的应用目的。25 AprioriAll算法的本质AprioriAll本质上是Apriori思想的扩张,只是在候选集产生和成频繁序列方面考虑序列元素有序的特点进行处理(项目集中的元素或者序列集中的元素按顺序排列,如按字典顺序或者频率高低顺序),都将有利减轻数据挖掘的任务。(文献1的作者毛国君于2002 年针对关联规则挖掘问题提出了项目序列集的概念,并指出使用项目序列集可以简化挖掘的过程)。26 AprioriAll 算法存在的问题1) 容易生成庞大众多的候选序列;2) 需要多次扫描数据库。候选序列的长度增加1,就需要扫描1次数据库;3) 不易发现长序列模式,因为随着需要挖掘的序列模式长度的增加,侯选序列的数量会成指数级增长;4)在发现序列模式的过程中,每次扫描数据库都要在数据转换中产生很大的开销。3GSP 算法的学习31 GSP 算法的基本思想 给定一个事务数据库,GSP算法需要对事务数据库进行多遍扫描,GSP算法挖掘序列模式的基本架构如下:第一遍扫描确定该数据库中每一项的支持度,即确定该事务数据库中包含每一项的数据序列的数目。在第一遍扫描结束后,该算法知道哪些项是频繁的,即产生了频繁1项集,而每个频繁1项集即形成了频繁1序列。由频繁k序列集合Lk可产生候选(k+1)序列集合Ck+1,候选(k+1)序列集合中的每条候选序列均包含相同个数的项,且其项的个数均比其对应的种子频繁序列集合Lk中项的个数大1。在产生每一条候选(k+1)序列的同时对其计数,当所有的候选(k+1)序列均已产生后,算法根据每条候选(k+1)序列的计数确定哪些候选(k+1) 序列形成频繁(k+1)序列,并作为下一步的种子集合。当由某个种子集合Lk产生的候选序列集合为空时,算法结束。3.2 GSP 算法的基本思路1 长度为1的序列模式L1,作为初始的种子集。2 根据长度为i的种子集Li通过连接操作和剪切操作生成长度为i+1的候选i+1的候选序列模式Ci+1;然后扫描序列数据库,计算每个候选序列模式的支持数,产生长度为i+1的序列模式Li+1,并将作为新的种子集。3 重复第二步,直到没有新的序列模式或新的候选序列模式产生为止。L1 C2 L2 C3 L3 C4 L4 3.3 产生候选序列模式的步骤1 连接阶段:如果去掉序列模式s1的第一个项目与去掉序列模式s2的最后一个项目所得到的序列相同,则可以将s1与s2进行连接,即将s2的最后个项目添加到s1中。2 剪切阶段:若某候选序列模式的某个子序列不是序列模式,则此候选序列不可能是序列模式,将它从候选序列模式中删除。例子:下表演示了如何从长度为3的序列模式产生长度为4的候选序列模式。在连接步中,种子序列和种子序列连接可产生候选4序列;种子序列连接可产生候选4序列。其余的序列均不满足连接条件。在剪枝步中,候选4序列被剪去,因为其连续子序列不包含在频繁3序列集合L3中。Sequential patternsWith length 3Candidate 4-SequencesAfter JoinAfter Pruning3.4 后选集计数对于事务数据库中的每个数据序列,需对其每一项进行哈希,从而确定应该考察哈希树哪些叶子节点中的候选k序列。对于叶子节点中的每个候选k序列,需考察其是否包含在该数据序列中;对每个包含在该数据序列中的候选序列,其计数值加1.在考察某个数据序列d是否包含某个候选k序列s时,需分成两个阶段:1)向前阶段:在d中寻找从s的首项开始的连续子序列xi-xj(imaxgap,此时转入向后阶段,否则,如在d中不能找到s的某个元素,则s不是d的子序列。2)向后阶段:由于此时time (xj)-time(xi)maxgap,故此时应从时间值为time(xj)-maxgap后重新搜索xj-1,但同时应保持xj-2位置不变。当新找到的xj-1仍不满足time(xj)-time(xi)maxgap时,从时间值为time(xj-1)-maxgap后重新搜索xj-2 ,同时保持xj-3位置不变,直至某位置元素xj-i满足条件或x1不能保持位置不变,此时,返回向前阶段。A. 当xj-i满足time(xj-i)-time(xj-(i+1)maxgap时(此时x1保持位置不变),向前阶段应从xj-i位置后重新搜索xj-i+1及后续元素;B. 当x1不能保持位置不变时,向前阶段应从原x1 位置后重新搜索x1及后续元素;例2表2给出了某个事务数据库的一个数据序列。现假设最大事务时间间隔maxgap=30,最小事务时间间隔mingap=5,滑动时间窗口ws=0,考察候选数据序列s =是否包含在该数据序列中。表1示例数据序列事务时间事务项101 2254 6453501 2653902 4956表2事务项的事务时间链表事务项事务时间1 10 50 NULL2 10 50 90 NULL3 45 65 NULL4 25 90 NULL5 NULL6 25 95 NULL7 NULL解析过程:首先寻找s的第一个元素(1,2)在该数据序列中的第一次出现位置,对应的事务时间为10。由于最小事务时间间隔mingap = 5,故应在事务时间15之后寻找s的下一个元素(3)。由表2中可以看出,元素(3)在事务时间15后的第一次出现事务时间为45;由于45-1030,故转入向后阶段,重新寻找元素(1,2)的第一次出现位置。由表2中可以看出,在事务时间10后( 1,2)的第一次出现位置对应的事务时间为50,故下一步应该在事务时间55后寻找元素(3),由表2看出,元素(3)的出现时间为651此时考察其是否满足最大时间间隔约束:65-50=1530,故其满足最大时间间隔约束。此时转入向前阶段,继续寻找(3)的下一个元素(4)在事务时间70之后的第一次出现位置。由表2中可以看出,元素(4)的出现时间为90,且90-65=2530,满足最大时间间隔约束,且元素(4)为候选序列s的最后一个元素,故数据序列d包含候选序列s,考察结束。在考察某个数据序列d是否包含某个候选k序列s的两个阶段中,需要在数据序列d中不断寻找候选序列s中的单个元素。故将数据序列d作如下转换:对d中的每一项建立一个此项出现时间的链表。此时,若欲寻找某项x在事务时间t后的第一次出现位置对应的事务时间,只需对x的事务时间链表遍历直至找出某个大于t的事务时间。若欲找出候选序列s的某个元素si=(x1xn)在事务时间t后的第一次出现,只需遍历其中每项xi(1in)的事务时间链表以找出xi在事务时间t后第一次出现的事务时间;若time(xn)-time(x1)ws,则已经在该数据序列d中找到si,可以继续在d中寻找s的下一个元素;否则,令t=time(xn)-ws并重复此过程。3.5 GSP 算法程序实现3.5.1 GSP 算法的程序本程序采用了vc开发工具和Access数据库。见文章后附件23.5.2 GSP 算法程序结果本程序以I1,I2,I3,I4,I5,I6,I7,I8,I9,I10作为项目集。Minsupport=0.3,序列数据库如下:3.5.3 GSP 算法程序运行结果354 GSP算法程序运行结果分析在本程序中,我以GSP算法的基本原理作为依据进行编程实现其功能。其输出结果也达到了GSP算法预期的结果。可以进行初步的应用目的。36 GSP 算法分析与AprioriAll 算法相比,GSP 算法统计较少的候选集,并且在数据转化过程中不需要事先计算频繁集。GSP 算法的时间复杂度与序列中的元素个数成线性比例关系,执行时间随数据序列中字段的增加而增加,但是增加不明显。37 GSP 法存在的问题1) 如果序列数据库的规模比较大,则有可能产生大量的候选序列模式;2) 需要对序列数据库进行循环扫描;3) 对于序列模式的长度比较长的情况,算法很难处理。4对于Apriori 的算法小结从以上两个算法及AprioriSome 等算法,可以发现基于Apriori 的候选集生成- 测试类方法通常的思路如下:(1) 确定初始种子集(通常的作法是扫描序列数据库,把得到的长度为1 的序列模式L1 作为初始的种子集) 。(2) 通过某种规则连接序列以得到更长的候选序列模式,并尽可能早地剪掉那些不是序列模式的候选序列模式;然后扫描序列数据库,删除不是序列模式的候选序列模式;把生成的序列模式作为新的种子集。(3) 重复步骤(2) ,当找不到新的序列模式,或者没有候选集产生的时候算法中止。5研究发展展望 序列模式挖掘是当前数据挖掘领域中一个较新而且非常活跃的研究分支,有着广泛的应用价值。文章在介绍了序列模式挖掘的基于Apriori的两种基本算法ApriorAll和GSP算法相关概念后,对两类序列模式挖掘的几个经典的算法进行了描述和分析,不难发现,基于模式扩展的方法是个前途很好的发展方向。模式扩展方法还有很多工作要做,如闭合集挖掘,在特定领域的针对性研究等等。致谢在我毕业论文的整个设计的过程中,我得到系上的大力支持和老师的全力指导,特别是我的指导老师周涛。从他那里我们不仅学到了知识,更多的是学到做人做事的精神!这些值得我一生去深思!再此我给帮助过我的老师们说声谢谢!参考文献1毛国君,段立娟,王实,等.数据挖掘原理与算法M.北京:清华大学出版社,2005.2 Han Jiawei,Pei Jian,Yan xifeng.From Sequential Pattern Mining to Structured Pattern Mining:A Pattern- GrowthApproachJ.Journal of Computer Science and Technology ,2004,19:257-279.3 Agrawal R,Srikant R.Mining sequential pattern A.Proc1995 Int Conf Data Engineering(ICDEs95)C.Chinese Taipei:s.n.,1995.3-14.4Srikant R,Agrawal R.Mining sequential pattern:Generalizations and performance improvementsC.Proc 5th Int ConfExtending Database Technology(EDBTs96).Avignon ,France:s.n.,1996.3-17.5Pei Jian,Han Jia-Wei ,Mortazavi- Asl B,etal.Mining se2quential pattern by Pattern-Growth:ThePrefixSpan Ap2proachJ.IEEE TKDE ,2004 ,16 (10):9-13.6 夏明波,王小川,孙永强,金士尧 序列模式挖掘算法研究。计算机技术与发展学报,第十六卷.第四期.7 都志辉,陈渝,刘鹏.网格计算M1 北京:清华大学出版社,2002.8 Globus Toolkit 3.0.2.The Globus Alliance.AvailableEB/OL. 9 Tuecke S,Czajkowski C,Foster I,etal.Grid Service Speci2fication Draft 11/4/02.OGSI Working Group,Global Grid ForumEB/OL.10 Joseph J,Fellensein C1 网格计算M1 战晓苏,张少华,译1北京:清华大学出版社,2005.11 OGSI.NET:OGSI-compliance on the.NET FrameworkEB/ OL.附件一:/ AprioriView.cpp : implementation of the CAprioriView class/#include stdafx.h#include Apriori.h#include time.h#include AprioriSet.h#include AprioriDoc.h#include AprioriView.h#include SetPara.h#include SetElement.h#include #include/#include File.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/strSubItem nItemCount/ CAprioriViewIMPLEMENT_DYNCREATE(CAprioriView, CRecordView)BEGIN_MESSAGE_MAP(CAprioriView, CRecordView)/AFX_MSG_MAP(CAprioriView)ON_BN_CLICKED(IDC_Bn_FreqItem, OnBnFreqItem)ON_COMMAND(ID_Parameter, OnParameter)ON_COMMAND(ID_INPUT, OnInput)/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CRecordView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView:OnFilePrintPreview)END_MESSAGE_MAP()/ CAprioriView construction/destruction/本类的构造函数CAprioriView:CAprioriView(): CRecordView(CAprioriView:IDD)/AFX_DATA_INIT(CAprioriView)m_pSet = NULL;nAllFreqItem=0;/AFX_DATA_INIT/ TODO: add construction code hereCSetElement setDlg;inputElm=setDlg.m_Eleinput;/本类的析构函数CAprioriView:CAprioriView()/进行数据交换void CAprioriView:DoDataExchange(CDataExchange* pDX)CRecordView:DoDataExchange(pDX);/AFX_DATA_MAP(CAprioriView)DDX_Control(pDX, IDC_List_FreqItem, m_List_FreqItem);/AFX_DATA_MAP/创建窗口BOOL CAprioriView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CRecordView:PreCreateWindow(cs);void CAprioriView:OnInitialUpdate()m_pSet = &GetDocument()-m_aprioriSet;CRecordView:OnInitialUpdate();GetParentFrame()-RecalcLayout();ResizeParentToFit();/ CAprioriView printingBOOL CAprioriView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CAprioriView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CAprioriView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printing/ CAprioriView diagnostics#ifdef _DEBUGvoid CAprioriView:AssertValid() constCRecordView:AssertValid();void CAprioriView:Dump(CDumpContext& dc) constCRecordView:Dump(dc);CAprioriDoc* CAprioriView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CAprioriDoc);return (CAprioriDoc*)m_pDocument;#endif /_DEBUG/ CAprioriView database supportCRecordset* CAprioriView:OnGetRecordset()return m_pSet;/ CAprioriView message handlers/点击频繁项集的操作void CAprioriView:OnBnFreqItem() / TODO: Add your control notification handler code hereint nFieldCount=m_pSet-GetODBCFieldCount();/获取数据库中的字段数目int nDbCount; /数据库中的行数CString strValue;CString strIntToString=;clock_t start,stop,tick;/clock_t表示long型,来定义时间double timeused;int nLargeCount=0; int nListFreqItemCount=0; start=clock(); /ClearItem(); /显示列表清空 m_List_FreqItem.InsertColumn(0,Item,LVCFMT_LEFT,100);/在0列的左边插入数据段的Item项m_List_FreqItem.InsertColumn(1,Count,LVCFMT_LEFT,100);/ if (nItemCount=0) /MessageBox(请先进行参数设置,NULL,MB_OK); return;FindLargeItem(); /确定的要插入列表中的数据项 for(int k=1;LargeItemCountk-1!=0;k+) AprioriGen(k,1);/产生候选集/初始化数组for(int mm=0;mmMoveFirst();nDbCount=0;while(!m_pSet-IsEOF() TransGenCand(k,nDbCount); /? /统计计数for(int jj=0;jjnTransCandCount;jj+) for(int jj1=0;jj1MoveNext(); ShowFreqItem(k);stop=clock();tick=stop - start; timeused=(double)tick/CLK_TCK;/strIntToString=;strIntToString.Format(%s%f,strIntToString,timeused);MessageBox(strIntToString,NULL,MB_OK); void CAprioriView:ClearItem() /清除列表显示的内容 m_List_FreqItem.DeleteAllItems (); /列表应该显示的序列数据信息变量while(m_List_FreqItem.DeleteColumn (0);UpdateWindow();for(int kk=0;kknMaxSize;kk+) LargeItemCountkk=0; /将ItemCount列清0for(int kk1=0;kk1nMaxSize;kk1+)for(int kk2=0;kk2nMaxSize;kk2+)LargeItemkk1kk2=; /将Item列清空/候选集产生过程void CAprioriView:AprioriGen(int nCandFreqItem, int nMinSupp)/由L(k-1)生成C(k)CString strTemp1,strTemp2,strRightTemp1,strRightTemp2;CString strTemp,strLeftTemp1,strLeftTemp2;int nstrTemp1,nstrTemp2; int nCandFreqItemCount=0;strTemp1=;strTemp2=;strRightTemp1=;strRightTemp2=;strTemp=;strLeftTemp1=; strLe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盈利能力与风险管理策略的关系试题及答案
- 黑龙江省大庆市一中学2025届数学七下期末统考试题含解析
- 移动互联网企业的技术挑战试题及答案
- 2025年市场风险与机遇分析试题及答案
- 环保投资的财务考量计划
- 网络性能评估试题及答案解析
- 跨学科研讨会策划计划
- 软件技术员试题及答案创新指南
- 加强自我驱动的工作态度计划
- 财务模型与商业模式的协同试题及答案
- 晚期胃癌护理
- 造谣调解协议书范本
- 抗凝药术前停用的指南
- 眩晕护理课件
- 《集成电路基础及其应用》课件
- 2020 年全国硕士研究生入学统一考试英语 ( 一) 试题
- DB64 2115-2024 精神障碍患者康复服务指南
- 2025届江苏省南通市三模(苏北八市)高三第三次调研测试 历史试题(含答案)
- 2024年安徽省粮油经贸有限公司招聘考试真题
- 杭州市苏教版一年级数学竞赛试卷
- 中国航空工业集团导弹院招聘笔试真题2024
评论
0/150
提交评论