不确定周期性频繁项集挖掘方法及装置与流程

文档序号:22929279发布日期:2020-11-13 16:26阅读:138来源:国知局
不确定周期性频繁项集挖掘方法及装置与流程

本发明涉及数据挖掘技术领域,具体涉及一种不确定周期性频繁项集挖掘方法及装置。



背景技术:

随着计算机和互联网技术的快速发展,从各种应用中收集的数据量越来越大。同时,由于数据采集过程中出现的各种问题,在采集到的数据中往往存在一些不确定的信息。

如何从海量不确定数据库中挖掘出有价值的信息和知识,采用频繁模式挖掘是一种常用技术,其采用的方法主要分为两类:基于期望支持度和基于置信度的频繁项集挖掘。然而,基于期望支持度的频繁项集挖掘方法虽然计算简单,但这种方法只计算了项集的期望支持度,难以保证频繁概率的准确性;而基于置信度的频繁项集挖掘方法则应用了可能性世界模型,并在该模型的基础上计算每个可能世界中的频繁项集,最后将某项集为频繁项集的可能世界概率相加得到的就是该项集的频繁概率,这样的计算虽然提高了频繁概率的周期性却使计算量变得极为庞大。

因此,现有的针对不确定数据库进行频繁模式挖掘的方法,越来越来不能满足需求。

需要注意的是,本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。



技术实现要素:

本发明实施例提供一种不确定周期性频繁项集挖掘方法及装置,以解决现有技术中针对海量不确定数据库进行数据挖掘时,采用的频繁模式挖掘方法难以保证频繁概率的准确性或者计算量极为庞大的问题。

第一方面,本发明实施例提供一种不确定周期性频繁项集挖掘方法,包括:

对不确定事务数据库进行扫描,生成所述不确定事务数据库包括的各元素对应的1项集,并获取满足预设周期性频繁概率条件的周期性频繁1项集;

根据深度优先遍历方法,对所述周期性频繁1项集进行扩展,逐层生成多个n项集,并获取满足预设周期性频繁概率条件的周期性频繁n项集,n为小于等于所述周期性频繁1项集总数的自然数;

根据所述周期性频繁1项集和所述周期性频繁n项集,确定从所述不确定事务数据库中挖掘出的周期性频繁项集。

作为本发明第一方面的优选方式,所述对不确定事务数据库进行扫描,生成所述不确定事务数据库包括的各元素对应的1项集,并获取满足预设周期性频繁概率条件的周期性频繁1项集,包括:

对所述不确定事务数据库进行扫描,生成所述不确定事务数据库包括的各元素对应的1项集;

获取各所述1项集的事务序列以及对应的项集参数,所述项集参数包括支持度计数和项集周期;

确定项集参数满足预设参数条件的1项集为频繁1项集,并基于动态规划方式计算所述频繁1项集的周期性频繁概率;

确定周期性频繁概率满足预设概率条件的频繁1项集为满足预设周期性频繁概率条件的周期性频繁1项集。

作为本发明第一方面的优选方式,所述确定项集参数满足预设参数条件的1项集为频繁1项集,包括:

判断所述1项集的支持度计数是否大于等于预设最小支持度阈值;

若是,则判断所述1项集的项集周期是否小于等于预设最大周期阈值;

若是,则确定所述1项集为项集参数满足预设参数条件的频繁1项集。

作为本发明第一方面的优选方式,所述基于动态规划方式计算所述频繁1项集的周期性频繁概率,包括:

通过如下公式计算所述频繁1项集的周期性频繁概率:

其中,fp(x,tindex,pr,sup)为频繁1项集x的周期性频繁概率,tidlist为频繁1项集x的事务序列,plist为频繁1项集x的事务序列中包含的事务对应的概率,tindex为频繁1项集x的事务序列中包含的事务在事务序列中的编号,k为频繁1项集x的事务序列中包含的事务的数量,pr为频繁1项集x满足周期性频繁概率条件时允许的下一次项集发生的最大间隔,sup为频繁1项集x的支持度计数,maxgap为最大周期阈值,minsup为最小支持度阈值,mulsum为频繁1项集x的事务序列中从最后一项开始向前累计后得到的各事务对应概率的累乘值的列表。

作为本发明第一方面的优选方式,所述确定周期性频繁概率满足预设概率条件的频繁1项集为满足预设周期性频繁概率条件的周期性频繁1项集,包括:

判断所述频繁1项集的周期性频繁概率大于等于预设最小周期频繁概率阈值;

若是,则确定所述频繁1项集为满足预设周期性频繁概率条件的周期性频繁1项集。

作为本发明第一方面的优选方式,所述根据深度优先遍历方法,对所述周期性频繁1项集进行扩展,逐层生成多个n项集,并获取满足预设周期性频繁概率条件的周期性频繁n项集,包括:

根据所述周期性频繁1项集,按顺序依次添加排在所述周期性频繁1项集后面的其余周期性频繁1项集中包含的元素,生成多个2项集;

获取各所述2项集的事务序列以及对应的项集参数,所述项集参数包括支持度计数和项集周期;

确定项集参数满足预设参数条件的2项集为频繁2项集,并基于动态规划方式计算所述频繁2项集的周期性频繁概率;

确定周期性频繁概率满足预设概率条件的频繁2项集为满足预设周期性频繁概率条件的周期性频繁2项集;

以此类推,直至获取所有满足预设周期性频繁概率条件的周期性频繁n项集,n为小于等于所述周期性频繁1项集总数的自然数。

作为本发明第一方面的优选方式,所述确定项集参数满足预设参数条件的2项集为频繁2项集,包括:

判断所述2项集的支持度计数是否大于等于预设最小支持度阈值;

若是,则判断所述2项集的项集周期是否小于等于预设最大周期阈值;

若是,则确定所述2项集为项集参数满足预设参数条件的频繁2项集;

以及,所述确定周期性频繁概率满足预设概率条件的频繁2项集为满足预设周期性频繁概率条件的周期性频繁2项集,包括:

判断所述频繁2项集的周期性频繁概率大于等于预设最小周期频繁概率阈值;

若是,则确定所述频繁2项集为满足预设周期性频繁概率条件的周期性频繁2项集。

第二方面,本发明实施例提供一种不确定周期性频繁项集挖掘装置,包括:

第一获取单元,用于对不确定事务数据库进行扫描,生成所述不确定事务数据库包括的各元素对应的1项集,并获取满足预设周期性频繁概率条件的周期性频繁1项集;

第二获取单元,用于根据深度优先遍历方法,对所述周期性频繁1项集进行扩展,逐层生成多个n项集,并获取满足预设周期性频繁概率条件的周期性频繁n项集,n为小于等于所述周期性频繁1项集总数的自然数;

确定单元,用于根据所述周期性频繁1项集和所述周期性频繁n项集,确定从所述不确定事务数据库中挖掘出的周期性频繁项集。

第三方面,本发明实施例提供一种计算设备,包括处理器和存储器,其中所述存储器内存储有执行指令,所述处理器读取所述存储器内的执行指令用于执行如上述不确定周期性频繁项集挖掘方法及其优选方式中所述的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,包含计算机执行指令,所述计算机执行指令被用于执行如上述不确定周期性频繁项集挖掘方法及其优选方式中所述的步骤。

本发明实施例提供的不确定周期性频繁项集挖掘方法及装置,针对不确定事务数据库进行频繁模式挖掘时,在基于支持度计数算法的基础上添加了周期性约束条件,保证了频繁概率的准确性,能够有效满足挖掘需求;同时,采用动态规划技术有效减少了周期性约束条件的计算量,提高了算法的效率,能够在不确定事务数据库上快速高效地挖掘周期性频繁项集。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种不确定周期性频繁项集挖掘方法的实现流程图;

图2为本发明实施例提供的一种不确定周期性频繁项集挖掘方法中项集x在tidlist[tindex]出现的两种情况示意图;

图3为本发明实施例提供的一种不确定周期性频繁项集挖掘装置的结构示意图;

图4为本发明实施例提供的一种计算设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

随着信息技术和数据库技术的飞速发展,人们可以获取和保存的数据量也在逐渐增多。如何在庞大的数据中获取所需要的信息成了一大难点,在这种背景上,数据挖掘技术应运而生。简单来说,数据挖掘就是在大量的数据中提取出自己所需要的信息。数据挖掘技术可以应用于所有的数据库类型和数据流,例如关系数据库、事务数据库等等,其中的事务数据库是本文的主要研究对象。传统的频繁模式挖掘只关注项集的支持度计数,而忽略了项集发生的规律,即周期性,那么通过传统频繁模式挖掘得到的信息可能不够完整。

传统的频繁模式和周期性模式的挖掘大多是基于确定型数据库的,确定型数据库中每一事务发生的概率只有0和1两种可能,即事务是否发生是确定的。频繁项集指的是频繁出现在数据库中的项集,是通过比较数据集中项目集合、子序列或者子结构出现次数与预先设置支持度阈值来确定的。项集的周期性挖掘是指在传统的序列模式挖掘中添加新的约束条件:间隙约束条件,该条件要求数据库的任意两个项集之间满足用户指定的间隔约束,如果满足则称该项集为周期性项集。

然而,在实际生活中,由于采集数据的设备具有一定误差或是对原始数据进行简单的分析等原因,最后得到的往往都是包含着概率信息的不确定事务数据库。这导致了基于确定数据库的一般的频繁模式和周期性模式的挖掘算法不再适用于现在的大部分不确定事务数据库。

