一种基于大数据平台的频繁模式挖掘方法与流程

文档序号:14774191发布日期:2018-06-23 02:35阅读:280来源:国知局
一种基于大数据平台的频繁模式挖掘方法与流程

本发明涉及智能化信息处理领域。本发明设及一种能从海量数据中发现满足用户需求的频繁模式挖掘方法,特别适用于智能化推荐系统、网络信息检索、文本挖掘以及知识发现等领域。



背景技术:

随着互联网时代的不断迈进,数字信息化技术也在不断地提高,以数据库及数据仓库等数据存储技术为核心的信息化处理方案在各行各业得到广泛应用。随之而来的便是激增的数据量,这些庞大的数据背后暗含着许多有价值的信息。如何从中获取到具有实用性的有效信息和知识,以便更好的利用这些数据创造更多的价值,这便是大数据时代带来的机遇与挑战,数据挖掘技术正是在此背景下应运而生。

数据挖掘作为一项处理分析数据的技术,便是在大量数据中分析、计算、识别出有效的、有用的、具有潜在价值的信息或知识。数据挖掘,同时又被称作数据库中的知识发现,按照其挖掘的任务可分为关联规则、聚类、分类、时间序列预测模型等。其中,关联规则是用来描述事务记录中不同数据元素之间存在的内在相关性关系,其核心任务便是频繁模式的挖掘。

然而,在已有的众多频繁模式挖掘成果中,大多都是采用单一的搜索策略或是单一的数据格式,虽然现有的技术在处理某些特定数据时已经有了相当不错的效果,但当面对更加复杂且规模更大的数据时,或多或少的会出现效率低下或是可伸缩性差等问题,从而衍生了时间浪费、能源浪费等问题。



技术实现要素:

针对现有技术中的缺陷,本发明提供了一种基于大数据平台的频繁模式挖掘方法基于大数据平台,采用混合的搜索策略和数据格式,并结合高效的剪枝方案实现并行化挖掘频繁模式,从而解决效率和伸缩性等问题。

一种基于大数据平台的频繁模式挖掘方法,根据事务数据库D、用户设置的最小支持度𝜎,快速地从D中发掘出频繁度不低于𝜎的模式,主要包括以下步骤:

(1)数据输入;

(2)统计频繁1-项集和2-项集;

(3)估算最大内存上限值SMUB,对搜索策略进行划分;

(4)混合挖掘;

(5) 数据输出;

其中所述步骤(2)和(4)中的宽度挖掘阶段的垂直数据格式采用混合数据格式,并采用基于快速失败机制的交叉计算优化方案提高计算速率,同时采用基于有序搜索树的快速剪枝方案避免资源浪费问题;所述步骤(3)中对搜索策略进行了划分,从单一搜索策略转入混合搜索,在所述步骤(4)中按照混合搜索策略执行混合挖掘任务,所述步骤(4)中进行混合挖掘时对宽度挖掘进行有效的缓存机制来降低中间输出量,同时对于深度挖掘采用均衡分组方案实现整个系统的负载均衡。

所述的混合搜索通过在挖掘过程中伺机选择搜索策略,通过宽度搜索的逐层搜索方式,减少数据维度,使部分共享一个父节点的项集可以转入深度挖掘,从而减少宽度搜索的层数,降低了宽度搜索挖掘时的I/O开销,解决深度搜索挖掘时的内存限制;具体步骤如下:

2.1、扫描事务数据库D第一遍,使用垂直数据格式保存每个频繁1-项集的信息,同时对其按照支持度的升序排序后得到一阶频繁模式的有序序列F,并输出;

2.2、通过对频繁1-项集的交集操作计算出频繁2-项集,在生成2-项集后,通过估算具有相同前缀的所有2-项集在一起做深度搜索挖掘可能需要的内存来判断这些2-项集是否适合转入深度挖掘,如果所需内存高于设定的阈值,则将继续宽度搜索;否则将会转入深度搜索;

2.3、对具有相同k阶前缀模式X的所有(k+1)阶模式组成的集合,称其为父节点为X的一组sibling,记为sibling({X}),

判断能否进行深度搜索是通过估算每组sibling在执行深度挖掘时可能所需的最大内存上限值SMUB,对于一组以k阶模式X为前缀的sibling({X})集合,按照公式1计算其做深度挖掘的内存上限值,

其中n表示该sibling中包含的模式个数,l表示模式个数,p表示一个项目在内存中所占的字节数,q为其所有模式对应的垂直数据格式所含元素之和。

