此应用程序的某些内容目前无法使用。
如果这种情况持续存在,请联系我们反馈与联系
1. (WO2019028710) 基于图结构数据的候选项集支持度计算方法及其应用
Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15  

附图

0001   0002   0003   0004   0005   0006   0007   0008   0009   0010  

说明书

发明名称 : 基于图结构数据的候选项集支持度计算方法及其应用

技术领域

[0001]
本发明总的来说涉及关联法则领域,且更为具体地涉及基于图结构数据的候选项集支持度计算方法,使用其的频繁项集确定方法和基于前序树的频繁项集确定方法。

背景技术

[0002]
数据挖掘的目标是从一个庞大的数据库中提取出未知的并且有利用价值的信息,关联法则是数据挖掘中最重要的技术之一。关联法则最先是被提出用于解决超市的销售问题。一个大型超市可以收集到很多交易记录,超市经理希望可以从这些交易记录中找到一些有利用价值的信息用来帮助制定销售策略。
[0003]
一条交易记录包含了一个元素的集合,在超市例子中,这些元素代表着一种商品。使用I表示所有元素的集合,X和Y分别表示某些元素的集合,则一条关联法则为形如X→Y的蕴涵式,X是这条关联法则的先导,Y是这条关联法则的后继,并且
[0004]
关联法则的计算一般分为两个步骤:1.找出所有的频繁项集;2.基于第一步中找出的频繁项集找出所有的关联法则。由于第二步非常简单,关联法则的开销基本取决于第一步。
[0005]
基于前序树的Apriori算法是用来计算频繁项集的最著名的并且被广泛使用的算法之一。它计算拥有k个元素的频繁项集需要经过2个步骤:1.根据(k-1)-频繁项集产生出k-候选项集;2.扫描数据库得到k-候选项集的支持度,进而得到k-频繁项集。该算法使用一个前序树来存储频繁项集,前序树的第k层的每个节点都表示了一个k-频繁项集的集合。
[0006]
但是随着算法深度的增加,前序树深度增加,该算法在每个循环的第二步:扫描数据库得到候选项集的支持度中耗费了太多时间。这是因为在使用数据库递归遍历前序树时,前序树深度的增加无法避免的导致数据库的遍历次数增加太多,进而致使消耗大量时间。
[0007]
因此,需要改进的候选项集支持度的计算方法和相应的频繁项集的确定方法。
[0008]
发明内容
[0009]
本发明的目的在于针对上述现有技术中的缺陷和不足,提供新颖的和改进的基于图结构数据的候选项集支持度计算方法,使用其的频繁项集确定方法和基于前序树的频繁项集确定方法。
[0010]
根据本发明的一方面,提供了一种基于图结构数据的候选项集支持度计算方法,包括:将数据库中的数据转换为图结构数据,其中该图结构数据中的每个点表示该数据库中的一条记录,且任意两个点之间的边表示该两个点对应的两条记录的元素集合的交集;从数据库中得到候选项集;得到该图结构数据中对应于该候选项集的连通分量;确定该连通分量中包含的点的数目;和,将该点的数目确定为该候选项集的支持度。
[0011]
在上述基于图结构数据的候选项集支持度计算方法中,从数据库中得到候选项集的步骤具体包括:通过基于前序树的Apriori算法得到k-候选项集,其中k是大于1的整数。
[0012]
或者,在上述基于图结构数据的候选项集支持度计算方法中,从数据库中得到候选项集的步骤具体包括:采用DHP方法使用哈希表产生候选项集。
[0013]
在上述基于图结构数据的候选项集支持度计算方法中,确定该连通分量中包含的点的数目的步骤具体包括:使用基于标签传递的连通分量算法通过一次迭代计算出该连通分量中的点的数目。
[0014]
根据本发明的另一方面,提供了一种频繁项集确定方法,包括:使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度;确定该候选项集的支持度是否大于一预定阈值;和在该候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。
[0015]
根据本发明的又一方面,提供了一种基于前序树的频繁项集确定方法,包括:确定使用数据库递归遍历深度为k的前序树所用的第一时间;确定k-候选项集的个数,并以该k-候选项集的个数乘以使用图计算方法在图上计算一次连通分量的时间作为第二时间;比较该第一时间和该第二时间;在第一时间小于第二时间的情况下,使用数据库递归计算确定候选项集的支持度;和在第一时间大于第二时间的情况下,使用如上所述的基于图结构数据的候 选项集支持度计算方法获得候选项集的支持度
[0016]
在上述基于前序树的频繁项集确定方法中,进一步包括:确定所获得的候选项集的支持度是否大于预定阈值;和,在所获得的候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。
[0017]
在上述基于前序树的频繁项集确定方法中,在确定第一时间之前进一步包括:通过基于前序树的Apriori算法得到k-候选项集,其中k是大于1的整数。
[0018]
在上述基于前序树的频繁项集确定方法中,在确定第一时间之前进一步包括:采用DHP方法使用哈希表产生候选项集。
[0019]
根据本发明的再一方面,提供了一种基于图结构数据的候选项集支持度计算装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当该计算机可执行指令被控制器执行时,可操作来执行如上所述的基于图结构数据的候选项集支持度计算方法。
[0020]
根据本发明的再一方面,提供了一种频繁项集确定装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当该计算机可执行指令被控制器执行时,可操作来执行下述方法:使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度;确定该候选项集的支持度是否大于一预定阈值;和,在该候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。
[0021]
根据本发明的再一方面,提供了一种基于前序树的频繁项集确定装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当该计算机可执行指令被控制器执行时,可操作来执行如上所述的基于前序树的频繁项集确定方法。
[0022]
根据本发明的再一方面,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,当该计算机可执行指令被计算装置执行时,可操作来执行如上所述的基于图结构数据的候选项集支持度计算方法。
[0023]
根据本发明的再一方面,一种计算机可读存储介质,其上存储有计算机可执行指令,当该计算机可执行指令被计算装置执行时,可操作来执行下述方法:使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度;确定该候选项集的支持度是否大于一预定阈值;和,在该候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。
[0024]
根据本发明的再一方面,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,当该计算机可执行指令被计算装置执行时,可操作来执行如上所述的基于前序树的频繁项集确定方法。
[0025]
本发明实施例提供的基于图结构数据的候选项集支持度计算方法和使用其的频繁项集确定方法可以避免通过扫描数据库得到候选项集的支持度而耗费太多时间,在保证算法效果的同时提高了算法的效率。
[0026]
另外,本发明实施例提供的基于前序树的频繁项集确定算法通过对基于前序树的Apriori算法的计算过程进行建模与分析,采用基于图计算方法实施Apriori算法的方法来优化基于前序树的Apriori算法,从而提高了基于前序树的Apriori算法在深度较深时的效率。

