基于相同结点表和频繁情节树的频繁闭情节挖掘方法
【专利摘要】本发明公开了一种基于相同结点表和频繁情节树的频繁闭情节挖掘方法,用于解决现有频繁情节挖掘方法实用性差的技术问题。技术方案是在频繁情节树的基础上,基于相同结点表提出了一个事件序列上的频繁闭情节挖掘方法,通过对情节树进行构造与剪枝和对频繁闭情节进行抽取,该方法不需产生候选情节,提高了空间效率;将闭情节检查蕴含在情节树的构造和相同结点剪枝的过程中,无需单独进行闭合性检查,从而提升了方法的时间效率。检测证明,本发明方法能够更有效地发现事件序列上的频繁闭情节,对于相同的挖掘对象,时间效率平均提升20%,空间效率平均提升60%,且具有时间和空间成本不随支持度、序列长度增加而大幅增加的良好特性。
【专利说明】 基于相同结点表和频繁情节树的频繁闭情节挖掘方法
【技术领域】
[0001]本发明涉及一种频繁情节挖掘方法,特别是涉及一种基于相同结点表和频繁情节树的频繁闭情节挖掘方法。
【背景技术】
[0002]情节描述了事件类型之间的紧随关系,常用来刻画现实应用中用户或系统的行为模式,如何发现频繁情节已成为数据挖掘领域的热点问题之一。
[0003]文献“基于广义后缀树的事件序列频繁情节挖掘算法,北京科技大学学报,2006,Vol28 (5),p490-497”公开了一种针对最小发生的频繁情节挖掘方法,该方法利用广义后缀概念,采用广义后缀树发现和存放频繁情节,实现共享前压缩;针对传统广义后缀树无法发现不连续情节的问题,对广义后缀树进行了扩充,来发现存在间隔的情节,并采用相邻事件最大间隔限制来发现任意长度的情节;针对完全广义后缀树时间空间消耗较大的问题,采用位置逐层扩展方法利用频繁情节位置列表,利用频繁情节位置列表实现对序列的逐层划分,在相应的投影子库上进行情节计数,缩小了搜索空间。但是,在情节挖掘阶段,该方法仅能挖掘频繁情节,对于更能反映情节最小闭包的频繁闭情节无法进行挖掘,具有局限性;该方法采用最小发生的情节定义,在挖掘情节时会产生欠计数问题,不能精确的反映情节出现的情况。综上所述,现有的频繁情节挖掘方法存在无法挖掘频繁闭情节,并且最小发生定义无法精确反映情节发生存在欠计数的问题。
【发明内容】
[0004]为了克服现有频繁情节挖掘方法实用性差的不足,本发明提供一种基于相同结点表和频繁情节树的频繁闭情节挖掘方法。该方法在频繁情节树的基础上,基于相同结点表提出了一个事件序列上的频繁闭情节挖掘方法,通过对情节树进行构造与剪枝和对频繁闭情节进行抽取,该方法不需产生候选情节,提高了空间效率;将闭情节检查蕴含在情节树的构造和相同结点剪枝的过程中,无需单独进行闭合性检查,从而提升了方法的时间效率。
[0005]本发明解决其技术问题所采用的技术方案是:一种基于相同结点表和频繁情节树的频繁闭情节挖掘方法,其特点是采用以下步骤:
[0006]步骤一、情节树构造与剪枝方法。
[0007](I)扫描一遍序列,发现所有的频繁1-情节,将频繁1-情节加入到情节树的第一
层结点中。
[0008](2)对于所有频繁η-情节,在序列中按照最大事件间隔探查后续事件,如果可以满足最小支持度的要求并且该事件没有被其他频繁情节使用,则为该结点创造一个子结点,并置该事件的使用标志为真。
[0009](3)将新结点加入到相同节点表中。反复进行,直到不能构造新的结点为止。在这一过程中,无需生成候选情节集合。
[0010](4)对于相同结点表中的所有结点,只保留一个在树中层次最低的,其余结点及其子结点一律进行剪枝处理。
[0011]步骤二、频繁闭情节抽取方法。
[0012](I)从第一层结点开始,记录起点,探查下一层结点的支持度。如果支持度与当前层结点相同,则继续向下探查。
[0013](2)如果不同,则从起点开始的结点到当前层结点所代表的事件构成一频繁闭情节。从下一层结点继续探测。
[0014](3)深度遍历整个剪枝情节树,直到遍历完毕为止,此时序列中所有的频繁闭情节已经被抽取出来。
[0015]本发明的有益效果是:在频繁情节树的基础上,基于相同结点表提出了一个事件序列上的频繁闭情节挖掘方法,通过对情节树进行构造与剪枝和对频繁闭情节进行抽取,该方法不需产生候选情节,提高了空间效率;将闭情节检查蕴含在情节树的构造和相同结点剪枝的过程中,无需单独进行闭合性检查,从而提升了方法的时间效率。理论分析和实验评估证明,本发明方法能够更有效地发现事件序列上的频繁闭情节,对于相同的挖掘对象,时间效率平均提升20%,空间效率平均提升60%,且具有时间和空间成本不随支持度、序列长度增加而大幅增加的良好特性。
[0016]下面结合附图和【具体实施方式】对本发明作详细说明。
【专利附图】
【附图说明】
[0017]图1是本发明方法情节树构造与剪枝方法流程图。
[0018]图2是本发明方法频繁闭情节抽取方法流程图。
[0019]图3是本发明方法实施例事件序列举例图。
[0020]图4是本发明方法实施例频繁情节树图。
[0021]图5是本发明方法应用相同结点表对频繁情节树剪枝图。
[0022]图6是本发明方法实施例频繁闭情节树图。
【具体实施方式】
[0023]参照图1-6。本发明基于相同结点表和频繁情节树的频繁闭情节挖掘方法具体步骤如下:
[0024]本发明涉及如下概念定义如下:
[0025]事件序列:给定的事件类型集E中的事件按照严格的时间先后顺序依次发生的序列,记为 ES = <El-tl,E2-t2,…,Ek-tk>。
[0026]情节:情节是事件序列上发生的事件的偏序集合。表示为a = {El-Ek}。
[0027]支持度:情节a在事件序列ES上的所有非重叠项发生的数目称为a的支持度,记为 a.Supp0 [0028]频繁情节,频繁闭情节:若情节a大于或者等于设定的最小支持度,则a是一个频繁情节。给定频繁情节a,如果a的任意真超情节的支持度均不等于a的支持度,则a是一个频繁闭情节。
[0029]发生:给定情节a = {ΕΡ..Ε1?},若事件序列ES存在任意一个子序列ES’ ={El-tl, E2-t2,...,Ek-tk},且最大时间,称为ES’为a在ES上的一次发生。[0030]最小发生:设[ts,te]是情节a在事件序列ES上的一次发生,若在ES上不存在a的另一次发生[ts’,te’ ],使得 ts〈ts’ 且 te < te’,或 ts < ts’ 且 te〈te’,则称[ts, te]是a在ES上的一次最小发生。
[0031]非重叠发生。设[ts,te]和[ts’,te’ ]是情节a在事件序列ES上的两次发生,若te〈t’ s或t’ e〈ts,则[ts, te]和[ts’,te’ ]是a在ES上的非重叠发生。
[0032]非重叠项发生:设[ts,te]是情节a在事件序列ES上的一次发生,[ts’,te’ ]是情节a在事件序列ES上的另一次发生,如果对于[ts, te]、[ts’,te’ ]中的任意事件均不在ES上位于同一位置,则称[ts,te]为非重叠项发生。
[0033]另外,为发现频繁情节,还需要对情节中事件的发生的时间接近度加以限制。一种方法是采用窗口定义情节的最大持续期,以情节在所有窗口中的出现频率作为其支持度,此方法的缺点是无法发现超过窗口宽度的频繁情节。另一方法限制相邻事件的最大时间间隔,则包含k个事件的情节的窗口宽度最大为(k-l)x最大时间间隔。本发明采用第二种方法来发现情节。
[0034]频繁情节树:频繁情节树是一棵根树,每个结点代表一个事件,每个结点可以有0-n个子结点,从根结点开始到某结点结束的一个序列串代表一个由若干事件组成的情节。结点中维护如下属性:事件类型,该结点的支持度,事件发生位置。频繁情节树的生长是逐层扩张的,利用每个结点的位置对事件序列进行逐层划分,缩小了搜索空间。
[0035]相同结点表:位于频繁情节树中不同位置的结点,如果具有相同的事件类型、事支持度、事件发生位置,则称两结点为相同结点。频繁情节树中相同结点具有相同的子结点。该表是一个二级索引表。对于新加入树中的结点,将其所代表的事件出现的所有位置,以及其所代表的事件类型为哈希值,加入哈希表中,作为第一级索引。第二级记录了加入相应索引的各结点的引用。
[0036]面向内容发布订阅系统的混合事件匹配过程分为三个阶段,分别为增加订阅、删除订阅和事件匹配。订阅的增加与删除分别为针对数据结构的更新过程,用于维护事件匹配结构,事件匹配过程中采用同谓偏序的概念来加速事件匹配的速度,具体步骤如下:
[0037]本发明的方法主要分为两步:情节树构造与剪枝、频繁闭情节抽取。分述如下:
[0038]参照图1,情节树构造与剪枝流程包括以下步骤:
[0039]步骤一:扫描一遍序列,发现所有的频繁1-情节,将频繁1-情节加入到情节树的
第一层结点中。
[0040]步骤二:对于所有频繁η-情节,在序列中按照最大事件间隔探查后续事件,如果可以满足最小支持度的要求并且该事件没有被其他频繁情节使用,则为该结点创造一个子结点,并置该事件的使用标志为真。
[0041]步骤三:将新结点加入到相同节点表中。反复进行,直到不能构造新的结点为止。在这一过程中,无需生成候选情节集合。
[0042]步骤四:对于相同结点表中的所有结点,只保留一个在树中层次最低的,其余结点及其子结点一律进行剪枝处理。
[0043]参照图2,频繁闭情节抽取包括以下步骤:
[0044]步骤一:从第一层结点开始,记录起点,探查下一层结点的支持度。如果支持度与当前层结点相同,则继续向下探查。[0045]步骤二:如果不同,则从起点开始的结点到当前层结点所代表的事件构成一频繁闭情节。从下一层结点继续探测。
[0046]步骤三:深度遍历整个剪枝情节树,直到遍历完毕为止,此时序列中所有的频繁闭情节已经被抽取出来。
[0047]参照图3给出的事件序列,如果支持数阈值和扫描间隔设置为minsup = 2,maxgap=2。
[0048]按照步骤一:扫描出所有频繁1-情节,结果为A、B、C、D、G。
[0049]按照步骤二:迭代生长频繁η-情节,结果如图4所示。
[0050]参照图5按照步骤三:将相同节点加入到相同节点表中,得到频繁情节树中的相同节点。
[0051]参照图6按照步骤四:进行相同节点表剪枝,将相同结点表中的所有结点,只保留一个在树中层次最低的,得到频繁闭情节树。
[0052]参照图6所示的剪枝情节树进行闭情节抽取。
[0053]按照步骤一:从第一层结点开始,记录起点,探查下一层结点的支持度。如果支持度与当前层结点相同,则继续向下探查。结果为D:sup = 3,⑶C:sup = 2。
[0054]按照步骤二:如果不同,则从起点开始的结点到当前层结点所代表的事件构成一频繁闭情节。从下一层结点继续探测。结果为B:sup = 3, BAD:sup = 2。
[0055]按照步骤三:深度遍历整个剪枝情节树,直到遍历完毕为止,此时序列中所有的频繁闭情节已经被抽取出来,结果为B:sup = 3, BAD:sup = 2, D:sup = 3,⑶C:sup = 2。
【权利要求】
1.一种基于相同结点表和频繁情节树的频繁闭情节挖掘方法,其特征在于包括以下步骤: 步骤一、情节树构造与剪枝方法; (1)扫描一遍序列,发现所有的频繁1-情节,将频繁1-情节加入到情节树的第一层结占中.(2)对于所有频繁η-情节,在序列中按照最大事件间隔探查后续事件,如果可以满足最小支持度的要求并且该事件没有被其他频繁情节使用,则为该结点创造一个子结点,并置该事件的使用标志为真; (3)将新结点加入到相同节点表中;反复进行,直到不能构造新的结点为止;在这一过程中,无需生成候选情节集合; (4)对于相同结点表中的所有结点,只保留一个在树中层次最低的,其余结点及其子结点一律进行剪枝处理; 步骤二、频繁闭情节抽取方法; (1)从第一层结点开始,记录起点,探查下一层结点的支持度;如果支持度与当前层结点相同,则继续向下探查; (2)如果不同,则从起点开始的结点到当前层结点所代表的事件构成一频繁闭情节;从下一层结点继续探测; (3)深度遍历整个剪枝情节树,直到遍历完毕为止,此时序列中所有的频繁闭情节已经被抽取出来。
【文档编号】G06F17/30GK104008185SQ201410256954
【公开日】2014年8月27日 申请日期:2014年6月11日 优先权日:2014年6月11日
【发明者】杜承烈, 杨凯, 尤涛, 钟冬, 吴其蔓 申请人:西北工业大学