所述的混合垂直数据格式是利用不同垂直数据格式之间的交集与差集的运算特点来保证垂直数据格式始终保持最小状态,降低内存消耗,同时利用基于快速失败机制的交叉计算优化方案来提高计算效率,在执行混合挖掘中由宽度搜索转换为深度搜索时,进行垂直数据格式到水平数据格式的转换操作,具体步骤如下:

3.1、在宽度搜索挖掘阶段时产生的模式及其垂直数据格式采用混合垂直数据格式mixset表示,其中mixset是对现有成果中的垂直数据格式tidset和diffset的最优选择,保证了每次生成的新的模式对应的垂直数据格式都是最小状态,降低了系统的内存消耗;

3.2、在通过两个垂直数据格式mixset,其大小分别为m和n, mixset的交集或是差集计算一个新的模式的垂直数据格式时,所需的时间复杂度为O(m+n),在计算过程中设置失败阈值来预测计算结果是否为所需的频繁模式,从而减少不必要的垃圾运算;

3.3、执行混合搜索策略中,从宽度搜索转换为深度搜索时,数据格式也应该从垂直数据格式转换为水平数据格式,进入在深度挖掘阶段,利用水平数据格式构建局部子数据库,进行快速的深度挖掘。

所述的快速剪枝方案是通过构建一棵有序搜索树,并同时采用完全剪枝技术与根据非频繁模式进行不完全地剪枝技术相结合进行剪枝,具体步骤如下:

4.1、将频繁(k-1)-项集压缩在一棵有序的搜索树中,因项集中各元素是有序的,且建树是同样按照该顺序进行插入节点,保证了这棵树始终是有序的,最后对候选k-项集在这棵树上进行遍历,寻找其对应的子集与该树的子路径的关系来判断该候选项集是否需要被剪枝;

4.2、对于频繁(k-1)-项集全部是由宽度挖掘得到的情况,在对候选k-项集进行剪枝时采用完全剪枝技术,此时有序搜索树中保存的是所有频繁(k-1)-项集,故只有在有序搜索树中找到了该候选项集的所有子集,才能保留次候选模式,否则剔除;

4.3、对于频繁(k-1)-项集是由混合挖掘阶段的宽度挖掘得到的情况,在对候选k-项集进行剪枝时采用根据非频繁模式进行不完全剪枝技术,此时有序搜索树中保存的是部分非频繁(k-1)-项集,只要在有序搜索树中找到了该候选项集的任一子集,就将其剔除,否则保留。

所述的基于大数据平台采用有效的缓存机制和均衡分组方案,具体步骤如下:

在宽度搜索阶段,通过合理的设置缓存,降低大数据集群平台各节点之间的通信量以及各节点的I/O开销,在深度搜索阶段,对分发到各节点的数据进行均衡分组,实现集群中各节点之间的负载均衡。

附图说明

图1 是一种基于大数据平台的频繁模式挖掘方法的工作流程图;

图2 是事务记录数据库D;

图3 是频繁1-项集的三种垂直数据格式tidset、diffset以及mixset;

图4 是频繁2-项集及其垂直数据格式mixset;

图5 是宽度挖掘时的频繁模式树;

图6 是深度挖掘时的实例流程图。

具体实施方式

下面结合附图对本发明具体实施方案做进一步地阐述。

一种基于大数据平台的频繁模式挖掘方法,根据事务数据库D、用户设置的最小支持度𝜎,快速地从D中发掘出频繁度不低于𝜎的模式,参见图1,其主要包括以下步骤:

(1)数据输入;

(2)统计频繁1-项集和2-项集;

(3)估算SMUB(最大内存上限值),对搜索策略进行划分;

(4)混合挖掘;

(5) 数据输出。

所述步骤(3)对搜索策略进行了划分,从单一搜索策略转入混合搜索,在所述步骤(4)中按照混合搜索策略执行混合挖掘任务。所述步骤(2)和(4)中的宽度挖掘阶段的垂直数据格式采用混合数据格式,并采用基于快速失败机制的交叉计算优化方案提高计算速率。同时采用基于有序搜索树的快速剪枝方案避免资源浪费问题。所示步骤(4)中进行混合挖掘时对宽度挖掘进行有效的缓存机制来降低中间输出量,同时对于深度挖掘采用均衡分组方案实现整个系统的负载均衡。

给定图2所示的事务记录数据库D和最小支持度阈值𝜎=3,具体过程如下:

本发明的混合垂直数据格式是充分利用不同垂直数据格式之间的交集与差集的运算特点来保证垂直数据格式始终保持最小状态,降低内存消耗。同时利用基于快速失败机制的交叉计算优化方案来提高计算效率。

1.1、首先扫描事务记录数据库D,统计出频繁1-项集及其垂直数据格式,参见图3所示的为各频繁1-项集的垂直数据格式,其中mixset是从tidset和diffset中伺机选择最优的数据格式。同时对频繁1-项集按照支持度的升序排序后得到一阶频繁模式的有序序列F,并输出。

