一种基于GPU的并行时间序列挖掘方法技术

技术编号:10344659 阅读:177 留言:0更新日期:2014-08-21 16:44
本发明专利技术公开了一种基于GPU的并行时间序列挖掘方法,其特征在于,包括以下步骤:扫描输入序列数据库中的记录到CPU的内存缓冲区中;计算长度为1的候选序列以及所述长度为1的候选序列的支持度;计算得到长度为1的频繁序列;计算候选序列信息矩阵和候选事件信息矩阵并拷贝到GPU的显存中,采用CUDA在所述GPU上并行计算长度为2的候选序列以及其支持度,并将结果保存在GPU的显存中;计算得到长度为2的频繁序列;根据输入序列数据库计算得到垂直格式数据库;将长度为1和长度为2的频繁序列和垂直格式数据库拷贝到GPU的显存中,在GPU中并行计算得到其余长度的频繁序列。本发明专利技术能够提高计算效率。

【技术实现步骤摘要】
—种基于GPU的并行时间序列挖掘方法
本专利技术涉及数据库挖掘技术,尤其是涉及一种基于GPU的并行时间序列挖掘方法。
技术介绍
互联网技术的快速发展把我们带进了一个信息大爆炸的时代,大数据已经成为不可逆转的时代潮流。随着数据存储设备成本的不断降低,以及数据采集方式和渠道的多样化,越来越多的公司和组织构建了自己的数据库,用于存储海量的用户数据。然而,数据的快速积累带来了信息超载的问题,企业和用户真正感兴趣的信息被湮没在大量纷繁复杂的数据当中,有用的信息难以被有效的挖掘。数据挖掘技术则被认为是当前解决信息超载问题的有效工具之一。通过对海量数据的分析和挖掘,我们可以从中获取大量有价值的信息,使大数据更好的为人们服务。序列模式挖掘是作为数据挖掘领域的一个重要研究方向,越来越受到研究人员的关注。其目的在于寻找海量数据库中频繁出现的序列模式。序列模式是指数据库中按照一定的次序频繁出现的有序序列。传统的数据挖掘任务仅仅是找出用户可能会购买的物品集合,而不关心这些物品集合之间的次序问题,但序列模式挖掘则把时间信息考虑在内,不仅挖掘出用户购买的物品集合,还要指出这些物品集合在时间上的先后次序。如此以来,我们就可以更加准确的根据用户当前购买的物品预测下一步的购买行为,进而为用户提供一些更具价值的推荐信息,帮助用户更快的找到所需。正是由于序列模式挖掘引入了模式之间的相互次序信息,因此在实践中有着十分重要和广泛的应用。现实生活中的许多科学问题和商业问题都可以转化为寻找具有先后次序的序列问题。在网页实时推荐系统中,通过对网络访问日志中的记录进行序列挖掘,可以确定各个被访问页面之间的时态关系,以及网站的访问者浏览网页的次序,基于这些序列模型,我们可以对网页的布局进行优化,甚至可以给不同的用户提供个性化的访问体验。生物信息学中的基因序列检测、预测序列功能、研究序列之间的相互关系和作用等,均可以通过对DNA序列进行频繁模式挖掘,从而有效的指导基因的识别和功能注释、蛋白质序列组成信息的识别。目前,序列模式挖掘算法主要分为两类,一类是基于候选序列生成及测试的方法,另一类是基于模式增长的方法。基于候选生成及测试的方法利用关联规则挖掘中的Apriori法则,通过迭代的过程,每次把长度为k的频繁序列模式按照既定的合并方式合并成长度为k+Ι的候选序列,然后扫描数据库对候选序列进行支持度计数,支持度大于阈值的候选模式成为频繁k+Ι序列,作为下次迭代的输入,直至搜索到所有的频繁模式则算法终止。基于模式增长的方法在生成频繁序列的过程中,不产生任何的候选序列,均是从构建原始数据库的一种特殊表示开始,对搜索空间进行分割,通过对已有的频繁序列添加频繁后缀来增长序列。然而在大数据时代,无论是企业的数据库还是互联网上的信息,都具有数据量大的特征。对海量数据的序列挖掘过程,不可避免的会产生大量候选序列,通过计算筛选序列的过程必将是十分耗时的,这无疑对于处理器的性能和内存容量都是一个巨大的挑战。而现有的大部分算法均是以串行的方式执行,对于很多实时性要求极高的现实应用问题来讲,执行效率很难满足海量数据处理的需求。由此可见,现有的时间序列挖掘技术还存在着如下问题:在执行海量数据挖掘任务时算法的速度很慢,执行效率低下。所以,实时性和快速性成了时间序列挖掘的关键技术和难点。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于GPU的并行时间序列挖掘方法,以提高挖掘效率。GPU作为当前最新的并行计算平台,具有超高的浮点运算能力,且具有低功耗、扩展性强、价格低廉等特点,作为现代计算机必备的硬件设备,应用十分广泛。充分利用GPU的大规模多线程并行处理能力,加速序列挖掘算法的执行速度,从而使得海量数据的挖掘效率得到大大提升,可以满足众多实际的序列模式挖掘应用对高效率的需求。据此,本专利技术通过下述手段解决前述技术问题:一种基于GPU的并行时间序列挖掘方法,包括以下步骤:步骤101:扫描输入序列数据库中的记录到CPU的内存缓冲区中;步骤102:根据所述序列数据库中的记录,计算长度为I的候选序列以及所述长度为I的候选序列的支持度;步骤103:根据所述长度为I的候选序列的支持度,计算得到长度为I的频繁序列;步骤104:扫描所述输入序列数据库中的记录,计算候选序列信息矩阵和候选事件息矩阵;步骤105:将所述候选序列信息矩阵和候选事件信息矩阵拷贝到GPU的显存中,采用CUDA在所述GPU上并行计算长度为2的候选序列以及所述长度为2的候选序列的支持度,并将结果保存在GPU的显存中;步骤106:将所述长度为2的候选序列和长度为2的候选序列的支持度拷贝到CPU的内存缓冲区中,计算得到长度为2的频繁序列;步骤107:根据所述输入序列数据库计算得到垂直格式数据库;步骤108:将所述长度为I的频繁序列、长度为2的频繁序列和所述垂直格式数据库拷贝到GPU的显存中,在GPU中并行计算得到其余长度的频繁序列。与现有技术相比,本专利技术提供的上述技术方案,采用GPU(英文全称:GraphicProcessing Unit,中文含义:图形处理器)并行优化加速长度大于I的频繁序列的计算过程以及通过垂直数据库计算候选序列支持度的过程,计算过程主要在GPU的显存中利用CUDA(英文全称:Compute Unified Device Architecture,中文含义:计算统一设备架构,系NVIDIA公司开发的用于GPU通用编程的编程模型)技术完成,其计算速度比现有的利用CPU进行计算的速度要快很多,解决了现有技术中计算频繁序列算法速度很慢的问题,提高了时间序列挖掘的效率,实现了快速的时间序列挖掘。【附图说明】图1是本专利技术实施例提供的基于GPU的并行时间序列挖掘方法流程图。图2是本专利技术实施例中输入序列数据库的示意图。图3是本专利技术实施例中的垂直格式数据库示意图。【具体实施方式】下面结合优选的实施方式对本专利技术作进一步说明。如图1所示,本实施例的基于GPU的并行时间序列挖掘方法包括以下步骤:步骤101:扫描输入序列数据库中的记录到CPU的内存缓冲区中。本步骤可采用如下具体方法:将存储设备中的输入序列数据库中的记录分块读入到CPU的内存缓冲区中,所述内存缓冲区的容量大于预设的最小缓冲区阈值,小于系统的最大可用内存,当所述内存缓冲区中的记录被处理完毕时,从存储设备中的输入序列数据库中读取下一块数据到所述内存缓冲区进行处理,直至所述序列数据库中的所有记录被扫描完毕。更加优选和具体的实施方法如下:输入序列数据库通常以文件的形式存储在系统的硬盘中,存储的类型可以有多种,如二进制格式或文本格式等。获取序列数据库中的记录时,具体地,可以从硬盘中读取,优选地,将读取的序列数据存储在系统内存中。输入的序列数据在内存中的存储格式可以根据需要预先定义,以方便在后续过程中按照该预先定义的存储格式从内存中读取。具体地,还可以定义序列数据库的接口,包括为保存输入序列数据库记录开辟的内存缓冲区大小,序列数据指针,当前的数据块大小,当前数据块的读写位置以及数据块完全读取标志等。根据该序列数据库接口定义序列数据库读取函数,使用该序列数据库读取函数从硬盘打开输入序列数据库文件,获取序列数据库记录,按已定义的格式存储在内存中。例如,定义内存缓冲区的大本文档来自技高网
...