通过总结现有的在不确定事务数据库上进行频繁项集挖掘的经典算法,不难发现,大多数现有的不确定事务数据库上的频繁项集挖掘算法,都是通过计算某个项集满足频繁模式要求的可能性世界概率之和来判断它是否为频繁项集。为了提高算法的效率,大部分方法通常只考虑了项集的支持度计数而忽略了项集的周期性模式。然而,项集的周期性模式挖掘的计算量本就远大于大于频繁模式挖掘的计算量。因此,在不确定事务数据库中,在频繁项集挖掘算法的基础上增加周期性约束条件,并提高算法的效率,是本发明的主要动机。

本发明中所称的不确定事务数据库主要指记录级不确定事务数据库,记录级不确定事务数据库中的不确定信息出现在每一记录的最后。

在介绍本发明所述的方法之前,先对本方法中使用的一些基本定义做如下说明:

设i={i1,i2,…,in}是n个不同项目的集合。如果对一个集合且k=|x,则x称为k项集,或者简单地称为一个项集。

记d为事务t的集合,对于给定事务数据库td,定义x的支持度计数为td中包含x的事务个数,记为sup(x),包含x的事务集表示为g(x)={tg1,tg2,...,tgk},其中1≤g1<g2<...<gk≤n。

如果不存在使x<w<y的事务tw∈g(x),则两个事务tx(a)和ty(a)相对于项集x是连续的。g(x)中两个连续事务tx和ty的周期定义为peroid(tx,ty)=(y-x),即tx和ty之间的事务数量,其中的最大值记为per(x),即为项集的周期。用户可自定义一个小于|d|的最小支持度阈值和最大周期阈值,分别记为minsup和maxgap,可用于判定项集是否为周期性频繁项集。

同时,还给出了如下定义:

定义1:给定事务数据库td和最小支持度阈值minsup,对于项集如果sup(x)≥minsup,则称x为td中的频繁项集。

定义2:给定事务数据库td和最大周期阈值maxgap,对于项集如果per(x)≤maxgap,则称x为td中的周期项集。

定义3:给定不确定事务数据库utd、最小支持度minsup、最大周期maxgap以及最小周期频繁概率阈值ptf,对于项集如果项集x满足sup(x)≥minsup以及per(x)≤maxgap的所有可能性世界的概率之和prob(x)≥ptf,则称项集x为utd中的周期性频繁项集。

参照图1所示,本发明实施例公开了一种不确定周期性频繁项集挖掘方法,该方法主要包括:

101、对不确定事务数据库进行扫描,生成不确定事务数据库包括的各元素对应的1项集,并获取满足预设周期性频繁概率条件的周期性频繁1项集;

102、根据深度优先遍历方法,对周期性频繁1项集进行扩展,逐层生成多个n项集,并获取满足预设周期性频繁概率条件的周期性频繁n项集,n为小于等于周期性频繁1项集总数的自然数;

103、根据周期性频繁1项集和周期性频繁n项集,确定从不确定事务数据库中挖掘出的周期性频繁项集。

在步骤101中,根据实际的应用场景,获取包括至少一件事务的不确定事务数据库,其中每件事务中包括至少一个元素。

示例性地,表1中示出了根据实际的应用场景获取到的一个不确定事务数据集d。

表1

表1中,为方便理解起见,仅示出了一个包括t0、t1、t2、t3和t4在内的5件事务的不确定事务数据库d,该数据库中共包括1、2、3、4和5在内的5个元素item,但在实际应用场景中,产生的不确定事务和所涉及的元素将远不止于此。

对上述获取到的不确定事务数据库进行扫描,生成该不确定事务数据库包括的各元素对应的1项集,然后再从各1项集中筛选出满足预设周期性频繁概率条件的周期性频繁1项集。

优选地,在一种可能的实现方式中,步骤101可具体按照如下步骤实施:

1011、对不确定事务数据库进行扫描,生成不确定事务数据库包括的各元素对应的1项集。

对上述获取到的不确定事务数据库进行扫描,生成该不确定事务数据库包括的各元素对应的1项集。

例如,在表1中,该不确定事务数据库d包括的元素有1、2、3、4和5,则对应生成5个1项集,即{1}、{2}、{3}、{4}和{5}。

1012、获取各1项集的事务序列以及对应的项集参数,项集参数包括支持度计数和项集周期。

根据上述生成的各1项集,对应将包含该1项集的事务按顺序存储到该1项集的事务序列tidlist中,再根据该1项集的事务序列tidlist计算每个1项集在初始状态时的支持度计数sup和项集周期per,从而得到所有1项集的事务序列以及对应的项集参数。本实施例中,1项集的初始状态即指未考虑事务概率性时的状态。

