一种自适应快速关联规则挖掘算法的制作方法

文档序号:2412312阅读:107来源:国知局
专利名称:一种自适应快速关联规则挖掘算法的制作方法
1)技术领域数据挖掘是人工智能领域的一个重要分支,而关联规则的挖掘则是许多数据挖掘问题的重要任务,然而,现有的各种算法都是在特定的数据环境下反映出其较好的效率和性能的,因此,寻求一种能够自动适应各类数据特征,保持其良好效率的算法是十分有意义的工作。本发明就是依据这样一种思想,提出了一种基于超结构的自适应的频繁模式挖掘的新方法。
2)背景技术在国际上现有的关联规则挖掘算法主要分为两大类,第一类是Apriori算法(R.Agrawaland R.Srikant.Fast algorithms for mining association rules.In VLDB’94,pages 487-499),此类算法都是基于产生候选项集的,也就是由频繁1-项集产生2-项候选集,扫描数据库得到各2-项候选项的支持度,根据支持度阈值得到2-项集的频繁项集,再根据(k-1)-项候选项集产生k-项集的方式,直到挖掘结束为止,这种些算法的缺点是需要不断产生候选项集,并不断地进行数据库的扫描,挖掘k-项频繁项集则需要扫描k遍数据库,显然将影响挖掘速度;第二类方法是不需要产生候选项集的挖掘算法,这类算法的代表有FP-Tree算法(J.Han,J.Pei,and Y.Yin.Mining frequent patterns without candidate generation[C].In SIGMOD’00,pages 1-12)、H-Mine算法(J.Pei,J.Han,H.Lu,S.Nishio,S.Tang,and D.Yang.H-MineHyper-structure Mining of Frequent in Large Database[C].Proc.2001 Int.Conf.on DataMining(ICDM’01),San Jose,CA,Nov.2001)等,这类算法的优点是不需要产生候选项集,在内存能满足要求的情况下只需两次扫描数据库,与Apriori算法相比,具有较快的挖掘速度,但是如果内存无法满足要求时,这类算法就变得相对较为复杂,而且FP-Tree算法对于短模式或是数据库密度较低的情况下的挖掘效率相对较低,H-Mine算法是基于某种超结构的,数据库中的每条纪录作为超结构中的一个条目,数据库越大超结构也就越大,对于大数据库的数据挖掘显然是不适宜的。因此寻求一种相对简单易行又能能够自动适应各类数据特征,同时可以保持叫高效率的算法,是数据挖掘研究工作所追求的,本发明就是以此为出发点,提出了一种基于超结构的自适应关联规则挖掘算法。
3)发明内容本发明的目的在于针对现有关联规则挖掘算法中存在的不足,提出了基于可伸缩的超结构的关联规则挖掘算法。该算法与现存算法相比,具有更强的适应性,同时在效率方面在各种条件下均能优于Apriori算法。
本发明基于一种新颖的伸缩超结构的构造方法,提出了一种能够自动适应计算机内存要求的来构建超结构的算法,以减少对数据库的扫描次数。并采用了一种新颖的数据库划分新方法。本发明既具有较好的适应性,有保证了高的挖掘效率。
本发明提出的“一种自适应快速关联规则挖掘算法”主要包括以下内容(1)超结构的构造超结构的头表包含两个域,即项数域和指针域,其指针指向具有该项数的一个哈希链结构。超结构示意图如说明书附图中的