1.2、根据实施步骤1中得出的频繁1-项集及其垂直数据格式mixset,通过两两相交(join)操作构造出频繁2-项集及其mixset,参见图4所示。其中某些项集的mixset为空,表示其相对其前缀模式的交集或差集为空。

在记录mixset数据结构时,当mixset用diffset表示时会设定一个值n来表示该模式前缀的支持度大小(如果X为1-项集,则n就等于原始数据库的事务记录的条数,如数据库D,原始n=5)。

对具有相同k阶前缀模式X的所有(k+1)阶模式组成的集合,我们称其为父节点为X的一组sibling,记为sibling({X})。

本发明采用的混合搜索策略通过在挖掘过程中伺机选择搜索策略,通过宽度搜索的逐层搜索方式,减少数据维度,使部分共享一个父节点的项集可以转入深度挖掘,而这样做又可以使宽度搜索的层数减少,既降低了宽度搜索挖掘时的I/O开销,又解决了深度搜索挖掘时的内存限制。

2.1、将实施步骤2得到的频繁2-项集进行估算其内存,根据公式1计算频繁2-项集中的每组sibling的SMUB,

从图4中可以看出,其中项集{ae}和{ef}因只有一个模式,无法在构成新的三阶模式,所以不需要再进行挖掘。剩下的存在两组sibling,分别为sibling(c)={cd, ce, cf}和sibling(d)={de, df},且经过执行公式1计算后得到它们的SUMB分别为128字节和68字节。最后根据设定的最大内存阈值参数,若SUMB大于该参数,则该sibling将进行宽度搜索挖掘,否则将转入深度搜索挖掘。

本发明采用的剪枝方案是通过构建一棵有序搜索树,并同时采用完全剪枝技术与根据非频繁模式进行不完全地剪枝技术相结合进行剪枝。

将实施步骤2.1中得到的频繁k-项集(k=2,3,4…)压缩在一棵有序的搜索树中,因项集中各元素是有序的,且建树是同样按照该顺序进行插入节点,保证了这棵树始终是有序的。最后对候选(k+1)-项集在这棵树上进行遍历,寻找其对应的子集与该树的子路径的关系来判断该候选项集是否需要被剪枝。

对于频繁k-项集全部是由宽度挖掘得到的情况,在对候选(k+1)-项集进行剪枝时采用完全剪枝技术,此时有序搜索树中保存的是所有频繁k-项集。故只有在有序搜索树中找到了该候选项集的所有子集,才能保留次候选模式,否则剔除。

对于频繁k-项集是由混合挖掘阶段的宽度挖掘得到的情况,在对候选(k+1)-项集进行剪枝时采用根据非频繁模式进行不完全剪枝技术,此时有序搜索树中保存的是部分非频繁k-项集。因此只要在有序搜索树中找到了该候选项集的任一子集,就可将其否则剔除,否则保留。

本发明基于大数据平台采用有效的缓存机制和均衡分组方案。

根据实施步骤2中划分的结果,进行混合挖掘,根据设置的最大内存阈值参数不同,分为三种情况:全部为宽度挖掘、全部深度挖掘以及混合挖掘。

3.1、全为宽度挖掘的情况,在宽度搜索阶段,通过合理的设置缓存,降低大数据集群平台各节点之间的通信量以及各节点的I/O开销。例如,当最大内存阈值参数为50字节,则根据实施例步骤3计算的两组sibling的SMUB均大于该值,则全部进入宽度挖掘。参见图5为宽度挖掘的搜索路径,沿着水平方向逐层挖掘。

3.2、全为深度挖掘的情况,在深度搜索阶段,对分发到各节点的数据进行均衡分组,实现集群中各节点之间的负载均衡。例如,当最大内存阈值参数为200字节,则根据实施例步骤3计算的两组sibling的SMUB均小于该值,则全部进入深度挖掘。参见图6为深度挖掘时的流程图,首先将适合深度挖掘的sibling的垂直数据格式转换为水平数据格式,构建局部子数据库且其中每条事务记录按其元素的支持度降序排列,接着再根据该子数据库构建PPC-tree,最后通过遍历PPC-tree得到每个模式的Nodeset,最后在通过交集运算挖掘出所有频繁模式。

3.3、混合挖掘的情况,例如,当最大内存阈值参数为100字节,则根据实施例步骤3计算的sibling(c)的SMUB大于该值,将进行宽度挖掘,而sibling(d)的SMUB小于该值,将转为深度挖掘,此时系统进入混合挖掘状态,同时并行执行两种搜索策略的挖掘任务。

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