附图说明

[0027]
图1是根据本发明实施例的数据库记录转化成图结构数据的过程的示例图;
[0028]
图2A和图2B是示出了图1所示的候选项集对应的连通分量的示意图;
[0029]
图3是示出根据本发明实施例的基于图结构数据的候选项集支持度计算方法的示意性流程图;
[0030]
图4是示出根据本发明实施例的频繁项集确定方法的示意性流程图;
[0031]
图5是根据本发明实施例的优化的基于前序树的频繁项集确定方法的示意性流程图;
[0032]
图6是根据本发明实施例的优化的基于前序树的Apriori算法的实例的示意图;
[0033]
图7是根据本发明实施例的优化的频繁项集确定算法的另一实例的示意图;
[0034]
图8是根据本发明实施例的使用图计算方法计算k-候选项集支持度的算法的伪代码图;
[0035]
图9是根据本发明实施例的基于前序树的Apriori算法的优化方法的伪代码图。

具体实施方式

[0036]
以下描述用于公开本发明以使本领域技术人员能够实现本发明。以下描 述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。
[0037]
以下说明书和权利要求中使用的术语和词不限于字面的含义,而是仅由本发明人使用以使得能够清楚和一致地理解本发明。因此,对本领域技术人员很明显仅为了说明的目的而不是为了如所附权利要求和它们的等效物所定义的限制本发明的目的而提供本发明的各种实施例的以下描述。
[0038]
可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
[0039]
虽然比如“第一”、“第二”等的序数将用于描述各种组件,但是在这里不限制那些组件。该术语仅用于区分一个组件与另一组件。例如,第一组件可以被称为第二组件,且同样地,第二组件也可以被称为第一组件,而不脱离发明构思的教导。在此使用的术语“和/或”包括一个或多个关联的列出的项目的任何和全部组合。
[0040]
在这里使用的术语仅用于描述各种实施例的目的且不意在限制。如在此使用的,单数形式意在也包括复数形式,除非上下文清楚地指示例外。另外将理解术语“包括”和/或“具有”当在该说明书中使用时指定所述的特征、数目、步骤、操作、组件、元件或其组合的存在,而不排除一个或多个其它特征、数目、步骤、操作、组件、元件或其组的存在或者附加。
[0041]
包括技术和科学术语的在这里使用的术语具有与本领域技术人员通常理解的术语相同的含义,只要不是不同地限定该术语。应当理解在通常使用的词典中限定的术语具有与现有技术中的术语的含义一致的含义。
[0042]
下面结合附图和具体实施方式对本发明作进一步详细的说明:
[0043]
如上所述,基于前序树的Apriori算法在深度较深时,由于扫描数据库得到候选项集的支持度需要耗费很多时间,从而导致表现出来的低效性。因此,在根据本发明实施例的基于前序树的频繁项集确定方法中,通过图计算方法来计算候选项集的支持度,从而确定频繁项集。这样,可以在保证算法效果的同时,提高算法的效率,即基于前序树的Apriori算法进行优化。
[0044]
基于前序树的Apriori算法使用一个前序树来存储频繁项集以及候选频 繁项集。在算法开始阶段,通过扫描一次数据库来得到1-频繁项集;接下来该算法使用(k-1)-频繁项集产生出k-候选项集,再使用数据库递归遍历前序树来得到k-候选项集的支持度,进而得到k-频繁项集。
[0045]
具体来说,在Apriori算法中,使用(k-1)-频繁项集产生出k-候选项集的步骤具体为通过2个k-1频繁项集产生一个k候选项集,其分为两个阶段:
[0046]
产生阶段:假设有2个k-1频繁项集p和q,并且p和q的前k-2个元素是相同的,那么就可以把这k-2个相同的元素以及p和q分别剩下的一个元素,总共k个元素组成一个k候选项集。
[0047]
检验阶段:对于产生的这个k候选项集,需要确保它的所有k-1阶子集都是在k-1频繁项集集合中的。这是因为对于一个k频繁项集而言,可以肯定它的所有k-1阶子集也是频繁项集。所以如果产生的这个k候选项集存在它的k-1阶子集不在k-1频繁项集集合中,就应该把这个k候选项集从候选集合中剔除掉。
[0048]
例如,假设已经存在3频繁项集集合:{{1,2,3},{1,2,4},{1,3,4},{1,3,5},{2,3,4}},在产生阶段可以产生出2个4候选项集:{1,2,3,4}(通过{1,2,3}和{1,2,4}产生),{1,3,4,5}(通过{1,3,4}和{1,3,5}产生)。
[0049]
在检验阶段由于{1,3,4,5}的3阶子集{3,4,5}不在3频繁项集集合中,所以{1,3,4,5}要从4候选项集中剔除。这样,产生的4候选项集只有一个,即{1,2,3,4}。
[0050]
虽然上面描述了基于前序树的Apriori算法中如何提到候选项集,但是在根据本发明实施例的基于图结构数据的候选项集支持度计算方法和使用其的频繁项集确定方法中,并不仅限定使用基于前序树的Apriori算法得到候选项集,还可以采用其它算法来得到候选项集。
[0051]
例如,可以采用DHP方法(Direct Hashing and Pruning:直接哈希和裁枝)使用一个哈希表(hash table)来产生候选项集。具体来说,首先定义hash函数,然后对于每个项集计算出一个hash值,扫描项集放入对应hash table的桶(bucket)并统计计数。并且,只有一个bucket的计数大于预先设定的阈值,这个bucket的hash值对应的所有项集才是候选项集。
[0052]
这样,在得到候选项集之后,就需要确定候选项集的支持度,从而确定频繁项集。
[0053]
如上所述,在基于前序树的Apriori算法中,是通过扫描数据库得到候选项集的支持度。但是,在根据本发明实施例的基于图结构数据的候选项集支持度计算方法和使用其的频繁项集确定方法中,是使用图计算方法来计算候选项集的支持度从而确定频繁项集。
[0054]
具体来说,使用图计算方法来确定频繁项集首先需要将数据转换成图结构数据。对于一条数据库中的记录而言,它包含自己的id号以及一个元素的集合。因此,可以按照下面所述的规则将数据转换为图结构数据:1.图中的每一个点代表数据库中的一条记录,这条记录的id号就是这个点的id号;2.图中的两个点之间有一条边当且仅当这两个点对应的记录的元素集合的交集不为空,并且这个交集就是这条边的属性,如图1所示。这里,图1是根据本发明实施例的数据库记录转化成图结构数据的过程的示例图。
[0055]
对于一个给定的候选k-频繁项集而言,它的计数是数据库中所有包含这个k-候选项集的所有记录的计数。对应到图结构中,记录对应图中的点,如果两条记录有交集则对应到图中就是对应的两个点之间有条边,并且边的属性就是这两条记录的交集集合。
[0056]
因此,如果定义图中包含这个k-候选项集的边为活跃边,其他边是不活跃边(在此次计算中视为没有这条边),那么所有包含这个k-候选项集的记录对应的点就构成了一个连通分量,不包含这个k-候选项集的记录对应的点均是孤立点(没有边)。所以这个k-候选项集的支持度就是此次计算中这个连通分量所包含点的个数。也就是,本发明实施例通过对图数据结构与项集支持度的关系的研究,确定上述的图结构数据中连通分量中的点的个数即是与其对应的候选项集的支持度。
[0057]
这样,在根据本发明实施例的基于图结构数据的候选项集支持度计算方法和使用其的频繁项集确定方法中,可以通过该候选项集对应的连通分量中所包含的点的个数来确定该候选项集的支持度,从而确定该候选项集是否为频繁项集。
[0058]
所以,使用图计算方法来确定频繁项集只需要分别计算若干个(取决于 候选项集的数目)连通分量,再统计连通分量中点的个数即可。注意到使用图计算方法来计算频繁项集时,所求的连通分量其实是一个特殊的连通分量:这个连通分量中的所有点都相互之间有一条边。因此在使用基于标签(label)传递的连通分量(Connected Components)算法时,仅需要一次迭代就可以计算出这个连通分量中点的个数。
[0059]
该基于标签传递的连通分量算法具体执行过程如下:对于一个普通图结构数据中的每个点(vertex),设置一个标签(初始值为其id),然后开始迭代。
[0060]
一次迭代:遍历图中的所有边(edge),对于每条边,比较其两个端点的标签值大小,将较大标签值的点的标签值设为较小标签值的点的标签值。
[0061]
迭代结束条件:一次迭代中没有任何点的标签值发生改变。
[0062]
另外,如图1所示,在根据本发明实施例的基于图结构数据的候选项集支持度计算方法中,转换得到的图结构数据是特殊的,对于固定的一个k候选项集而言,只有包含了k候选项集的边才是有效的,于是得到了一个连通分量和其余的孤立点。所以,对于一个k候选项集,执行连通分量算法只会得到一个连通分量,并且这个连通分量就是对应的这个k候选项集。
[0063]
例如,如图2A所示,示出了图1中的候选项集{I2,I3,I5}的连通分量,并且该连通分量包含两个点T2和T3,因此该候选项集{I2,I3,I5}的支持度即为2。又例如,如图2B所示,示出了图1中的候选项集{I2,I5}的连通分量,该连通分量包含三个点T2、T3和T4,因此该候选项集{I2,I5}的支持度即为3。这里,图2A和图2B是示出了图1所示的候选项集对应的连通分量的示意图。
[0064]
综上所述,根据本发明实施例的一方面,提供了一种基于图结构数据的候选项集支持度计算方法,包括:将数据库中的数据转换为图结构数据,其中该图结构数据中的每个点表示该数据库中的一条记录,且任意两个点之间的边表示该两个点对应的两条记录的元素集合的交集;从数据库中得到候选项集;得到该图结构数据中对应于该候选项集的连通分量;确定该连通分量中包含的点的数目;和,将该点的数目确定为该候选项集的支持度。
[0065]
图3是示出根据本发明实施例的基于图结构数据的候选项集支持度计算方法的示意性流程图。如图3所示,根据本发明实施例的基于图结构数据的候选项集支持度计算方法包括:S101,将数据库中的数据转换为图结构数据, 其中该图结构数据中的每个点表示该数据库中的一条记录,且任意两个点之间的边表示该两个点对应的两条记录的元素集合的交集;S102,从数据库中得到候选项集;S103,得到步骤S1中得到的图结构数据中对应于步骤S2中得到的候选项集的连通分量;S104,确定该连通分量中包含的点的数目;和S105,将该点的数目确定为该候选项集的支持度。
[0066]
在上述基于图结构数据的候选项集支持度计算方法中,从数据库中得到候选项集的步骤具体包括:通过基于前序树的Apriori算法得到k-候选项集,其中k是大于1的整数。
[0067]
或者,在上述基于图结构数据的候选项集支持度计算方法中,从数据库中得到候选项集的步骤具体包括:采用DHP方法使用哈希表产生候选项集。
[0068]
这里,通过基于前序树的Apriori算法和DHP方法得到候选项集的具体过程已经在前面描述,在这里不再赘述。
[0069]
在上述基于图结构数据的候选项集支持度计算方法中,确定该连通分量中包含的点的数目的步骤具体包括:使用基于标签传递的连通分量算法通过一次迭代计算出该连通分量中的点的数目。
[0070]
这样,通过根据本发明实施例的基于图结构数据的候选项集支持度计算方法,可以避免通过扫描数据库得到候选项集的支持度而耗费太多时间,在保证算法效果的同时提高了算法的效率。
[0071]
在采用根据本发明实施例的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度之后,一方面,可以应用于确定该候选项集是否是频繁项集,这将在下面进一步具体描述。另一方面,所获得的候选项集的支持度还可以应用于关联法则中的后续过程,而并不仅限于确定候选项集是否是频繁项集。
[0072]
因此,根据本发明实施例的另一方面,提供了一种频繁项集确定方法,包括:使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度;确定该候选项集的支持度是否大于一预定阈值;和在该候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。
[0073]
图4是示出根据本发明实施例的频繁项集确定方法的示意性流程图。如图4所示,根据本发明实施例的频繁项集确定方法包括:S201,使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度;S202,确定该候选项集的支持度是否大于一预定阈值;和S203,在该候选项 集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。
[0074]
也就是说,在基于上述方法计算出候选项集的支持度之后,如果某个候选项集的支持度大于预定阈值,则确定该候选项集为频繁项集。因此,通过根据本发明实施例的频繁项集确定方法可以通过使用基于图结构数据的候选项集支持度计算方法,避免通过扫描数据库得到候选项集的支持度而耗费太多时间,在保证算法效果的同时提高了算法的效率。
[0075]
如上所述,在现有的基于前序树的Apriori算法中,在算法开始阶段,通过扫描一次数据库来得到1-频繁项集,接下来该算法使用(k-1)-频繁项集产生出k-候选项集,再使用数据库递归遍历前序树来得到k-候选项集的支持度,进而得到k-频繁项集。在这种算法中,在k值比较小的时候,候选项集集合的大小非常大,因此使用图计算方法来计算频繁项集的效率会相对较差。但是随着k值的增加,候选项集集合的大小急剧减小,使用图计算方法计算频繁项集的效率也随之提升。同时,现有的基于前序树的Apriori算法需要使用数据库递归遍历前序树来计算候选项集的计数,当k值变大时,Apriori算法的效率变低。
[0076]
因此,基于上述问题,本发明实施例进一步提出基于前序树的Apriori算法的优化模型,其中当k值比较小时,使用现有的Apriori算法中的数据库递归遍历,而当k值大到一定程度时使用图计算方法。
[0077]
首先,说明切换点k值的确定。
[0078]
在计算过程中,k-候选项集的个数是可以得知的。使用图计算方法在一个图上计算一次连通分量的时间也是已知的。所以可以估算出使用图计算方法计算k-频繁项集的时间。
[0079]
对于k-候选项集而言,基于前序树的Apriori算法使用数据库递归遍历深度为k的前序树。一次深度为k的遍历时间可以估算为:一次深度为k-1的遍历的时间+(一次深度为k-1的遍历的时间–一次深度为k-2的遍历的时间)。遍历的次数可以通过对数据库的记录对k值求组合数来估算出。将这两个数据相乘就可以大致估算出Apriori算法计算k-频繁项集的时间。
[0080]
然后,通过比较这两个时间来确定切换点k值。
[0081]
也就是说,通过优化基于前序树的Apriori算法,获得了一种基于前序树的频繁项集确定方法。
[0082]
这样,根据本发明实施例的又一方面,提出了一种基于前序树的频繁项 集确定方法,包括:确定使用数据库递归遍历深度为k的前序树所用的第一时间;确定k-候选项集的个数,并以该k-候选项集的个数乘以使用图计算方法在图上计算一次连通分量的时间作为第二时间;比较该第一时间和该第二时间;在第一时间小于第二时间的情况下,使用数据库递归计算确定候选项集的支持度;和在第一时间大于第二时间的情况下,使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度。
[0083]
图5是根据本发明实施例的优化的基于前序树的频繁项集确定方法的示意性流程图。如图5所示,根据本发明实施例的优化的基于前序树的频繁项集确定方法包括:S301,确定使用数据库递归遍历深度为k的前序树所用的第一时间;S302,确定k-候选项集的个数,并以该k-候选项集的个数乘以使用图计算方法在图上计算一次连通分量的时间作为第二时间;S303,比较该第一时间和该第二时间,即判定第一时间是否大于第二时间;S304,在第一时间小于第二时间的情况下,使用数据库递归计算确定候选项集的支持度;和S305,在第一时间大于第二时间的情况下,使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度。
[0084]
同样,在上述基于前序树的频繁项集确定方法中,进一步包括:确定所获得的候选项集的支持度是否大于预定阈值;和,在所获得的候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。
[0085]
并且,在上述基于前序树的频繁项集确定方法中,在确定第一时间之前进一步包括:通过基于前序树的Apriori算法得到k-候选项集,其中k是大于1的整数。
[0086]
或者,在上述基于前序树的频繁项集确定方法中,在确定第一时间之前进一步包括:采用DHP方法使用哈希表产生候选项集。
[0087]
因此,本发明实施例进一步提供了一种优化的基于前序树的频繁项集确定方法,通过对基于前序树的Apriori算法的计算过程进行建模与分析,采用基于图计算方法实施Apriori算法的方法来优化基于前序树的Apriori算法,从而提高了基于前序树的Apriori算法在深度较深时的效率。
[0088]
图6是根据本发明实施例的优化的基于前序树的Apriori算法的实例的示意图。如图6所示,算法开始之后,首先运行基于前序树的Apriori算法产生候选项集,然后评估图计算方法是否更优。如果结论为否,则继续运行基于前序树的Apriori算法计算候选项集的支持度,从而获得支持度大于预 定阈值的候选项集,以作为频繁项集。相对地,如果结论为是,即图计算方法更优,则采用上述基于图结构数据的方法计算候选项集的支持度,从而获得支持度大于预定阈值的候选项集,以作为频繁项集。然后,判断未计算支持度的候选项集是否为空,如果为否,则代表仍然存在未计算支持度的候选项集,基于采用图计算方法计算候选项集的支持度。最后,如果未计算支持度的候选项集为空,说明已经计算了所有候选项集的支持度,从而确定了候选项集中的频繁项集,算法结束。
[0089]
图7是根据本发明实施例的优化的频繁项集确定算法的另一实例的示意图。如图7所示,与如图6所示的根据本发明实施例的优化的基于前序树的Apriori算法相比,区别在于得到候选项集的方法。即,在如图7所示的实例中,不是采用基于前序树的Apriori算法得到候选项集,而是采用产生候选项集的其它方法来得到候选项集。此后,如图7所示的实例的过程与之前描述的如图6所示的实例相同,在此便不再赘述。
[0090]
图8是根据本发明实施例的使用图计算方法计算k-候选项集支持度的算法的伪代码图。如图8所示,FIM_CC(G,attribute_set)函数是在图数据上执行一次连通分量算法,在这次计算中,只有当边包含attribute_set时,才视为边有效。连通分量算法采用label传递,Fe(edge,attribute_set)函数执行具体的label传递,Fv(vertex,new_label)函数修改点的label。另外,FIM_GC(D,T,I,G)函数统计每个候选项集的支持度,计算出频繁项集,并将结果写入前序树中。FIM_GC(D,T,I,G)函数在没有候选项集产生时结束。
[0091]
图9是根据本发明实施例的基于前序树的Apriori算法的优化方法的伪代码图。如图9所示,ANG(D,T,G)函数结合了Apriori和图计算方法,在算法初期使用Apriori,当估计耗时图计算小于Apriori时转换为图计算计算。当候选项集的支持度大于预先设定的阈值时才为候选项集,否则不是(标记为-1)。当产生的候选项集集合为空集时算法结束。
[0092]
本发明实施例提供的基于图结构数据的候选项集支持度计算方法和使用其的频繁项集确定方法可以避免通过扫描数据库得到候选项集的支持度而耗费太多时间,在保证算法效果的同时提高了算法的效率。
[0093]
另外,本发明实施例提供的基于前序树的频繁项集确定方法通过对基于前序树的Apriori算法的计算过程进行建模与分析,采用基于图计算方法实施Apriori算法的方法来优化基于前序树的Apriori算法,从而提高了基于前 序树的Apriori算法在深度较深时的效率。
[0094]
根据本发明实施例的再一方面,提供了一种基于图结构数据的候选项集支持度计算装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当该计算机可执行指令被控制器执行时,可操作来执行如上所述的基于图结构数据的候选项集支持度计算方法。这里,根据本发明实施例的基于图结构数据的候选项集支持度计算方法已经在上面进行了描述,为了避免冗余便不再赘述。
[0095]
根据本发明实施例的再一方面,提供了一种频繁项集确定装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当该计算机可执行指令被控制器执行时,可操作来执行下述方法:使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度;确定该候选项集的支持度是否大于一预定阈值;和,在该候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。同样的,根据本发明实施例的基于图结构数据的候选项集支持度计算方法已经在上面进行了描述,为了避免冗余便不再赘述。
[0096]
根据本发明实施例的再一方面,提供了一种基于前序树的频繁项集确定装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当该计算机可执行指令被控制器执行时,可操作来执行如上所述的基于前序树的频繁项集确定方法。这里,根据本发明实施例的基于前序树的频繁项集确定方法已经在上面进行了描述,为了避免冗余便不再赘述。
[0097]
根据本发明实施例的再一方面,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,当该计算机可执行指令被计算装置执行时,可操作来执行如上所述的基于图结构数据的候选项集支持度计算方法。这里,根据本发明实施例的基于图结构数据的候选项集支持度计算方法已经在上面进行了描述,为了避免冗余便不再赘述。
[0098]
根据本发明实施例的再一方面,一种计算机可读存储介质,其上存储有计算机可执行指令,当该计算机可执行指令被计算装置执行时,可操作来执行下述方法:使用如上所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度;确定该候选项集的支持度是否大于一预定阈值;和,在该候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。同样的,根据本发明实施例的基于图结构数据的候选项集支持度计算方法已 经在上面进行了描述,为了避免冗余便不再赘述。
[0099]
根据本发明实施例的再一方面,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,当该计算机可执行指令被计算装置执行时,可操作来执行如上所述的基于前序树的频繁项集确定方法。这里,根据本发明实施例的基于前序树的频繁项集确定方法已经在上面进行了描述,为了避免冗余便不再赘述。
[0100]
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明。本发明的目的已经完整并有效地实现。本发明的功能及结构原理已在实施例中展示和说明,在没有背离该原理下,本发明的实施方式可以有任何变形或修改。

