在事件序列中识别局部周期模式的方法

文档序号:6558962阅读:512来源:国知局
专利名称:在事件序列中识别局部周期模式的方法
技术领域
本发明通常涉及的是数据挖掘,特别是,在一个事件序列中识别局部周期模式和相应事件子序列。
周期模式发现在时间序列数据的挖掘中是一个重用的问题。时间序列数据的序列模式发现最初是由Agrawal等人。在1995年3月台湾台北的数据工程(ICDE)国际会议论文集中3-14页的“挖掘序列模式”中阐述的。挖掘过程的输入数据是一个事件集,被称为数据序列。每个数据序列是一个事务列表。典型地,具有与每个事务相关的事务时间。一个序列模式也包括事务,即事件集。通常,时间序列数据的挖掘要求发现所有具有用户指定的最小“支持”的序列模式。一个序列模式的支持是在一个事件序列中模式出现的次数。
根据现有技术,通过探究与局部周期性相关的特性,如Apriori特性和命中的最大子模式集特性,产生了有效挖掘局部周期模式的方法。此类方法由Han等人.在1999年数据工程国际会议论文集106-115页的“在事件序列数据库中有效挖掘局部周期模式”中进行了阐述。但是,这些方法都要求一个预定义的周期。而且,这些方法都假定如果在一个模式的一系列循环过程中存在扰动,该扰动不会导致该模式的后继出现与先前出现之间失去同步。例如,“乔史密斯每天早上读报纸”是一个周期模式。尽管乔可能早上偶尔不读报纸,但这一扰动不会影响乔在后面的早晨读报纸这一事实。换句话说,扰动仅允许是“缺少出现”的形式,而不能是“插入随机的噪声事件”。然而,当由于插入噪声事件使得一些模式的出现偏离方向时,这些假设因导致失败而受到太多的限制,以至不能检测所关注的模式。
关于数据挖掘的更合乎需要的方法,考虑下面针对存货补给的应用例子。存货补充命令的历史记录可以被看作是一个事件序列。假设两次感冒药品补给之间的时间通常是一个月。补充命令在每个月的月初提交,后来暴发了大规模的流感,因而致使在第三个星期又进行的补充。而后,即使补给的频率恢复到每月一次,但补充的时间改变到每月的第三个星期(而不是像从前的在每月的月初)。所以,希望当扰动在某些合理的限度内时,模式仍能够被识别。
此外,系统行为可以随时间改变。某些模式可能不是任何时候都能出现的(而是在某些时间范围内)。因此,希望找到在一个事件子序列内有效的周期模式,即使这样的模式包含一个长达某一预定阈值的扰动。
本发明涉及在一个事件序列中识别局部周期模式和相关的事件子序列。即,也识别其中每个模式都有效的子序列。
根据本发明的第一个方面,提供了一种在一个事件序列中识别局部周期模式的方法,其中模式包括一个来自于事件序列的事件列表。事件序列中至少一个子序列和至少一个子序列中的至少一个模式被识别,以使得至少一个模式在至少一个子序列中超出最小重复次数,至少一个子序列中的至少一个模式的两次连续的重复之间的间隔不超过一个预定的时间间隔阈值。至少一个模式和至少一个子序列两者中至少一个被存储起来。
根据本发明的第二个方面,给定模式中的每个事件是一个独特的和非独特的两种情况中的一种,每个非独特的事件可等同为任意的清楚事件。
根据本发明的第三个方面,提供了一种在一个事件序列中识别局部周期模式的方法,其中每个模式包括一个来自于事件序列的事件列表。候选模式周期的一个CPP集和候选事件的多个CE集被识别,其中在CPP集中的每个候选模式周期都是与候选事件的多个CE集中的一个集相对应。至少一个包括CE集之一中的候选事件并具有与CPP集中的相关候选模式相同周期的模式被识别。而且,包含至少一个模式的事件序列中的至少一个子序列被识别。至少一个模式和至少一个子序列的识别,使得至少一个模式在至少一个子序列中的重复超过最小的次数,并且至少一个子序列中的至少一个模式的两次连续的重复之间的间隔不超过一个预定的时间间隔阈值。至少一个模式和至少一个子序列两者中至少一个被存储起来。
根据本发明的第四个方面,CPP集中每个候选模式周期的长度要比预先指定的最大周期长度短。
根据本发明的第五个方面,至少一个子序列是包含至少一个模式的最长的事件子序列。
根据本发明的第六个方面,识别候选模式周期的CPP集和候选事件的多个CE集的步骤包括初始化多个时间间隔计数器。每个时间间隔计数器与多个事件和周期组合中的一个相关联,每一个组合包括CPP集中的一个周期和相关的候选事件CE集中的一个事件。时间间隔计数器的值被更新以反映出一个相关的事件与上一次相关事件的发生之间的时间间隔。事件和周期的组合被识别,以便使得与每个被识别的组合相关联的时间间隔计数器的值超过最小的重复次数。
根据本发明的第七个方面,多个事件和周期组合的每一个周期小于预先指定的最大的周期长度。
根据本发明的第八个方面,识别候选模式周期的CPP集和候选事件的多个CE集的步骤包括识别单一模式和包括单一模式的子序列的步骤,其中每个单一模式仅有一个由事件序列的一个事件来填充的位置。识别复杂模式并确认其有效,其中每个复杂模式具有一个以上的由事件序列的一个事件来填充的位置。
根据本发明的第九个方面,该方法进一步包括确认单一模式有效的步骤。
对本发明的这些以及其它的方面、特点和优势,将通过下面对优选实施方案的详细描述,并结合附图来加以说明。