图1所示。其超结构头表的构造采用动态方式,并根据计算机可用内存情况自动调整构建头表的大小。
(2)哈希链的构造a.链地址函数的构造链地址函数构造如下h(k′′,k′′+j′′,···,n′′)=(Σi=k′′n(2i-1)zi)modp′′---(1)]]>式中h(k″,k″+j″,…,n″)是链地址函数,k″,k″+j″,…,n″是项编号;当i∈B′时,zi=i;否则zi=0,p″可视情况分别取p、pq或pq′。其中p、pq的值计算如下p=2m-(m+1) (2)pq=2q-(q+1) (3)式中m、q分别是可能出现的最大项集中频繁1-项集的项数和数据库中实际出现的最大项集中的频繁1-项集的项数;pq′是根据项密度调整后的pq值。
b.哈希链结构哈希链结构中由哈希链头表和头表节点所指向的链表节点所组成。其哈希链头表及链表节点结构如说明书附图中的图2、图3所示。
图中,链址由哈希函数h(k″,k″+j″,…,n″)计算得到,头表中的计数为该头表节点所连结的所有链表节点中的计数的和,指针1指向下一头表节点,指针2指向相关的链表节点;链表节点中的计数为该链表节点中模式累计出现的次数;链表节点中的模式即为交易项的集合(或项编号的集合)。
c.哈希链的构建传统的哈希链地址构造是首先根据哈希函数计算出所有的可能地址,然后在对应的地址上构造链表,这种方式常常会在许多地址上出现空指针,这样会浪费很多空间,为了在数据挖掘中节省空间的开销,本发明链地址结构的构造采用动态构造,只对扫描存在的模式构造链地址结构。所有具有相同项数的哈希链连接到具有同一项数超链头表指针上。
链地址结构中的头表节点中包含三个域,其中“计数”记录该地址所指的所有模式的计数之和,这样,在频繁模式挖掘过程中,只需考虑那些头表节点中“计数”大于等于最小支持数的节点,这样可以大大节省挖掘的时间。
在构建哈希链时,频繁1-项集的数据库的每条交易,一次性调入内存,在内存中产生其所有的子集,并将其保存到具有相同|X|值的哈希链之中(如该项集已存在,则只需对其相应的“计数”加1即可。
(3)超结构内存需求计算设b1为超结构中每个项头表节点所占的字节数,b2为哈希链中每一头表节点的字节数,k-项模式Xk的链表节点的字节数为b3=a+k×d(这里a,d是常数,a为每个链表节点除存储模式Xk以外的字节数,d表示项模式Xk中每一项的字节数)。再设i-项(i=1,2,…,m)的项密度调整系数为βi,设最大项数为y,则构建项集的超结构的字节数计算如下(1)设b1j′是包含项数为2≤|X|≤j的项集的项头表的总的字节数,则有b1j′=b1×(j-1)。
(2)设b2j′是包含项数为2≤|X|≤j的项集的哈希链头表的总的字节数,则有
(3)包含项数为2≤|X|≤j的项集的哈希链链表节点的总的字节数 (4)求得前j-项的字节数之和为byj=b1j′+b2j′+b3j′,这里,当y和j均取m值时,即为最大项数为m的全部m-项字节数之和,以bmm表示;当y和j的取值分别取m和i值时,即为最大项数为m的前i项字节数之和,以bmi表示;当y和j的均取q时,为最大项为q的全部q项字节数之和,以bqq表示。
(4)划分数据库a.划分方法设频繁项投影数据库TDB,投影数据库中的每一投影为一个项集X,有1≤|X|≤m′,则将投影数据库TDB按照|X|的值划分成m′个部分,即划分成D1,D2,…Di,…,Dm′,这里Di(1≤i≤m′)中只有|X|=i的项集,例如D1中只有1-项集,而Dm′中只有m′-项集。如果是由于内存不能满足构建超结构的需要,则可以将每一个Di划分成n个部分,即对于具有相同|X|=i的项集再划分成n个部分,形成具有m′行n列逻辑上不重叠的子数据库矩阵YY=D11D12···D1nD21D22···D2n············Dm′1Dm′2···Dm′n]]>b.划分方法的使用如果按照(15)式计算得到的b值能够满足计算机内存的要求,则无需对投影数据库进行划分处理,如果b值较大,则需要在一定的条件下对数据库进行划分处理。
c.基于数据库划分的频繁模式挖掘算法基于数据库划分的频繁模式挖掘算法见说明书附图中的图4(挖掘算法主模块)、图5(挖掘算法过程x1)、图6(挖掘算法过程x2)、图7(挖掘算法过程x3)。
(5)自适应挖掘过程本发明的算法设计如下算法说明1)当bmm<M时,直接构造完全频繁项集超结构;2)当bmm>M且bm2<M(或bqq>M且bq2<M)时,调用过程x3;bmm>M且bm2<M且bqq<M时,直接构造完全频繁项集超结构;3)当bq2>M时,调用过程x2,采用划分技术以后进行挖掘。
4)算法有效性分析目前比较有效的Apriori类算法是DHP算法和DCP算法,而DCP算法的有效性与操作系统的性能具有非常大的相关性,因此,在此主要将我们的算法与DHP算法进行比较分析,而对于构造2-项集候选项的超结构时就超过可用内存的情况时,则与基于Apriori的划分挖掘算法作比较分析。
扫描数据库记录数量分析(1)当bmm<M时,AD-Mine算法一次性构建超结构,扫描数据库两遍,且第二遍扫描一次完成;而DHP算法扫描数据库的次数需多于2遍,且第二遍开始每遍的扫描次数与候选项的数量成正比。因而AD-Mine算法有更少的数据库扫描次数。
2)当bmm>M但bm2<M时,此时两种算法采用相同的交易剪枝技术,当bj(i)+bj(i-1)<M(i=3,4…,m)时,AD-Mine算法扫描数据库的次数必少于DHP算法;而当bj(i)+bj(i-1)>M且bj′(i)<M(这时的bj′(i)通过预测得到)时,采用逐项构造超结构,且只构造其所有(i-1)-项子集均频繁的i-项超结构,此时AD-Mine算法构建全部i-项超结构只需扫描数据库一次,而DHP算法是li(li为i-项候选项数)次;当bj′(i)>M时,由于AD-Mine算法的划分技术和DHP的候选项问题,扫描记录数前者必然更少。因而,整个挖掘过程的总体扫描次数将低于DHP算法。
3)当bm2>M时,AD-Mine算法首先采用采样技术获取各项βi和q值。当bqq<M时,一次性构建完全频繁项集超结构,只需扫描两次数据库;当bqq>M且bq2<M时,采用分段构建超结构,总的扫描次数必然小于DHP算法的扫描次数;当bq2>M时,对于Apriori类算法中较为有效的处理方法是文献[6]中提出的方法,需采用采样和划分方法进行处理。AD-Mine算法与文献[6]算法相比有以下优势①新的划分方法第降低了对数据库的扫描次数;②产生更少的局部候选项和全局候选项;③按|X|值逐项产生频繁项集,逐项输出,需要空间较少;④采用按|X|值逐项产生全局频繁项集,一旦第i项不再有频繁项集,则挖掘过程结束,这样可以减少一些不必要的挖掘操作。因此,在此种情况下,AD-Mine算法比Apriori类算法仍然具有更少的数据库扫描次数。
超结构内存需求算法有效性分析超结构内存需求计算主要涉及到二项式的计算,二项式的计算可以通过累乘得到,对于一个最大项数为m的超结构,通过约简处理其bmm的计算需要的循环累乘次数为m2/2+m-2次。现假设AD-Mine方法与DHP算法相比,可以减少扫描数据库的交易条数为N1,数据库TDB中的交易数为N2条,Tcpu表示每一循环的计算时间,Tdisk表示扫描每一条交易的时间,而N1=Σi=2L(li×N2)]]>(这里L为最大频繁项集中的项数,li是为了获取i-项频繁项集时的候选项数量),一般来说,Tdisk/Tcpu=105~106],如θ为虚拟内存等操作系统技术可能提高的扫描数据库的速度系数(θ>1,需要说明的是对于一个大数据而言其θ值是有限的),则对于第1)种情况,构建完全超构时,当(m2/2+m-2)<(105/θ)Σi=2L(li×N2)]]>时是有效的,可以看出,对于具有正常的m值的情况下,等式的右边将远远大于左边,N2越大AD-Mine算法的效果越明显;同时,也可以看出,对于一个大数据库而言,扫描遍数及候选项数的多少是影响效率的关键因素;对于第2)种及第3)种情况,AD-Mine算法仍然由于有较少的扫描数次数,而获得比apriori类算法更高的效率。
数据库划分有效性分析数据库划分的有效性反映在划分后减少的扫描交易数是否大于划分过程需要增加的对数据库中交易的扫描次数上。现假设有D个交易的投影数据库TDB按项值划分成m′个部分,这样D个交易划分成l1个1-项集,l2个2-项,…,lm′个m′-项,m″为最大频繁项集中的项数,产生的2-项、3-项,…,m″-项候选项集的数量分别为c2,c3,…,cm″(这里ci(i=2,3,…,m″)是自然数),又设N′为采用划分方法与不划分数据库两种情况的扫描数据库的交易总数的差,则可以通过推导得出当使用矩阵Y时N′=c2Σi=11li+c3Σi=12li+···+cm′′Σi=1m′′-1li-Σi=1m′li---(2)]]>其它情况下N′≥Σi=11li+Σi=12li+···+Σi=1m′′-1li---(3)]]>(3)式必定满足N′>0,即划分必定是有效的;(2)式中最后一项是划分过程需要增加的扫描的交易数量,其它项表示划分后可以减少的扫描的交易数量。在AD-Mine算法中可以看出,只是在某项超结构足够大,内存无法满足其要求时,才采用数据库的划分方法,此时必定具有较大的m″值,N′>0的条件总是可以满足的,即划分式有效的。从模拟研究也证实了以上理论推断。设数据库中的交易数量为D=100000,m′取值分别为10及100,l1=l2=…=lm′=D/m′,如图8所示,当m′=10,m″≥4时,或m′=100,m″≥6时,N′>0;N′随着m″增加呈指数型增加趋势。因此,对于大的m″值划分挖掘的效率是显著的。
综上所述,AD-Mine算法比Apriori类算法具有更高的效率。
权利要求
一种自适应快速关联规则挖掘算法,其特征包括可伸缩型超结构的构建,自适应超结构的关联规则挖掘算法及过程。1.可伸缩超结构构建方法包括超结构所需内存计算方法以及动态超结构的构建。2.自适应挖掘算法根据计算机可用内存,自动调节构建超结构的大小的自适应算法。
全文摘要
关联规则的挖掘则是许多数据挖掘问题的重要任务。然而,现有的各种关联规则挖掘算法都是在特定的数据环境下反映出其较好的效率和性能的,本发明提出了一种自适应的快速关联规则挖掘算法,该算法通过构造一种新颖的伸缩超结构,设计了一种能够自动适应计算机内存要求来构建超结构并进行关联规则挖掘的算法。该算法与现存算法相比,对于各种数据环境有更强的适应性,同时在效率方面在各种条件下均能优于Apriori算法。
文档编号G06F17/30GK1627292SQ20031012099
公开日2005年6月15日 申请日期2003年12月12日 优先权日2003年12月12日
发明者叶飞跃 申请人:叶飞跃
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1