【技术保护点】
一种基于GPU的并行时间序列挖掘方法,其特征在于,包括以下步骤:步骤101:扫描输入序列数据库中的记录到CPU的内存缓冲区中;步骤102:根据所述序列数据库中的记录,计算长度为1的候选序列以及所述长度为1的候选序列的支持度;步骤103:根据所述长度为1的候选序列的支持度,计算得到长度为1的频繁序列;步骤104:扫描所述输入序列数据库中的记录,计算候选序列信息矩阵和候选事件信息矩阵;步骤105:将所述候选序列信息矩阵和候选事件信息矩阵拷贝到GPU的显存中,采用CUDA在所述GPU上并行计算长度为2的候选序列以及所述长度为2的候选序列的支持度,并将结果保存在GPU的显存中;步骤106:将所述长度为2的候选序列和长度为2的候选序列的支持度拷贝到CPU的内存缓冲区中,计算得到长度为2的频繁序列;步骤107:根据所述输入序列数据库计算得到垂直格式数据库;步骤108:将所述长度为1的频繁序列、长度为2的频繁序列和所述垂直格式数据库拷贝到GPU的显存中,在GPU中并行计算得到其余长度的频繁序列。

【技术特征摘要】
1.一种基于GPU的并行时间序列挖掘方法,其特征在于,包括以下步骤: 步骤101:扫描输入序列数据库中的记录到CPU的内存缓冲区中; 步骤102:根据所述序列数据库中的记录,计算长度为I的候选序列以及所述长度为I的候选序列的支持度; 步骤103:根据所述长度为I的候选序列的支持度,计算得到长度为I的频繁序列;步骤104:扫描所述输入序列数据库中的记录,计算候选序列信息矩阵和候选事件信息矩阵; 步骤105:将所述候选序列信息矩阵和候选事件信息矩阵拷贝到GPU的显存中,采用CUDA在所述GPU上并行计算长度为2的候选序列以及所述长度为2的候选序列的支持度,并将结果保存在GPU的显存中; 步骤106:将所述长度为2的候选序列和长度为2的候选序列的支持度拷贝到CPU的内存缓冲区中,计算得到长度为2的频繁序列; 步骤107:根据所述输入序列数据库计算得到垂直格式数据库; 步骤108:将所述长度为I的频繁序列、长度为2的频繁序列和所述垂直格式数据库拷贝到GPU的显存中,在GPU中并行计算得到其余长度的频繁序列。2.根据权利要求1所述的方法,其特征在于,所述步骤101包括: 将存储设备中的输入序列数据库中的记录分块读入到CPU的内存缓冲区中,所述内存缓冲区的容量大于预设的最小缓冲区阈值,小于系统的最大可用内存,当所述内存缓冲区中的记录被处理完毕时,从存储设备中的输入序列数据库中读取下一块数据到所述内存缓冲区进行处理,直至所述序列数据库中的所有记录被扫描完毕。3.根据权利要求2所述的方法,其特征在于,所述步骤102包括: 扫描一条内存缓冲区中的序列数据库记录,当所述序列数据库记录中第一次出现某项时,如果在之前的序列数据库记录中未出现过所述项,则将所述项保存作为一个长度为I的候选序列,并将所述项的支持度增加I; 如果在所述序列数据库记录中多次出现所述项,则仅在第一次出现所述项时保存并增加其支持度,在所述序列数据库记录中再次出现所述项时不作任何处理,如果在其它任一序列数据库记录中首次出现所述项时,则将所述项的支持度增加I。4.根据权利要求1所述的方法,其特征在于,所述步骤103包括: 将每一个长度为I的候选序列的支持度与预设的最小支持度阈值进行比较,如果所述支持度大于等于所述最小支持度阈值,则将该长度为I的候选序列保存为一个长度为I的频繁序列,如果所述支持度小于所述最小支持度阈值,则将该长度为I的候选序列保存为一个长度为I的非频繁序列。5.根据权利要求1所述的方法,其特征在于,所述步骤104包括: 将所述输入序列数据库中的记录读入CPU的内存缓冲区中,采用迭代算法依次处理所述内存缓冲区中的每一...

【专利技术属性】
技术研发人员:杨世权袁博
申请(专利权)人:清华大学深圳研究生院
类型:发明
国别省市:广东;44

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

1