一种频繁邻接序列模式挖掘方法技术

技术编号:20363130 阅读:56 留言:0更新日期:2019-02-16 16:38
本发明专利技术提供一种频繁邻接序列模式挖掘方法,包括以下步骤:序列数据整理;获取序列数据库中的所有项目的数量mt及最大的序列长度L;创建l阶空的稀疏张量与维数为l的空数组;遍历序列数据库,查询长度为l的序列并存入维数为l的数组中;将每一数组中的每一行(列)分别对应为稀疏张量中的位置索引,累计稀疏张量中每个元素的值,该值即为所对应序列模式的频数;在稀疏张量中筛选出频数在最小支持度以上的元素,该元素对应的序列模式即为频繁序列模式。去除了冗余的频繁模式和循环序列模式,同时通过利用稀疏张量数据结构,有效地避免了维度爆炸,算法时间复杂度低,在进行大规模频繁序列挖掘时有较好的时效性。本发明专利技术应用于数据挖掘技术领域。

【技术实现步骤摘要】
一种频繁邻接序列模式挖掘方法
本专利技术涉及数据挖掘
,尤其涉及一种频繁邻接序列模式挖掘方法。
技术介绍
序列模式挖掘是查找序列集合中的频繁序列模式的重要方法,给定一个由不同序列组成的集合,其中,每个序列由不同的元素按顺序有序排列,同时给定一个用户指定的最小支持度阈值minsup,序列模式挖掘就是找出所有出现频率不低于minsup的子序列。常用的基本序列模式挖掘算法有类Apriori算法(AprioriAll、AprioriSome、DynamicSome)和基于数据投影的算法(FreeSpan,PrefixSpan)等。Apriori类算法的思想大致相同,首先遍历序列数据库生成候选序列并利用先验性质进行剪枝得到频繁序列模式,每次遍历都是通过连接上次得到的频繁序列模式生成新的长度加1的候选序列,然后扫描每个候选序列验证其是否为频繁序列模式,要对数据库进行反复多次的扫描。FreeSpan算法利用当前挖掘的频繁序列模式集将序列数据库递归地投影到一组更小的投影数据库上,分别在每个投影数据库上增长子序列,PrefixSpan是FreeSpan的改进算法,其投影时不考虑所有可能出现的频繁子序列,只检查前缀序列,然后把相应的后缀投影成投影数据库,之后在其中只检查局部频繁模式,不需要生成候选子序列。PrefixSpan算法在处理数据时有较高的效率,但在实际使用时仍存在一定的问题,例如产生冗余序列等。PrefixSpan算法是挖掘频繁序列模式的经典算法,通过分而治之的策略,相较于其他算法,其具有较高的时间效率。在该算法中,序列数据库被递归地投影到一组较小的投影数据库(ProjectedDatabases)中,并且通过检查每个投影数据库中本地频繁片段而增长序列模式。该算法在数据库投影时使用前缀(Prefix)的概念。对于初始数据库S中的每个频繁项α,创建数据库S的投影数据库,记为S|α。S|α表示的意义为:(1)α是频繁项;(2)只存储S中出现α的序列;(3)在S|α中的每个序列中,α及其之前的所有项都被移除。其思想即是所有以α开头的序列模式都可以通过检查S|α发现。接下来,对S|α中的每个频繁项β,采用类似策略,创建新的投影数据库S|αβ,用以发现αβ开头的序列模式。PrefixSpan算法的时间复杂度很难给出一个定量化的结果,其主要时间消耗在构造投影数据库,但随着前缀的加长,其投影数据库的大小会减小。在最坏情况下,S中每条序列的每个子序列都是频繁的,其要为每个频繁模式构建一个投影数据库。同时,挖掘序列中的所有模式会导致一些问题,例如挖掘了大量冗余的模式和循环序列模式问题。如图2(a)所示的展示了5个节点以及4条不同的有向边。则数据库包含4条序列:1→3→4→5、1→3→4→5、1→2→4→5、1→2→4→5,设置最小支持度minsup为2(即序列出现2次以上被认为是频繁的),那么PrefixSpan算法将发现所有序列模式,如表1所示:表1示例中发现的序列模式表1中存在一些长度为1的序列模式,然而在现实应用中其经常是冗余的无用模式。还有大量序列为间接序列,即由一个节点不能直接到达另一个节点,比如序列1→5,在实际应用中这样的序列在很多情况下是没有意义的,因而挖掘所有模式会导致一些额外开销。如图2(b)所示的显示了两条一样的区域序列1→2→1、1→2→1。若设置最小支持度minsup为2,按上述PrefixSpan算法对其进行挖掘,那么1→1这种间接序列将被认为是频繁的,然而这种循环序列在很多情况下也是没有意义的。
技术实现思路
针对现有技术在序列模式挖掘过程中会挖掘出大量循环序列模式与冗余序列模式等无用模式,进而造成额外的开销,本专利技术的目的是提供一种频繁邻接序列模式挖掘方法,去除了大量的循环序列模式与冗余序列模式(即间接序列模式和长度为1序列模式),使得挖掘结果更加符合实际问题,同时有较好的时间效率,避免造成额外的开销,可以很好的应用于实际的大规模频繁序列模式挖掘任务中。本专利技术采用的技术方案是:一种频繁邻接序列模式挖掘方法,包括以下具体步骤:S1、对序列数据集中的数据进行序列数据整理,获取序列数据库;S2、获取序列数据库中的所有项的数量mt及最长序列的长度L;S3、创建l阶空的稀疏张量与维数为l的空数组,其中l=2,3,…,L;S4、遍历序列数据库,查询长度为l的序列并存入维数为l的数组中,其中l=2,3,…,L;S5、将每一数组中的每一行(列)分别对应为稀疏张量中的位置索引,累计稀疏张量中每个元素的值,该值即为所对应序列模式的频数;S6、在稀疏张量中筛选出频数在最小支持度以上的元素,该元素对应的序列模式即为频繁序列模式。作为上述技术方案的进一步改进,步骤S1中,所述序列为通用序列。作为上述技术方案的进一步改进,步骤S2中,所述最大的序列长度L为序列数据库中最长序列的长度,所述所有项的数量mt为序列数据库中所有不重复项目的总数目。作为上述技术方案的进一步改进,步骤S4中,对同一条序列中的重复子序列进行去重。本专利技术的有益技术效果:本专利技术通过建立稀疏张量与数组来挖掘直接相连的频繁序列模式即频繁邻接序列模式,相较于经典序列挖掘算法,其有效地去除了在一些实际问题中为冗余的频繁模式和循环序列模式,从而使序列模式挖掘结果更加符合一些实际问题,同时通过利用稀疏张量数据结构,有效地避免了维度爆炸,算法时间复杂度低,在进行大规模频繁序列模式挖掘时有较好的时效性。附图说明图1是本实施例的流程图;图2是背景领域示例序列图;图3是挖掘长度为2和3的邻接序列模式示意图;图4是N=1000,minsup=1%、2%和4%,len从8增加到128时本专利技术所提算法与PrefixSpan的在不同条件下运行时间对比示意图;图5是minsup=2%,len=32,N从500增加到2500时本专利技术所提算法与PrefixSpan的在不同条件下运行时间对比示意图。具体实施方式为了便于本专利技术的实施,下面结合具体实例作进一步的说明。如图1所示的一种频繁邻接序列模式挖掘方法,包括以下具体步骤:步骤一,序列数据整理S1、对序列数据集中的数据进行整理,获取序列数据库本实施例中频繁序列模式(FrequentSequentialPattern,FSP)的相关定义为:给定一个序列数据集D,FSP挖掘问题即是找出D中所有出现的频繁序列模式,这些频繁序列模式是在D中占一定比例的序列的子序列。称序列alpha=α1→α2→...→αn为beta=β1→β2→...→βm的一个子序列,即当且仅当存在一组整数序列1≤i1≤i2...≤in≤m,使得有即要使alpha为beta的子序列,则需要alpha中的每个项αj都有一个beta中的项βj与之对应,且后者与前者呈包含关系,且这些按序号组成一个beta的子序列,其顺序与alpha的顺序一致。给定一个比例阈值minsup,称R是D中的频繁序列模式,当且仅当R的支持度supD(R)≥minsup,其中Γ∈D,所有这样的Γ在D中比例即为R的支持度supD(R)。本实施例中的序列是通用序列,即一个序列仅涉及项和顺序两个概念(上述的αk和βm都是多个项目Item的集合,即Itemset)。对于获取的序列数据集X={Sq1,Sq2,..本文档来自技高网
...

【技术保护点】
1.一种频繁邻接序列模式挖掘方法,其特征在于,包括以下具体步骤:S1、对序列数据集中的数据进行整理,获取序列数据库;S2、获取序列数据库中的所有项的数量mt及最长序列的长度L;S3、创建l阶空的稀疏张量与维数为l的空数组,其中l=2,3,···,L;S4、遍历序列数据库,查询长度为l的序列并存入维数为l的数组中,其中l=2,3,···,L;S5、将每一数组中的每一行(列)分别对应为稀疏张量中的位置索引,累计稀疏张量中每个元素的值,该值即为所对应序列模式的频数;S6、在稀疏张量中筛选出频数在最小支持度以上的元素,该元素对应的序列模式即为频繁序列模式。

【技术特征摘要】
1.一种频繁邻接序列模式挖掘方法,其特征在于,包括以下具体步骤:S1、对序列数据集中的数据进行整理,获取序列数据库;S2、获取序列数据库中的所有项的数量mt及最长序列的长度L;S3、创建l阶空的稀疏张量与维数为l的空数组,其中l=2,3,···,L;S4、遍历序列数据库,查询长度为l的序列并存入维数为l的数组中,其中l=2,3,···,L;S5、将每一数组中的每一行(列)分别对应为稀疏张量中的位置索引,累计稀疏张量中每个元素的值,该值即为所对应序列模式的频数;S6...

【专利技术属性】
技术研发人员:王江周鋆王培超易侃任华
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1