图1是依照一个示例实施方案的可应用本发明的一个计算处理系统100的模块图;图2是一个说明依照本发明一个示例实施方案的在一个输入事件序列中挖掘非同步周期模式的全过程的示意图;图3是一个说明依照本发明一个示例实施方案的基于时间间隔的修剪过程(图1的步骤101)的示意图;图4是一个说明依照本发明一个示例实施方案的时间间隔计数器的更新过程(图3的步骤310)的示意图;图5是一个说明依照本发明一个示例实施方案的从时间间隔计数器中产生的一个1-模式候选集的过程(图3的步骤314)的示意图6是一个说明依照本发明一个示例实施方案的识别出现一个给定的模式1的最长的子序列的过程(图2的步骤218)的示意图;图7是一个说明依照本发明一个示例实施方案的在valid_seq中修剪序列表的过程(图6的步骤610)的示意图;图8是一个说明依照本发明一个示例实施方案的更新ongoing_seq中子序列列表的过程(图6的步骤612)的示意图;图9是一个说明依照本发明一个示例实施方案的扩展相配子序列的过程(图8的步骤820)的示意图;图10是一个说明依照本发明一个示例实施方案的在sequence_set中扩展子序列的过程(图8的步骤801)的示意图;图11是一个说明依照本发明一个示例实施方案的修剪sequence_set的过程(图9的步骤912)的示意图;图12是一个说明依照本发明一个示例实施方案的在sequence_set中识别有效子序列,以及复制并插入有效子序列到valid_seq的过程(图9的步骤914)的示意图;图13是一个说明依照本发明一个示例实施方案的在ongoing_seq中插入一个新的序列的过程(图6的步骤614)的示意图;图14是一个说明依照本发明一个示例实施方案的识别sequence_set中重复次数最多的子序列和子序列longest_seq过程(图X的步骤XXX)的示意图;图15是一个说明依照本发明一个示例实施方案的识别复杂模式的过程(图2的步骤220)的示意图。
本发明涉及在一个事件序列中识别局部周期模式和相关的事件子序列。即,也识别其中每个模式都有效的子序列。
将会理解,本发明可以以不同的硬件、软件、固件、特定目的处理器、或它们的组合的形式来实现。本发明更适宜通过作为程序存储设备中实施的应用程序的软件的形式来实现。应用程序可以装载到一个包含任意合适的结构体系的机器中,并由其来执行。该机器最好是在一个具有诸如一个或多个中央处理单元(CPU)、一个随机存取存储器(RAM)和输入/输出(I/O)接口等硬件的计算机平台上实现。该计算机平台还包括一个操作系统和微指令码。这里描述的不同的处理和功能可以是通过操作系统执行的微指令码的部分,或应用程序的部分(或两者的组合)。此外,其它不同的外围设备可以连接到计算机平台上,如一个附加的数据存储设备和一个打印设备。
也应进一步理解,因为附图中表示的有些组成系统的组件和方法步骤适宜用软件来实现,系统组件(或过程步骤)间的实际连接可以根据本发明的编程方式有所不同。在本发明提供的技术前提下,相关领域的一般熟练人员可以考虑本发明的这些和相似的实现或配置。
图1是依照一个示例实施方案的可应用本发明的一个计算处理系统100的模块图;计算机处理系统包括至少一个通过一个系统总线104操作连接到其它组件的处理器(CPU)102。一个只读存储器(ROM)106、一个随机存取存储器(RAM)、一个显示适配器110、一个I/O适配器112、和一个用户接口适配器114操作连接到系统总线104上。
一个显示设备116通过显示适配器110操作连接到系统总线104。一个磁盘存储设备(如磁盘或光盘存储设备)118通过I/O适配器112操作连接到系统总线104。
一个鼠标120和键盘122在运行时通过用户接口114操作连接到系统总线104。鼠标120和键盘122可用来向计算机处理系统100输入信息和从系统输出信息。应当理解,依照本发明,计算机处理系统100可以采用其它的配置,而不超出本发明的宗旨和范围。
现在将对本发明进行简要的描述,向读者介绍本发明的概念。在识别一个事件序列的非同步模式的过程中,本发明利用了两个参数,即min_rep和max_dis,来限定一个有效模式和包含该有效模式的事件子序列。事件子序列可以被当作是一个有扰动插入的完全重复的有效段列表。要求每个有效段包括该模式的至少min_rep个邻接的重复,其中有效段中每个干扰“片段”的长度不得超过max_dis。就是说,min_rep是在一个给定事件序列的给定子序列中一个模式必须表现的最小重复次数,而max_dis在一个给定事件序列的给定子序列中一个模式(即有效段)的两次连续的重复间的最大时间间隔(适宜以事件形式定义)。
采用min_rep的是因为一个模式本身需要重复至少某一次数来说明其重要性和周期性。采用max_dis的是因为两个有效段间的扰动必须在某个合理的范围之内。否则,应将这一扰动当作一个“系统行为的变化”信号,而不是注入到某些一贯行为中的随机噪声。参数max_dis起到分隔这两种现象的边界作用。这两个参数的合理值依具体的应用而定,因而可以方便地允许用户来指定。对于满足这两个参数的模式,本发明的方法将返回具有最大完整重复次数的子序列。注意,由于扰动的出现,在一个事件序列中一个后续的有效段可能与该事件序列中先面的有效段不是很好地同步(例如,因为出现某一位移)。这种现象对数据挖掘过程提出了更大的难题。
挖掘问题的输入涉及到一个输入序列。下面是一个输入序列的例子a2a1a1*a1a1*a1a1*a3。例如,输入序列中的一个模式是a1a1,在事件序列中重复3次。参考符号*代表一个“永久事件”。一个永久事件是一个可以等同于任何事件的虚拟事件。这样,一个永久事件可以用来表示一个模式中的“不关心”的位置。一个永久事件也可以被看作是“非独特的”,这种情况下,一个诸如a1的事件被认为是“独特的”。
依照本发明,允许部分填充一个模式,能够形成一个更灵活的非同步周期模型。例如,(cold_medi,*,*,*)是一个局部的月周期模式,表现为在每月的第一个星期再次订购感冒药品,而在另外的三个星期中的药品补充订购不是非常有规律的。然而,由于本发明考虑到一个有效段的具体出现的变化,这一灵活模型带来一个需要解决的难题。对于一个给定的模式P,其相关的有效段可以是重叠的。为了找到P的具有最大重复次数的有效子序列,我们必须决定应选择一个有效段的哪一部分。对于一个给定模式,要找到有效段集相对来讲是容易的,而真正的困难在于如何组合这些有效段形成最长的有效子序列。由于不同组件的(有效段)数目随着周期长度呈指数形式增长,挖掘最长子序列的过程变成得非常困难(即使对于一个诸如(d1,*,*)这样一个非常简单的模式)。针对一个给定的模式,为了解决这一问题,提出一个有效的挖掘方法,来识别在一个事件序列中可能扩展为最长子序列的子序列,并以这样一种方式组织识别的子序列,以便可以通过扫描单一的输入序列来识别最长的子序列。根据该方法,仅需检查所有可扩展子序列中的一小部分。
本发明挖掘数据方法的另一个优点是可以发现所有与周期长度无关的周期模式。这点是很有效的,因为实际上周期不是总可以事先得到的。因而,周期也是从数据中挖掘出来的。
回到上面描述的库存补充的例子中,不同商品的库存可以以不同的频率补充(这在事先是未知的,并且有时是变化的)。一个周期可以在一个长时间序列中跨越数千个事件,或者可以仅跨越几个事件。提供一个基于时间间隔的修剪机理来发现所有可能的周期和可能以每个可能周期的某一模式出现的事件集。为了发现所有可能模式的最长有效子序列,采用了一种等级式的方法。先验的特性也持续同一周期的模式。就是说,一个模式的一个有效段也是仅具有很少几个该模式指定事件的模式的一个有效段。例如,(d1,d2,*)的一个有效段也将是(d1,*,*)的一个有效段。因而,对于每个可能的周期,所有的具有最长支持子序列的有效模式可以被反复地挖掘。
这里将根据图2对本发明进行简要描述。接着参照图3-15对本发明进行更多的细节描述。
图2是一个说明依照本发明一个示例实施方案的在一个输入事件序列中挖掘非同步周期模式的全过程的示意图。从事件序列中识别候选1-模式(下文中表示为“1-模式”)(步骤210)。一个1-模式是一个包含一个事件的模式(1-模式也由此被称为“单一模式”)。例如,(d1,*,*)被认为是一个1-模式。因为一共有0(T×Lmax2)个1-模式的总数,所有的1-模式不能立即装入到内存。相应地,一个基于时间间隔的修剪方法被用于1-模式,以减少1-模式的数目(步骤212)。
接下来,对于每个1-模式,校验1-模式是否是有效的(步骤214)。当一个模式关于包含该模式的事件序列的一个子序列满足min_rep和max_dis时,该模式被认为是有效的。应该注意到,术语“有意义”和“有效”在这里是可以交换使用的。
没有效的1-模式被忽略(步骤216)。相反,对于每个有效的1-模式,相应的具有最大的该1-模式重复次数的子序列(即最长子序列)被识别(步骤218)。有效的复杂模式,连同它们的相关的最长子序列被识别(步骤220)。一个复杂模式是一个包含多于一个事件的模式。
图3是一个说明依照本发明一个示例实施方案的基于时间间隔的修剪过程(图1的步骤101)的示意图。扫描事件序列来识别其中的每个事件。对于事件序列中的每个事件,执行下面的步骤310。
对于输入时间当前处理位置(current_position)上的一个给定的事件d,所有与该给定事件d相关的时间间隔计数器都被更新(步骤310)。时间间隔计数器被用于在事件序列中确定事件的位置。确定在事件序列中是否存在多个事件(步骤312)。如果是,过程返回到步骤310(处理序列中的下一个事件)。否则,产生1-模式候选集(步骤312),而后该方法结束。
图4是一个说明依照本发明一个示例实施方案的时间间隔计数器的更新过程(图3的步骤310)的示意图。为变量d赋值来表示一个当前正在处理的事件(步骤410)。一个变量i被设置成当前位置值减1(即current_position-1)(步骤412)。然后确定d是否等于序列中第i个位置的事件(即d前面的事件)(步骤414)。如果是,具有一个i-current_position周期的事件d的计数器被加1(其中,current_position等于当前正在处理的事件的位置)(步骤416),并且过程进行到步骤418。否则,过程进行到步骤418。
在步骤418,i值被减1。然后确定i(即第i个位置)与current_positon之间的差别是否小于或等于Lmax。如果是,过程返回到步骤414。否则,过程结束。
图5是一个说明依照本发明一个示例实施方案的从时间间隔计数器中产生的一个1-模式候选集的过程(图3的步骤314)的示意图。对于事件序列中的一个独特的事件d,每个周期长度l被识别(步骤510)。对于一个给定的周期长度l,确定计数器[d][l]是否大于min_rep(步骤512)。如上面声明,min_rep是(预先定义的)一个给定事件序列中一个给定子序列所展现的最小重复次数。
如果是,模式(d,*,…,*)被插入到1-模式的候选集中(步骤514)。注意,插入的模式包括一个事件和周期。否则,过程进行到步骤516。
在步骤516,确定对于当前正在处理的清楚事件d是否存在多出的周期长度l。如果是,过程返回到步骤512。否则,确定是否还有需要处理的事件d(步骤516)。如果是,过程返回到步骤510。否则,过程结束。
图6是一个说明依照本发明一个示例实施方案的识别出现一个给定的模式1的最长的子序列的过程(图2的步骤218)的示意图。如上面注释,一个给定的1-模式的最长子序列是其中出现该1-模式最多重复的子序列。
对于事件序列中一个给定的事件d,valid_seq被修剪(步骤610)。Valid_seq是一个子序列列表,其中列表中的每个子序列可以通过向其中附加有效段来扩展。在本发明的一个优选实施方案中,valid_seq通过一个队列来实现,其中valid_seq中所列的子序列根据其结尾位置按照降序排列。
接下来,更新ongoing_seq(步骤612)。ongoing_seq是一个包含子序列列表的列表,其中每个子序列列表具有相同的结尾位置,并且子序列的最后段是活动增长的。在本发明的一个优选实施方案中,ongoing_seq通过一个队列来实现,其中ongoing_seq中相同列表的所有子序列具有相同的结尾位置,并且根据其结尾位置按照升序排列。
一个新的子序列被插入到ongoing_seq(步骤614)。确定是否存在更多需要处理的事件d(步骤616)。如果是,那么过程返回到步骤610。否则,Valid_seq和longest_seq中的最长子序列被识别为给定模式的最长子序列(步骤618)。Longest_seq是sequence_set中具有重复最多的子序列。sequence_set是一个用于临时存储的子序列的列表。
图7是一个说明依照本发明一个示例实施方案的在valid_seq中修剪序列表的过程(图6的步骤610)的示意图。New_seq被初始化为空(步骤710)。New_seq是一个新产生的子序列。
从valid_seq的头部取出一个子序列(seq)(步骤712)。确定seq是否为空(即valid_seq中的所有子序列都已被处理)(步骤714)。如果是,则方法进行到步骤724。否则,确定序列seq的结尾位置(seq.ending)与检测事件位置(current_position)间的时间间隔是否小于或等于max_dis(步骤716)。如上所述,max_dis是一个给定事件序列的一个给定子序列中的一个模式的两个连续的重复之间最大的时间间隔。
如果是,过程进行到步骤722。否则,确定总的seq重复次数是否小于总的最长序列的重复次数,后面被称为longest_seq(注意longest_seq恰好是序列seq)(步骤718)。如果不是,过程回到步骤712。否则,序列seq被指定为longest_seq(步骤720),过程返回到步骤712。
在步骤722,序列seq被插入到new_seq中,过程返回到步骤712。在步骤724,当valid_seq中所有的子序列都被处理完后,new_seq被赋给valid_seq。
图8是一个说明依照本发明一个示例实施方案的更新ongoing_seq中子序列列表的过程(图6的步骤612)的示意图。首先,从ongoing_seq中提出一个项(即一个序列列表)并赋给sequence_set(步骤810)。确定sequence_set是否是空的(步骤812)。如上所述,sequence_set是一个用于临时存储的子序列列表。在本发明的一个优选的实施方案中,sequence_set是利用一个队列来实现的。
如果sequence_set是空的,则处理过程结束。否则,确定当前位置后子序列是否处于sequence_set的结尾处(步骤814)。如果是,那么sequence_set被插回到ongoing_seq的头部(步骤816),处理过程结束。否则,确定sequence_set中的结尾位置(sequence_set.ending)是否就是当前位置前面的位置(current_position-1)(步骤818)。如果不是,则处理过程返回到步骤810。否则,sequence_set的子序列被扩展,多包括一个相配的发生(即多出一个该模式的发生)(步骤820),过程返回到步骤810。
图9是一个说明依照本发明一个示例实施方案的扩展相配的子序列的过程(图8的步骤820)的示意图。
sequence_set的子序列被扩展,多包括一个该模式的发生(步骤910)。然后,sequence_set被修剪(步骤912)。sequence_set的有效子序列被识别,而后,这些有效的子序列被复制并被插入到valid_seq中(步骤914)。接着,sequence_set被放置到ongoing_seq的尾部(末尾)(步骤916),处理过程结束。
图10是一个说明依照本发明一个示例实施方案的在sequence_set中扩展子序列的过程(图8的步骤801)的示意图。对sequence_set中的每个seq执行图10中的方法。
对于sequence_set中给定的子序列seq,在给定子序列seq的结尾位置增加一个周期长度l(步骤1010)。确定在sequence_set中是否存在多出的子序列seq(步骤1012)。如果是,处理过程回到步骤1010。否则,过程结束。
图11是一个说明依照本发明一个示例实施方案的修剪sequence_set的过程(图9的步骤912)的示意图。对于sequence_set1001中的每个子序列的seq,重复执行步骤1110、1112和1114。对于sequence_set 1001中的每个子序列的seq,还重复执行步骤1116和1118。
对于sequence_set中给定子序列的seq,确定序列当前重复的次数(seq.current_rep)是否大于阈值min_rep(即seq_valid),以及序列总的重复次数(set.total_rep)是否大于目前所发现的最大子序列的总的重复次数(largest.total_rep)(步骤1110)。如果是,那么最大的子序列被设定为给定子序列seq(步骤1112),处理过程进行到步骤1114。否则,处理过程进行到步骤1114。
在步骤1114中,确定在sequence_set中是否存在更多的没有被用于步骤1110的子序列seq。如果是,处理过程返回到步骤1110(处理sequence_set中下一个子序列seq)。否则,确定seq当前重复的次数是否大于min_rep(即seq_valid),以及seq总的重复次数是否小于总的largest的重复次数(步骤1116)。如果是,那么从sequence_set中移除seq(步骤1118),处理过程进行到步骤1120。否则,处理过程进行到步骤1120。在步骤1120,确定在sequence_set中是否存在更多的没有被用于步骤1116的子序列seq。如果有,处理过程进行到1116。否则,处理过程结束。
图12是一个说明依照本发明一个示例实施方案的在sequence_set中识别有效子序列,以及复制并插入有效子序列到valid_seq的过程(图9的步骤914)的示意图。对sequence_set中的每个子序列seq重复进行步骤1210和1212。
对于sequence_set中的一个给定的子序列seq,确定该给定子序列seq当前的重复次数是否大于或等于min_rep(步骤1210)。如果是,子序列seq,被复制并被插入到valid_seq中(步骤1212),处理过程进行到步骤1214。否则,处理过程进行到步骤1214。
在步骤1214中,确定在sequence_set中是否存在更多的子序列seq。如果是,处理过程进行到1210。否则,处理过程结束。
图13是一个说明依照本发明一个示例实施方案的在ongoing_seq中插入一个新的序列的过程(图6的步骤614)的示意图。对valid_seq中的每个子序列seq重复进行步骤1310和1 312。
对于一个valid_seq中给定子序列的seq,确定序列当前重复的次数(seq.total_rep)是否大于目前所发现的最大子序列的总的重复次数(largest.total_rep)(步骤1310)。如果是,那么子序列seq被设定为largest(步骤1312),处理过程进行到步骤1314。否则,处理过程进行到步骤1314。
在步骤1314中,确定在valid_seq中是否存在多出子序列seq。如果是,处理过程返回到步骤1310。否则,largest的结尾位置(largest.ending)被扩展,包含当前的匹配(l+current_position-1)(即包含该模式的另一个发生)(步骤1316)。然后,largest的被插入到ongoing_seq(步骤1316),处理过程结束。
图14是一个说明依照本发明一个示例实施方案的识别sequence_set中重复次数最多的子序列和子序列longest_seq过程(图X的步骤XXX)的示意图对于一个valid_seq中给定子序列的seq,确定序列当前重复的次数(seq.total_rep)是否大于目前所发现的最大子序列的总的重复次数(largest.total_rep)(步骤1410)。如果是,那么序列seq被设定为largest(步骤1412),处理过程进行到步骤1414。否则,处理过程进行到步骤1414。
在步骤1414中,确定在valid_seq中是否存在更多的子序列seq。如果是,处理过程返回到步骤1410。否则,处理过程进行到步骤1416。
在步骤1416中,确定longest_seq的总的重复次数(longest_seq.total)是否大于最大子序列的总的重复次数(largest.total_rep)。如果是,则返回longest_seq(步骤1418)。否则,返回largest。
图15是一个说明依照本发明一个示例实施方案的识别复杂模式的过程(图2的步骤220)的示意图。
一个变量i被初始化为1(步骤1510)。根据有效i模式的识别(图2的步骤220),产生i+1-模式的候选集(步骤1512)。如果(d1,*,*)和(d2,*,*)是有效的,则(d1,d2,*)、(d1,*,d2)、(d2,d1,*)和(d2,*,d2)是有效2模式的候选集。
确定i+1-模式的候选集是否是空的。如果是,则处理过程结束。否则,有效i+1-模式连同其最长的相应子序列一起被识别(步骤1516)。变量i加1(步骤1518),过程进行到步骤1512。
下面将简要描述本发明的某些方面和优势。本发明允许一个模式被局部指定,例如,(d1,*,*)。这样,有利地提供一个更灵活的非同步周期模型,允许挖掘周期范围很大的、预先未知的所有模式。当所有模型仅出现在一个事件序列的一个子序列中时,可使用本发明的模型。而且,该模型可以用于因插入某种随机扰动而导致其发生的方向偏离的所有的模式。提供了一个两阶段的方法,首先通过基于时间间隔的修剪产生潜在的周期,接着是一个派生和核实候选模式,并定位包含每个模式的最长有效子序列的重复过程。
应该意识到,尽管本发明所用的一些变量(如valid_seq、sequence_set等子序列的列表)是用队列的形式来描述,但相关技术领域的一般技术人员将很容易考虑到许多其它的方法来实现这些变量,而不会超出本发明的宗旨和范围。
尽管这里结合附图描述了本发明的示例实施方案,应当清楚,本系统和方法并不局限于这些实际的实施方案,该技术领域的熟练人员可以进行其它不同的更改和修正,而不背离本发明的宗旨和范围。所有这些更改和修正不应超出附加的权利声明中所规定的本发明的范围。
权利要求
1.一种在一个事件序列中识别局部周期模式的方,每一模式包括一个事件序列中的事件列表,该方法包括下列步骤识别事件序列的至少一个子序列和至少一个子序列中的至少一个模式,以便使得至少一个模式在至少一个子序列中的重复次数超过一个最小数目,和至少一个子序列中的至少一个模式的两次连续的重复的间隔时间不超过一个预先规定的时间间隔阈值;以及存储至少一个模式和至少一个子序列两者中的至少一个。
2.依照权利要求1的方法,其中一个给定模式中的每个事件是独特的与非独特的两者中的一种,每个非独特的事件匹配同为任意的清楚事件。
3.依照权利要求1的方法,其中该方法通过可由机器读取的程序存储设备来实现,该程序存储设备适合实施由机器执行的指令程序以进行该方法的步骤。
4.一种在一个事件序列中识别局部周期模式的方法,每一模式包括一个事件序列中的事件列表,该方法包括下列步骤识别候选模式周期的一个CPP集和候选事件的多个CE集,其中在CPP集中的每个候选模式周期都是对应于候选事件的多个CE集中的一个;识别至少一个包括CE集中的候选事件并带有CPP集中的相关候选模式具有相同周期的模式,而且,识别包含至少一个模式的事件序列中的至少一个子序列,以便使得至少一个模式在至少一个子序列中超过最小的重复次数,至少一个子序列中的至少一个模式的两个连续的重复之间的间隔不超过一个预定的时间间隔阈值;和存储至少一个模式和至少一个子序列两者中的至少一个。
5.依照权利要求4的方法,其中CPP集中每个候选模式周期要比预先指定的最长周期长度短
6.依照权利要求4的方法,其中至少一个子序列是包含至少一个模式的最长的事件子序列。
7.依照权利要求4的方法,其中所述的识别候选模式周期的CPP集和候选事件的多个CE集的步骤包括初始化多个时间间隔计数器。每个时间间隔计数器与多个事件和周期组合中的一个相关联,每一个组合包括来自于CPP集的一个周期和来自于相关的候选事件CE集中的一个事件;更新每个时间间隔计数器的值以反映出一个相关的事件与上一次相关事件的发生之间的时间间隔;和识别事件和周期的组合,以便使得与每个识别的组合相关联的时间间隔计数器的值超过最小的重复次数。
8.依照权利要求4的方法,其中多个事件和周期组合的每一个周期长度小于指定的最大的周期长度
9.依照权利要求4的方法,其中所述的识别候选模式周期的CPP集和候选事件的多个CE集的步骤包括识别单一模式和包括单一模式的子序列,其中每个单一模式仅有一个由事件序列的一个事件来填充的位置;和识别复杂模式并确认其有效,其中每个复杂模式具有一个以上的由事件序列的一个事件来填充的位置。
10.依照权利要求9的方法,进一步包括核实单一模式有效性的步骤。
11.依照权利要求10的方法,其中有效性核实的步骤包括对于每次发生的给定单一模式事件修剪子序列集Z中包含的子序列,集Z中每个子序列对应于一个事件和周期组合,相应的事件和周期组合中的每个周期与一个给定模式相关联,给定模式超出集Z中一个给定子序列中的一个最小的重复次数,以及在给定子序列中的给定模式连续重复之间的时间间隔不超过预定的时间间隔阈值;和根据集Y中子序列的结尾位置,更新包含在集Y中的子序列,集Y包括一个子序列表的列表,其中包含在集Y中的每个列表中的子序列具有同样的结尾位置。
12.依照权利要求11的方法,其中所述的修剪集Z中的子序列的步骤包括从集Z中移除那些结束位置距集Z的一个子序列的给定单一模式中的当前位置的距离大于的预定时间间隔阈值的所有的子序列;和更新一个集X,集X包括一个子序列集W中的一个子序列,集X中的该子序列具有比集W中任何其它子序列都多的给定模式的重复次数,集W中的每个子序列都是可以进一步处理的,当集X中的子序列具有比从集Z中移除的子序列少的重复次数时,进行上述的更新操作。
13.依照权利要求11的方法,其中更新包含在集Y中的子序列的步骤包括把在事件序列的当前处理位置的上一个位置之前结束的所有子序列从集Y中移除;扩展刚好在事件序列中当前处理位置的前一个位置处结束的集Y的子序列,包含进一个给定单一模式的当前的重复;和通过给定单一模式的一次重复来扩展集Z中最长的子序列,并将该最长子序列插入到集Y中。
14.依照权利要求13的方法,其中扩展恰好在事件序列的当前处理位置的前一个位置处结束的集Y的子序列的步骤包括当扩展后的子序列的上一个段的重复次数超过预定的阈值时,移除集Y中那些与一个最长子序列相比重复次数较少的子序列。
15.依照权利要求12的方法,进一步包括为存储集Z、Y、X和W中的子序列而维持至少一个数据结构。
16.依照权利要求15的方法,其中该至少一个的数据结构是一个队列。
17.依照权利要求15的方法,其中集Z中的每个子序列根据结束位置按照升序排列。
18.依照权利要求15的方法,其中集Y中的每个子序列根据结束位置按照升序排列。
19.依照权利要求9的方法,其中事件序列中的事件是独特的和非独特的两者中的一种,所述的识别和核实复杂模式的步骤包括从一个有效(i-1)-模式的集J中识别一个候选i-模式的一个集I,每个i-模式包含i个事件,每个(i-1)-模式包含i-1个事件;核实候选i-模式的集I的有效性;和重复上述的识别和核实候选i-模式的集I的步骤,直至集J中的一个子序列为空,并且集J中的每个模式的所有位置都填充上独特的事件。
20.依照权利要求19的方法,其中识别候选i-模式的集I的步骤包括对于集W中的一个给定的有效(i-1)-模式P通过用一个清楚事件替换给定(i-1)-模式P中的一个非清楚事件来识别一个i-模式P′;和当用一个非清楚事件替换P′中的一个清楚事件会产生一个有效的(i-1)-模式时,将P′识别为一个候选i-模式,而不能识别出新的i-模式。
21.依照权利要求4的方法,其中该方法通过可由机器读取的程序存储设备来实现,该程序存储设备适合实施由机器执行的指令程序以进行该方法的步骤。
22.一种在一个事件序列中识别局部周期模式的方法,每一模式包括一个事件序列中的事件列表,该方法包括下列步骤在一个事件序列的一个子序列中指定一个模式的最小重复次数,和该子序列中该模式连续重复间最大的时间间隔;识别事件序列中的事件和包含该模式的事件序列的子序列;和仅存储模式和子序列,这样使得一个存储的模式超出一个存储子序列内的最小重复次数,存储子序列内的存储模式的连续重复不超出最大的时间间隔。
23.依照权利要求22的方法,其中该方法通过可由机器读取的程序存储设备来实现,该程序存储设备适合实施由机器执行的指令程序以进行该方法的步骤。
全文摘要
本发明提供一种在一个事件序列中识别局部周期模式的方法,其中模式包括一个事件序列的事件列表。事件序列的至少一个子序列和至少一个子序列中的至少一个模式被识别,这样使得至少一个模式在至少一个子序列中超过一个最小的重复次数,在至少一个子序列中的至少一个模式的连续的重复的时间间隔不超过一个预定的时间间隔限定值。至少一个模式和至少一个子序列两者中至少一个被存储起来。
文档编号G06F17/30GK1327191SQ0112124
公开日2001年12月19日 申请日期2001年6月1日 优先权日2000年6月2日
发明者W·王, J·杨, P·S-L·余 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1