例如,在表1中,对于1项集{1}来说,在不确定事务数据库d中包含该1项集{1}的事务有t1、t2和t3,那么1项集{1}的事务序列为[t1,t2,t3];对于1项集{2}来说,在该数据库d中包含该1项集{2}的事务有t0和t1,那么1项集{2}的事务序列为[t0,t1]。以此类推,则得到所有1项集的事务序列tidlist。

对于1项集{1}来说,其事务序列中包含3个事务,则说明其在不确定事务数据库中出现了3次,则其支持度计数为3。而1项集{1}的周期列表为{2,1,1,1},则1项集{1}的项集周期则为周期列表中的最大值2。

对于1项集{2}来说,其事务序列中包含2个事务,则说明其在不确定事务数据库中出现了2次,则其支持度计数为2。而1项集{2}的周期列表为{1,1,4},则1项集{2}的项集周期则为周期列表中的最大值4。

根据表1提供的不确定事务数据库d,分别获取各1项集的事务序列以及对应的支持度计数和项集周期,结果如下表2所示。

表2

1013、确定项集参数满足预设参数条件的1项集为频繁1项集,并基于动态规划方式计算频繁1项集的周期性频繁概率。

根据上述获取到的各1项集对应的支持度计数和项集周期,进一步判断各1项集对应的支持度计数和项集周期是否满足预设参数条件。若满足,则确定该1项集为频繁1项集。

具体地,判断各1项集对应的支持度计数和项集周期是否满足预设参数条件,主要包括如下步骤:

判断1项集的支持度计数是否大于等于预设最小支持度阈值;

若是,则判断1项集的项集周期是否小于等于预设最大周期阈值;

若是,则确定1项集为项集参数满足预设参数条件的频繁1项集。

在上述判断过程中,最小支持度阈值minsup和最大周期阈值maxgap均为用户根据实际情况预设的。根据最小支持度阈值minsup和最大周期阈值maxgap的约束,对所有1项集进行筛选,先判断1项集的支持度计数是否大于等于预设最小支持度阈值minsup,则再判断该1项集的项集周期是否小于等于预设最大周期阈值maxgap,同时满足这两个条件时,确定该1项集为满足预设参数条件的频繁1项集。

例如,针对上述不确定事务数据库d,将最小支持度阈值minsup预设为2,将最大周期阈值maxgap为3。根据表2,可知1项集{2}的项集周期不满足条件,1项集{4}和1项集{5}的支持度计数和周期都不满足条件,因此只有{1}和{3}这两个1项集同时满足条件,可能符合周期性频繁概率条件,则确定1项集{1}和1项集{3}为满足预设参数条件的频繁1项集。

从各个1项集中筛选出满足预设参数条件的频繁1项集后,需要进一步基于动态规划方式计算各个频繁1项集的周期性频繁概率。

具体地,根据动态规划的思想,本实施例中的方法将不确定事务数据库分为多个小序列,递推计算每个序列的周期性频繁概率,通过最大周期阈值判定方法的定义可以得出项集在每一小序列上的周期性频繁概率只与项集的当前的支持度计数与最大允许间隔有关,因此本实施例通过如下公式计算频繁1项集的周期性频繁概率:

其中,fp(x,tindex,pr,sup)为频繁1项集x的周期性频繁概率,tidlist为频繁1项集x的事务序列,plist为频繁1项集x的事务序列中包含的事务对应的概率,tindex为频繁1项集x的事务序列中包含的事务在事务序列中的编号,k为频繁1项集x的事务序列中包含的事务的数量,pr为频繁1项集x满足周期性频繁概率条件时允许的下一次项集发生的最大间隔,sup为频繁1项集x的支持度计数,maxgap为最大周期阈值,minsup为最小支持度阈值,mulsum为频繁1项集x的事务序列中从最后一项开始向前累计后得到的各事务对应概率的累乘值的列表。

上式中,采用动态规划的算法来进行周期性频繁概率fp的计算,需要从后向前递推计算。下面将对其计算原理进行详细说明:

对于不确定数据库d中的项集x,假设事务tg为包含项集x的事务,且项集x[0,tgi]上满足周期性条件,那么项集x在排在tgi后的事务中是否满足周期性频繁条件与项集x在[0,tgi]中的分布情况无关,只与以下两个值相关:项集x在[0,tgi]区间内发生的次数,即项集x在tgi处的支持度计数sup;项集x在区间[0,tgi]内最后一次出现的位置与tgi的距离。根据这个性质,可以假定一个新的周期性频繁概率fp(x,tindex,pr,sup)。这个概率被定义为在区间[tidlist[tindex],n]内,n为不确定事务数据库d中包含的事务数量,项集x满足以下条件的概率:

(1)项集x在区间[tidlist[tindex],n]内满足周期性条件;

(2)项集x在区间[tidlist[tindex],n]内第一次出现的时间小于等于tidlist[tindex]+pr。

(3)项集x在区间[tidlist[tindex],n]内出现的次数大于等于(minsup-sup)。

这个概率值在tindex=tidlist.len()-1的时候将会取得边界值,其中tidlist.len()为tidlist中包含的事务数量。对于任何tindex<tidlist.len()-1的情况,该值都可以通过tindex+1的情况得出。参照图2所示,对于计算fp(x,tindex,pr,sup)主要分成两种情况:

(1)假设项集x在tidlist[tindex]处出现,则fp的值为plist[tindex]×fp(x,tindex+1,maxgap-(tidlist[tindex+1]-tidlist[tindex])+1,sup+1)。

(2)如果项集x在tidlist[tindex]处不出现,则fp的值为(1-plist[tindex])×fp(x,tindex+1,pr-(tidlist[tindex+1]-tidlist[tindex]),sup)。

该迭代过程还有一个特例,即如果对于某个tindex,只有之后所有的事务都发生,才能使该项集x的事务序列满足最小支持度计数的条件minsup,即项集x满足最小支持度计数的条件minsup。则可以直接认定后续的事务序列,只存在全部发生这一种可能性,并根据项集x的事务序列中从最后一项开始向前累计后得到的各事务对应概率的累乘值的列表直接得到结果。

接下来,将以计算频繁1项集{1}的周期性频繁概率为例,详细介绍上述计算过程。

采用动态规划计算周期性频繁概率fp时,需要从后向前递推计算,在此例中,根据表2,项集{1}的事务序列中包含的事务在事务序列中的编号为[0,1,2],项集{1}的事务序列中包含的事务的数量k为3,不确定事务数据库d中包含的事务数量n为5,项集{1}的事务序列中包含的事务对应的概率plist为[0.8,0.7,0.4],项集{1}的事务序列中从最后一项开始向前累计后得到的各事务对应概率的累乘mulsum为[0.224,0.28,0.4]。

先初始化tindex=2时的各种情况下的概率,主要由不同支持度计数sup和不同允许间隔pr组成的不同情况。初始化的方法如下所示:

如果项集此时的sup小于minsup-1,则无论项集{1}在tindex=2是否发生都无法满足频繁项集的约束,此时项集{1}的fp为0。在此对应为sup=0的所有情况;

如果项集此时的sup等于minsup-1,则无论pr的值为多少,此时项集的fp值为对应的mulsum[tindex]的数值,因为此时只有项集在tindex处发生才能保证项集满足频繁项集的条件。此处对应为sup=1的所有情况;

当项集此时的sup大于等于minsup时,需要考虑当前的pr:当(n-tidlist[tindex])≤pr-(tidlist[tindex]-tidlist[tindex-1])时,n为不确定事务数据库d中包含的事务数量,这代表此时项集允许的最大间隔大于项集的最后一个间隔,这时无论项集在tindex处发不发生都不影响项集已经是一个周期频繁项集,因此此时项集的fp可以为1,在此对应为sup=2,pr=3的情况;当(n-tidlist[tindex])>pr-(tidlist[tindex]-tidlist[tindex-1])时,则项集在tindex处也必须发生才能满足周期性项集的约束,对应的fp也为mulsum[tindex]的值,在此对应为sup=2,pr=1或sup=2,pr=2的情况。

通过以上的初始化方法,对项集{1}初始化的结果如表3所示,之后可以根据表3的值向前推导。

表3

得到tindex=2在各种情况下的fp值后,便可以根据公式来计算tindex=1时的值,例如计算tindex=1,sup=0,pr=1时的fp(1,1,0)=0.7×fp(2,3-(tidlist[2]-tidlist[1]),1)+(1-0.7)×fp(2,1-(tidlist[2]-tidlist[1]),0)=0.7×0.4+0=0.28。以此类推,计算tindex=1的所有情况的fp值,再根据tindex=1的fp值计算tindex=0的fp值,得到的结果如下表4所示。

表4

根据表4,频繁1项集{1}的周期性频繁概率为fp(0,maxgap-tidlist[0],0)=0.712。采用同样的方式,计算频繁1项集{3}的周期性频繁概率为0.788。

1014、确定周期性频繁概率满足预设概率条件的频繁1项集为满足预设周期性频繁概率条件的周期性频繁1项集。

根据上述计算出的各频繁1项集的周期性频繁概率,进一步判断周期性频繁概率是否满足预设周期性频繁概率条件。如满足,则确定该频繁1项集为周期性频繁1项集。

具体地,判断各频繁1项集的周期性频繁概率是否满足预设周期性频繁概率条件,主要包括如下步骤:

判断频繁1项集的周期性频繁概率大于等于预设最小周期频繁概率阈值;

若是,则确定频繁1项集为满足预设周期性频繁概率条件的周期性频繁1项集。

在上述判断过程中,最小周期频繁概率阈值pft是用户根据实际情况预设的。根据最小周期频繁概率阈值pft,对所有频繁1项集进行筛选,从中选出满足条件的周期性频繁1项集。

例如,针对上述不确定事务数据库d,将最小周期频繁概率阈值pft预设为0.5。根据上述计算出的频繁1项集{1}的周期性频繁概率为0.712,而频繁1项集{3}的周期性频繁概率为0.788,两者均大于预设的最小周期频繁概率阈值0.5,所以频繁1项集{1}和频繁1项集{3}均是周期性频繁1项集。

在步骤102中,根据深度优先遍历方法,对上述获取到的周期性频繁1项集进行扩展,得到多个n项集,并判断扩展得到的多个n项集是否为周期性频繁n项集,其中n为小于等于周期性频繁1项集总数的自然数。

优选地,在一种可能的实现方式中,步骤102可具体按照如下步骤实施:

1021、根据周期性频繁1项集,按顺序依次添加排在周期性频繁1项集后面的其余周期性频繁1项集中包含的元素,生成多个2项集。

由于周期性频繁项集具有以下性质:

(1)一个周期性频繁项集的非空子集一定也是周期性频繁项集。因此,所有尝试与周期性频繁1项集组合的新元素一定来自于周期性频繁1项集。

(2)所有新元素的排列顺序都需要大于周期性频繁1项集中包含的元素的最大排序。即,对于项集{ei1,ei2...ein},新元素的排序必须大于ein,这样可以保证不生成重复的项集。

因此,在对周期性频繁1项集进行扩展的过程中,先按顺序依次添加排在周期性频繁1项集后面的其余周期性频繁1项集中包含的元素,生成多个2项集。

例如,上述不确定事务数据库d中,其包含的元素的排列顺序为1、2、3、4、5,得到的周期性频繁1项集为{1}和{3}。按照排列顺序,先选择周期性频繁1项集{1}进行扩展,向其添加排在其后面的其余周期性频繁1项集中包含的元素,即向周期性频繁1项集{1}中添加新元素3,生成新的2项集{1,3}。然后再选择周期性频繁1项集{3}进行扩展,由于元素3后面已无新元素可以添加,因此周期性频繁1项集{3}没有扩展的2项集。

1022、获取各2项集的事务序列以及对应的项集参数,项集参数包括支持度计数和项集周期。

根据上述生成的各2项集,对应将包含该2项集的事务按顺序存储到该2项集的事务序列tidlist中,再根据该2项集的事务序列tidlist计算每个2项集在初始状态时的支持度计数sup和项集周期per,从而得到所有2项集的事务序列以及对应的项集参数。

例如,由周期性频繁1项集{1}扩展得到的2项集{1,3},在不确定事务数据库d中包含该2项集{1,3}的事务有t1和t2,那么2项集{1,3}的事务序列为[t1,t2]。对于该2项集{1,3}来说,其支持度计数为2,项集周期为3,具体如下表5所示。

表5

1023、确定项集参数满足预设参数条件的2项集为频繁2项集,并基于动态规划方式计算频繁2项集的周期性频繁概率。

根据上述获取到的各2项集对应的支持度计数和项集周期,进一步判断各2项集对应的支持度计数和项集周期是否满足预设参数条件。若满足,则确定该2项集为频繁2项集。

具体地,判断各2项集对应的支持度计数和项集周期是否满足预设参数条件,主要包括如下步骤:

判断2项集的支持度计数是否大于等于预设最小支持度阈值;

若是,则判断2项集的项集周期是否小于等于预设最大周期阈值;

若是,则确定2项集为项集参数满足预设参数条件的频繁2项集。

上述判断过程与前述步骤1013中判断各1项集对应的支持度计数和项集周期是否满足预设参数条件的过程类似,具体过程可参照前述说明,在此不再赘述。

例如,根据表5,可知2项集{1,3}的支持度计数和周期均满足条件,可能符合周期性频繁概率条件,则确定2项集{1,3}为满足预设参数条件的频繁2项集。

同样地,从各个2项集中筛选出满足预设参数条件的频繁2项集后,需要进一步基于动态规划方式计算各个频繁2项集的周期性频繁概率。

其具体的计算过程与前述步骤1013中计算频繁1项集的周期性频繁概率的过程类似,具体过程可参照前述说明,在此不再赘述。

例如,最终计算出频繁2项集{1,3}的周期性频繁概率为0.56。

1024、确定周期性频繁概率满足预设概率条件的频繁2项集为满足预设周期性频繁概率条件的周期性频繁2项集。