权利要求书

[权利要求 1]
一种基于图结构数据的候选项集支持度计算方法,包括: 将数据库中的数据转换为图结构数据,其中所述图结构数据中的每个点表示所述数据库中的一条记录,且任意两个点之间的边表示所述两个点对应的两条记录的元素集合的交集; 从所述数据库中得到候选项集; 得到所述图结构数据中对应于所述候选项集的连通分量; 确定所述连通分量中包含的点的数目;和, 将所述点的数目确定为所述候选项集的支持度。
[权利要求 2]
如权利要求1所述的基于图结构数据的候选项集支持度计算方法,其中,从数据库中得到候选项集的步骤具体包括: 通过基于前序树的Apriori算法得到k-候选项集,其中k是大于1的整数。
[权利要求 3]
如权利要求1所述的基于图结构数据的候选项集支持度计算方法,其中,从数据库中得到候选项集的步骤具体包括: 采用DHP方法使用哈希表产生候选项集。
[权利要求 4]
如权利要求1到3中任意一项所述的基于图结构数据的候选项集支持度计算方法,其中,确定所述连通分量中包含的点的数目的步骤具体包括: 使用基于标签传递的连通分量算法通过一次迭代计算出所述连通分量中的点的数目。
[权利要求 5]
一种频繁项集确定方法,包括: 使用如权利要求1到4中任意一项所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度; 确定所述候选项集的支持度是否大于一预定阈值;和 在所述候选项集的支持度大于预定阈值的情况下,确定所述候选项集为频繁项集。
[权利要求 6]
一种基于前序树的频繁项集确定方法,包括: 确定使用数据库递归遍历深度为k的前序树所用的第一时间; 确定k-候选项集的个数,并以该k-候选项集的个数乘以使用图计算方法在图上计算一次连通分量的时间作为第二时间; 比较该第一时间和该第二时间; 在第一时间小于第二时间的情况下,使用数据库递归计算确定候选项集的支持度;和 在第一时间大于第二时间的情况下,使用如权利要求1到4中任意一项所述的基于图结构数据的候选项集支持度计算方法获得所述候选项集的支持度。
[权利要求 7]
如权利要求6所述的基于前序树的频繁项集确定方法,进一步包括: 确定所获得的候选项集的支持度是否大于预定阈值;和, 在所获得的候选项集的支持度大于预定阈值的情况下,确定该候选项集为频繁项集。
[权利要求 8]
如权利要求6或者7所述的基于前序树的频繁项集确定方法,其中,在确定第一时间之前进一步包括: 通过基于前序树的Apriori算法得到k-候选项集,其中k是大于1的整数。
[权利要求 9]
如权利要求6或者7所述的基于前序树的频繁项集确定方法,其中,在确定第一时间之前进一步包括: 采用DHP方法使用哈希表产生候选项集。
[权利要求 10]
一种基于图结构数据的候选项集支持度计算装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当所述计算机可执行指令被控制器执行时,可操作来执行如权利要求1-4中任意一项所述的方法。
[权利要求 11]
一种频繁项集确定装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当所述计算机可执行指令被控制器执行时,可操作来执行下述方法: 使用如权利要求1到4中任意一项所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度; 确定所述候选项集的支持度是否大于一预定阈值;和 在所述候选项集的支持度大于预定阈值的情况下,确定所述候选项集为频繁项集。
[权利要求 12]
一种基于前序树的频繁项集确定装置,包括存储器和处理器,存储器中存储有计算机可执行指令,当所述计算机可执行指令被控制器执行时,可操作来执行如权利要求6-9中任意一项所述的方法。
[权利要求 13]
一种计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令被计算装置执行时,可操作来执行如权利要求1-4中任意一项所述的方法。
[权利要求 14]
一种计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令被计算装置执行时,可操作来执行下述方法: 使用如权利要求1到4中任意一项所述的基于图结构数据的候选项集支持度计算方法获得候选项集的支持度; 确定所述候选项集的支持度是否大于一预定阈值;和 在所述候选项集的支持度大于预定阈值的情况下,确定所述候选项集为频繁项集。
[权利要求 15]
一种计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令被计算装置执行时,可操作来执行如权利要求6-9中任意一项所述的方法。

附图

[ 图 0001]  
[ 图 0002]  
[ 图 0003]  
[ 图 0004]  
[ 图 0005]  
[ 图 0006]  
[ 图 0007]  
[ 图 0008]  
[ 图 0009]  
[ 图 0010]