一种基于KNL集群的近期数据流项集挖掘方法与装置与流程

文档序号:12802734阅读:193来源:国知局
本发明涉及高性能计算领域,尤其涉及一种基于knl集群的近期数据流项集挖掘方法与装置。
背景技术
::数据流实际上就是连续移动的元素队伍,其中的元素是由相关数据的集合组成。令t表示任一时间戳,at表示在该时间戳到达的数据,流数据可以表示成{…,at-1,at,at+1,…}.区别于传统应用模型,流数据模型具有以下4点共性:(1)数据实时到达;(2)数据到达次序独立,不受应用系统所控制;(3)数据规模宏大且不能预知其最大值;(4)数据一经处理,除非特意保存,否则不能被再次取出处理,或者再次提取数据代价昂贵。滑动窗口(slidingwindow)模型:滑动窗口对窗口起点和终点都没有明确给定,只明确给定窗口的长度w1。窗口保持一定长度在数据流d={d0,d1…,dn}上滑动,处理的数据流范围就由该窗口确定,随着窗口的滑动不断地把得到的结果输出。滑动窗口sw的长度既可由一个时间区间确定,也可由窗口所包含数据流元素个数确定;滑动窗口的频繁项集:对于当前滑动窗口内数据,设i={i1,i2,…,in}是项的集合,事务数据集s={s0,s1…,sn},其中,数据集中每个事务s是项的集合,如果则称x是个项集。如果x中有k个元素,则称x为k-项集。对于一个项集x,如果其支持度大于等于用户给定的最小支持度阈值,则x为频繁项集。目前在数据流频繁项挖掘中使用的方法是模式树,会造成空间复杂度过大、用户的操作体验低的技术问题。技术实现要素:本发明实施例提供了一种基于knl集群的近期数据流项集挖掘方法与装置,通过knl集群的嵌套窗口滑动扫描数据流和遗传算法对数据流进行处理,实现对数据流频繁项集的挖掘,解决了目前在数据流频繁项挖掘中使用模式树造成的空间复杂度过大、用户的操作体验低的技术问题。本发明实施例提供了一种基于knl集群的近期数据流项集挖掘方法,包括:随着滑动窗口的滑动扫描所述滑动窗口中的数据流;通过遗传算法处理所述数据流然后挖掘出所述数据流的频繁项集。优选地,在扫描滑动窗口中的数据流之前,还包括:设定滑动窗口的大小为w1。优选地,在随着滑动窗口的滑动扫描所述滑动窗口中的数据流之后,在通过遗传算法处理所述数据流然后挖掘出所述数据流的频繁项集之前还包括:将所述滑动窗口分割为若干个大小为w2的嵌套窗口。优选地,通过遗传算法处理所述数据流然后挖掘出所述数据流的频繁项集具体为:通过并行遗传算法对若干个大小为w2的所述嵌套窗口中的数据流进行第一频繁项集挖掘;对若干个所述嵌套窗口对应的所述第一频繁项集合并扫描获得所述滑动窗口中所述数据流的第二频繁项集。优选地,在对若干个所述嵌套窗口对应的所述第一频繁项集合并扫描获得所述滑动窗口中所述数据流的第二频繁项集之后,还包括:扫描数据流流动后的滑动窗口的新数据流,然后挖掘数据流流动后的嵌套子窗口的第三频繁项集,根据所述第三频繁项集和数据流未流动的嵌套子窗口的第四频繁项集计算数据流流动后的滑动窗口的第五频繁项集。本发明实施例提供了一种基于knl集群的近期数据流项集挖掘装置,包括:扫描单元,用于随着滑动窗口的滑动扫描所述滑动窗口中的数据流;频繁项集挖掘单元,用于通过遗传算法处理所述数据流然后挖掘出所述数据流的频繁项集。优选地,所述近期数据流项集挖掘装置还包括:窗口设定单元,用于设定滑动窗口的大小为w1。优选地,所述近期数据流项集挖掘装置还包括:嵌套窗口确定单元,用于将所述滑动窗口分割为若干个大小为w2的嵌套窗口。优选地,频繁项集挖掘单元包括嵌套窗口频繁项集挖掘子单元和合并子单元:嵌套窗口频繁项集挖掘子单元,用于通过并行遗传算法对若干个大小为w2的所述嵌套窗口中的数据流进行第一频繁项集挖掘;合并子单元,用于对若干个所述嵌套窗口对应的所述第一频繁项集合并扫描获得所述滑动窗口中所述数据流的第二频繁项集。优选地,所述近期数据流项集挖掘装置还包括:频繁项集更新单元,用于扫描数据流流动后的滑动窗口的新数据流,然后挖掘数据流流动后的嵌套子窗口的第三频繁项集,根据所述第三频繁项集和数据流未流动的嵌套子窗口的第四频繁项集计算数据流流动后的滑动窗口的第五频繁项集。从以上技术方案可以看出,本发明实施例具有以下优点:本发明实施例提供了一种基于knl集群的近期数据流项集挖掘方法与装置,通过knl集群的嵌套窗口滑动扫描数据流和遗传算法对数据流进行处理,实现对数据流频繁项集的挖掘,解决了目前在数据流频繁项挖掘中使用模式树造成的空间复杂度过大、用户的操作体验低的技术问题,同时还解决当前服务器计算系统计算网络带宽不足、内存带宽和容量小等情况,能够对较大规模数据进行处理。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1为本发明实施例提供的一种基于knl集群的近期数据流项集挖掘方法的第一实施例的流程示意图;图2为本发明实施例提供的一种基于knl集群的近期数据流项集挖掘方法的第二实施例的流程示意图;图3为本发明实施例提供的一种基于knl集群的近期数据流项集挖掘方法的第一实施例的结构示意图;图4为本发明实施例提供的一种基于knl集群的近期数据流项集挖掘方法的第二实施例的结构示意图;图5为遗传算法流程示意图。具体实施方式本发明实施例提供了一种基于knl集群的近期数据流项集挖掘方法与装置,通过knl集群的嵌套窗口滑动扫描数据流和遗传算法对数据流进行处理,实现对数据流频繁项集的挖掘,解决了目前在数据流频繁项挖掘中使用模式树造成的空间复杂度过大、用户的操作体验低的技术问题。为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例提供的一种基于knl集群的近期数据流项集挖掘方法与装置是基于knl集群实现的,为了便于对本发明的理解,首先对knl集群进行说明:knl集群包括由一台cpu主服务器控制的多台knl以及相应的存储系统,存储系统的节点、knl的节点以及cpu主服务器的节点通过高速网络连接,从而实现各节点间的高速通信;其中,knl是intel第二代mic架构xeonphi融合处理器knightslanding的缩写,是intel首款专门针对高度并行工作负载而设计的可独立自启动的主处理器,并首次实现了内存与高速互连技术的集成,knl提供能够独立自启动的bootable形态,从而消除对pci-e总线的依赖性,实现更高效扩展;每个knl包含72个核心,knl平台每个节点包含16gmcdram内存,其传输速度可以达到400g/s以上,最大支持384g的ddr4内存,相比ddr4的90g/s有非常大的提升,每个核心支持四个线程,knl处理器实现了独立作为主处理器的功能,其在knc的基础上实现了极大的提升,本发明在充分利用knl的硬件的基础上,充分利用mcadram的内存空间,将图片的关键点信息和关键点的梯度等信息开辟内存到mcdram上,以便在特征提取过程中将减少访存cachehit的次数,达到快速访存的目的,实现了数据挖掘的knl众核集群平台的加速;cpu主服务器的控制节点控制knl的计算节点,并对计算节点进行统一调度,实现数据的统一分配,同时实现通信传输与并行计算的异步执行,提高了整体的运行效率,满足了高性能应用的要求;对于knl,两个knl处理器的核心共享一个1m的l2缓存,本发明实施例尽量在loop中使得访存可以控制在l2缓存大小以内,可以快速的完成循环,加快特征提取过程中提取速度,且将每个loop中的访存地址区块化,避免跳跃式访存,实现程序的代码级别优化;在knl集群中,为了充分利用knl的多线程技术,开启openmp多线程并行,从而在最大限度上利用knl计算能力;另一方面在程序运行过程中通过采用分块技术,使得二级缓存可以得到充分的利用,减少由于访存带来的延迟。然后,对数据流进行说明:数据流实际上就是连续移动的元素队伍,其中的元素是由相关数据的集合组成;令t表示任一时间戳,at表示在该时间戳到达的数据,流数据可以表示成{…,at-1,at,at+1,…};区别于传统应用模型,流数据具有以下4点共性:(1)数据实时到达;(2)数据到达次序独立,不受应用系统所控制;(3)数据规模宏大且不能预知其最大值;(4)数据一经处理,除非特意保存,否则不能被再次取出处理,或者再次提取数据代价昂贵;其次,对滑动窗口进行说明:滑动窗口对窗口起点和终点都没有明确给定,只明确给定窗口的长度w1;窗口保持一定长度在数据流d={d0,d1…,dn}上滑动,处理的数据流范围就由该窗口确定,随着窗口的滑动不断地把得到的结果输出;滑动窗口sw的长度既可由一个时间区间确定,也可由窗口所包含数据流元素个数确定;然后再对滑动窗口的频繁项集进行说明:对于当前滑动窗口内数据,设i={i1,i2,…,in}是项的集合,事务数据集s={s0,s1…,sn},其中,数据集中每个事务s是项的集合,如果则称x是个项集;如果x中有k个元素,则称x为k-项集;对于一个项集x,如果其支持度大于等于用户给定的最小支持度阈值,则x为频繁项集;最后对遗传算法进行说明:遗传算法是一种基于随机搜索的优化算法,已成功应用于函数优化、自动控制、生产调度、机器人学、图像处理、人工生命、机器学习和数据挖掘等领域。从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。遗传算法的基本运算过程如下,算法流程示意图如图5所示:a)初始化:设置进化代数计数器t=0,设置最大进化代数t,随机生成m个个体作为初始群体p(0)。b)个体评价:计算群体p(t)中各个个体的适应度。c)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。d)交叉运算:将交叉算子作用于群体。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。遗传算法中起核心作用的就是交叉算子。e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体p(t)经过选择、交叉、变异运算之后得到下一代群体p(t1)。f)终止条件判断:若t=t,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。请参阅图1,本发明实施例提供了一种基于knl集群的近期数据流项集挖掘方法的第一实施例,包括:101,随着滑动窗口的滑动扫描滑动窗口中的数据流;在本发明实施例中,首先需要随着滑动窗口的滑动扫描滑动窗口中的数据流。102,通过遗传算法处理数据流然后挖掘出数据流的频繁项集;在本发明实施例中,在随着滑动窗口的滑动扫描滑动窗口中的数据流之后,还需要通过遗传算法处理数据流然后挖掘出数据流的频繁项集。请参阅图2,本发明实施例提供了一种基于knl集群的近期数据流项集挖掘方法的第二实施例,包括:201,设定滑动窗口的大小为w1;在本发明实施例中,首先需要设定滑动窗口的大小为w1,滑动窗口的大小w1是由数据流的属性决定的。202,随着滑动窗口的滑动扫描滑动窗口中的数据流;在本发明实施例中,在设定滑动窗口的大小为w1之后,还需要随着滑动窗口的滑动扫描滑动窗口中的数据流。203,将滑动窗口分割为若干个大小为w2的嵌套窗口;在本发明实施例中,在随着滑动窗口的滑动扫描滑动窗口中的数据流之后,还需要将滑动窗口分割为若干个大小为w2的嵌套窗口,其中嵌套窗口的大小w2也是由数据流的属性决定的。204,通过并行遗传算法对若干个大小为w2的嵌套窗口中的数据流进行第一频繁项集挖掘;在本发明实施例中,在将滑动窗口分割为若干个大小为w2的嵌套窗口之后,还需要通过并行遗传算法对若干个大小为w2的嵌套窗口中的数据流进行第一频繁项集挖掘,其中若干个嵌套窗口的第一频繁项集挖掘是通过knl的若干个节点并行实现的;需要说明的是,通过并行遗传算法进行第一频繁项集挖掘时,首先要设定一个支持度阈值s,用来挖掘最终的数据流频繁项集,当fi大于等于s时,那么事务i就是滑动窗口中的数据频繁项集;还要确定最大迭代次数t,主要是根据初始化的种群大小和事务中属性多少及其取值范围来决定;在进行遗传算法的迭代计算之前,要初始化种群,因为数据流的动态更新,这样对于嵌套子窗口,获得最新进入的数据,由此得到频繁模式的1-项集,根据编码规则,将频繁1-项集编码成实数串,如果频繁1-项集有非零项,就按原来的位置进行随机组合编码,这样,就一起构成了嵌套子窗口中的初始种群,其中的个体为准备分析确认的频繁模式;迭代计算首先计算嵌套窗口中个体支持度的值,判定个体支持度值是否大于设定的支持度阈值s,如果大于设定的支持度阈值s,就将此个体的频繁模式添加到当前嵌套子窗口的频繁项集内,其中实际每一个事务与初始种群中等待分析的频繁模式是通过公式fi=wi/wz计算匹配的;然后根据计算出的嵌套窗口中个体支持度的值做轮盘选择操作,再根据预先设定的交叉概率p和变异概率q对个体进行交叉造作和基本位变异操作;上述操作是一次遗传算子操作,每进行一次遗传算子操作之后,需要将个体支持度值大于等于s的个体,添加到嵌套子窗口的频繁项集中,到此,完成了遗传算法的一次迭代,本发明实施例需要进行若干次迭代,直到迭代次数大于等于预置的最大迭代次数t迭代停止并获得当前嵌套子窗口内数据的稳定频繁项集,否则要从计算嵌套窗口中个体支持度的值开始继续重新进行下一次迭代计算。205,对若干个嵌套窗口对应的第一频繁项集合并扫描获得滑动窗口中数据流的第二频繁项集;在本发明实施例中,在通过并行遗传算法对若干个大小为w2的嵌套窗口中的数据流进行第一频繁项集挖掘之后,还需要对若干个嵌套窗口对应的第一频繁项集合并扫描获得滑动窗口中数据流的第二频繁项集,并通过判断第二频繁项集的支持度大于预置的支持度阈值s确定第二频繁项集为最终频繁项集。206,扫描数据流流动后的滑动窗口的新数据流,然后挖掘数据流流动后的嵌套子窗口的第三频繁项集,根据第三频繁项集和数据流未流动的嵌套子窗口的第四频繁项集计算数据流流动后的滑动窗口的第五频繁项集;在本发明实施例中,在对若干个嵌套窗口对应的第一频繁项集合并扫描获得滑动窗口中数据流的第二频繁项集之后,还需要扫描数据流流动后的滑动窗口的新数据流,然后挖掘数据流流动后的嵌套子窗口的第三频繁项集,根据第三频繁项集和数据流未流动的嵌套子窗口的第四频繁项集计算数据流流动后的滑动窗口的第五频繁项集,需要说明的是,第四频繁项集是包含在第一频繁项集中的,事实是数据流未流动的嵌套子窗口的第一频繁项集,为了以防混淆,特称其为第一频繁项集。请参阅图3,本发明实施例提供了一种基于knl集群的近期数据流项集挖掘装置的第一实施例,包括:扫描单元301,用于随着滑动窗口的滑动扫描滑动窗口中的数据流;频繁项集挖掘单元302,用于通过遗传算法处理数据流然后挖掘出数据流的频繁项集。请参阅图4,本发明实施例提供了一种基于knl集群的近期数据流项集挖掘装置的第二实施例,包括:窗口设定单元401,用于设定滑动窗口的大小为w1。扫描单元402,用于随着滑动窗口的滑动扫描滑动窗口中的数据流;嵌套窗口确定单元403,用于将滑动窗口分割为若干个大小为w2的嵌套窗口。频繁项集挖掘单元404,用于通过遗传算法处理数据流然后挖掘出数据流的频繁项集。频繁项集挖掘单元404包括嵌套窗口频繁项集挖掘子单元4041和合并子单元4042:嵌套窗口频繁项集挖掘子单元4041,用于通过并行遗传算法对若干个大小为w2的嵌套窗口中的数据流进行第一频繁项集挖掘;合并子单元4042,用于对若干个嵌套窗口对应的第一频繁项集合并扫描获得滑动窗口中数据流的第二频繁项集。频繁项集更新单元405,用于扫描数据流流动后的滑动窗口的新数据流,然后挖掘数据流流动后的嵌套子窗口的第三频繁项集,根据第三频繁项集和数据流未流动的嵌套子窗口的第四频繁项集计算数据流流动后的滑动窗口的第五频繁项集。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1