根据上述计算出的各频繁2项集的周期性频繁概率,进一步判断周期性频繁概率是否满足预设周期性频繁概率条件。如满足,则确定该频繁2项集为周期性频繁2项集。

具体地,判断各频繁2项集的周期性频繁概率是否满足预设周期性频繁概率条件,主要包括如下步骤:

判断频繁2项集的周期性频繁概率大于等于预设最小周期频繁概率阈值;

若是,则确定频繁2项集为满足预设周期性频繁概率条件的周期性频繁2项集。

在上述判断过程中,最小周期频繁概率阈值pft是用户根据实际情况预设的。根据最小周期频繁概率阈值pft,对所有频繁2项集进行筛选,从中选出满足条件的周期性频繁2项集。

例如,根据上述计算出的频繁2项集{1,3}的周期性频繁概率为0.56,该频繁2项集{1,3}的周期性频繁概率大于预设的最小周期频繁概率阈值0.5,所以频繁2项集{1,3}是周期性频繁2项集。

1025、以此类推,重复执行步骤1021~1024,直至获取所有满足预设周期性频繁概率条件的周期性频繁n项集,n为小于等于所述周期性频繁1项集总数的自然数。

以此类推,重复执行上述步骤,递归的调用同样的流程进行项集生长,依次生成3项集、4项集、……、n项集,并分别从中筛选出所有满足预设周期性频繁概率条件的周期性频繁3项集、周期性频繁3项集、……、周期性频繁n项集。直到执行n次,即将所有的周期性频繁1项集中包括的元素遍历完,无法得到更多新项集为止,则该过程结束。

例如,根据上述得到的周期性频繁2项集{1,3},进一步向其中添加新元素以生成新的3项集。然而,元素3之后并无新的元素可以添加,无法得到更多新项集,结束对周期性频繁1项集{1}和周期性频繁1项集{3}的扩展,则该过程结束。

最终,上述挖掘过程得到1个周期性频繁2项集{1,3}。

在步骤103中,根据步骤101中获取的周期性频繁1项集和步骤102中获取的周期性频繁n项集,最终将这些项集确定为从不确定事务数据库中挖掘出的周期性频繁项集,挖掘过程结束。

例如,根据表1中示出的不确定事务数据库d,在步骤101中获取到两个周期性频繁1项集{1}和{3},在步骤102中获取到一个周期性频繁2项集{1,3},则周期性频繁1项集{1}和{3}以及周期性频繁2项集{1,3}即为从该不确定事务数据库d中挖掘出的所有周期性频繁项集。

综上所述,本发明实施例提供的不确定周期性频繁项集挖掘方法,针对不确定事务数据库进行频繁模式挖掘时,在基于支持度计数算法的基础上添加了周期性约束条件,保证了频繁概率的准确性,能够有效满足挖掘需求;同时,采用动态规划技术有效减少了周期性约束条件的计算量,提高了算法的效率,能够在不确定事务数据库上快速高效地挖掘周期性频繁项集。

需要说明的是,对于上述方法的实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。

参照图3所示,基于同一发明构思,本发明实施例提供一种不确定周期性频繁项集挖掘装置,该装置主要包括:

第一获取单元31,用于对不确定事务数据库进行扫描,生成所述不确定事务数据库包括的各元素对应的1项集,并获取满足预设周期性频繁概率条件的周期性频繁1项集;

第二获取单元32,用于根据深度优先遍历方法,对所述周期性频繁1项集进行扩展,逐层生成多个n项集,并获取满足预设周期性频繁概率条件的周期性频繁n项集,n为小于等于所述周期性频繁1项集总数的自然数;

确定单元33,用于根据所述周期性频繁1项集和所述周期性频繁n项集,确定从所述不确定事务数据库中挖掘出的周期性频繁项集。

优选地,第一获取单元31具体用于:

对所述不确定事务数据库进行扫描,生成所述不确定事务数据库包括的各元素对应的1项集;

获取各所述1项集的事务序列以及对应的项集参数,所述项集参数包括支持度计数和项集周期;

确定项集参数满足预设参数条件的1项集为频繁1项集,并基于动态规划方式计算所述频繁1项集的周期性频繁概率;

确定周期性频繁概率满足预设概率条件的频繁1项集为满足预设周期性频繁概率条件的周期性频繁1项集。

优选地,第一获取单元31还具体用于:

判断所述1项集的支持度计数是否大于等于预设最小支持度阈值;

若是,则判断所述1项集的项集周期是否小于等于预设最大周期阈值;

若是,则确定所述1项集为项集参数满足预设参数条件的频繁1项集。

优选地,通过如下公式计算所述频繁1项集的周期性频繁概率:

其中,fp(x,tindex,pr,sup)为频繁1项集x的周期性频繁概率,tidlist为频繁1项集x的事务序列,plist为频繁1项集x的事务序列中包含的事务对应的概率,tindex为频繁1项集x的事务序列中包含的事务在事务序列中的编号,k为频繁1项集x的事务序列中包含的事务的数量,pr为频繁1项集x满足周期性频繁概率条件时允许的下一次项集发生的最大间隔,sup为频繁1项集x的支持度计数,maxgap为最大周期阈值,minsup为最小支持度阈值,mulsum为频繁1项集x的事务序列中从最后一项开始向前累计后得到的各事务对应概率的累乘值的列表。

优选地,第一获取单元31还具体用于:

判断所述频繁1项集的周期性频繁概率大于等于预设最小周期频繁概率阈值;

若是,则确定所述频繁1项集为满足预设周期性频繁概率条件的周期性频繁1项集。

优选地,第二获取单元32具体用于:

根据所述周期性频繁1项集,按顺序依次添加排在所述周期性频繁1项集后面的其余周期性频繁1项集中包含的元素,生成多个2项集;

获取各所述2项集的事务序列以及对应的项集参数,所述项集参数包括支持度计数和项集周期;

确定项集参数满足预设参数条件的2项集为频繁2项集,并基于动态规划方式计算所述频繁2项集的周期性频繁概率;

确定周期性频繁概率满足预设概率条件的频繁2项集为满足预设周期性频繁概率条件的周期性频繁2项集;

以此类推,直至获取所有满足预设周期性频繁概率条件的周期性频繁n项集,n为小于等于所述周期性频繁1项集总数的自然数。

优选地,第二获取单元32还具体用于:

判断所述2项集的支持度计数是否大于等于预设最小支持度阈值;

若是,则判断所述2项集的项集周期是否小于等于预设最大周期阈值;

若是,则确定所述2项集为项集参数满足预设参数条件的频繁2项集。

优选地,第二获取单元32还具体用于:

判断所述频繁2项集的周期性频繁概率大于等于预设最小周期频繁概率阈值;

若是,则确定所述频繁2项集为满足预设周期性频繁概率条件的周期性频繁2项集。

综上所述,本发明实施例提供的不确定周期性频繁项集挖掘装置,针对不确定事务数据库进行频繁模式挖掘时,在基于支持度计数算法的基础上添加了周期性约束条件,保证了频繁概率的准确性,能够有效满足挖掘需求;同时,采用动态规划技术有效减少了周期性约束条件的计算量,提高了算法的效率,能够在不确定事务数据库上快速高效地挖掘周期性频繁项集。

需要说明的是,本发明实施例提供的不确定周期性频繁项集挖掘装置与前述实施例所述的不确定周期性频繁项集挖掘方法属于相同的技术构思,其具体实施过程可参照前述实施例中对方法步骤的说明,在此不再赘述。

应当理解,以上一种不确定周期性频繁项集挖掘装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种不确定周期性频繁项集挖掘装置所实现的功能与上述实施例提供的一种不确定周期性频繁项集挖掘方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。

参照图4所示,基于同一发明构思,本发明实施例提供一种计算设备,该计算设备主要包括处理器41和存储器42,其中存储器42内存储有执行指令。该处理器41读取存储器42内的执行指令用于执行上述不确定周期性频繁项集挖掘方法任一个实施例中所述的步骤。或者,该处理器41读取存储器42内的执行指令用于实现上述不确定周期性频繁项集挖掘装置任一个实施例中各单元的功能。

图4为本发明实施例提供的计算设备的一种结构示意图,如图4所示,该计算设备包括处理器41、存储器42和收发器43;其中,处理器41、存储器42和收发器43通过总线44相互连接。

存储器42用于存储程序;具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器42可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,简称ram);存储器42也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,简称hdd)或固态硬盘(solid-statedrive,简称ssd);存储器42还可以包括上述种类的存储器的组合。

存储器42存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:

操作指令:包括各种操作指令,用于实现各种操作。

操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

总线44可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

处理器41可以是中央处理器(centralprocessingunit,简称cpu),网络处理器(networkprocessor,简称np)或者cpu和np的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,简称asic),可编程逻辑器件(programmablelogicdevice,简称pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,简称cpld),现场可编程逻辑门阵列(fieldprogrammablegatearray,简称fpga),通用阵列逻辑(genericarraylogic,简称gal)或其任意组合。

本发明实施例还提供一种计算机可读存储介质,包含计算机执行指令,所述计算机执行指令被用于执行上述不确定周期性频繁项集挖掘方法任一个实施例中所述的步骤,例如图1所示的步骤101至103。或者,所述计算机执行指令被用于执行上述不确定周期性频繁项集挖掘装置实施例中各单元的功能,例如图3所示单元31至32的功能。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1