一种频繁项集的挖掘方法、装置及系统与流程

文档序号:12034623阅读:219来源:国知局
一种频繁项集的挖掘方法、装置及系统与流程

本申请涉及大数据领域,尤其涉及一种频繁项集的挖掘方法、装置及系统。



背景技术:

随着互联网技术的发展,互联网中产生的数据可能蕴含着大量的价值。随着网络中产生的数据越来越多,如何快速有效地挖掘互联网中产生的数据的价值,是大数据时代面临的一大问题。

数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。目前,对数据中的关联规则的挖掘,是数据挖掘领域中广泛应用的数据挖掘方法。其中,所述关联规则,指数据中的不同项之间存在有价值的关联关系。如果某条关联规则满足预设的最小支持度阈值和最小置性度阈值,则认为该关联规则是有价值的,上述阈值可以根据挖掘要求人为设定。

对于大数据中的数据,数据中的不同项的唯一标识特征值构成的集合可以表示为i={i1,i2,...,im},所述项的唯一标识特征值指用于在项集中唯一标识项的特征的值。比如,对于名称互不相同的商品,则可以以商品的名称作为项的唯一标识特征值,或者,也可以给不同的商品分配不同的编号,则可以用商品的编号作为项的唯一标识特征值。本申请实施例中所述的集合和事务数据集中均可用项的唯一标识特征值来表示不同的项。事务ti由至少一个项组成,即事务ti为i的非空子集合。事务数据集为事务ti构成的集合,可表示为d={t1,t2,…,ti,...,tn},i∈[1,n]。

对数据中关联规则挖掘的过程主要分两步:1、挖掘频繁项集;2、由频繁项集产生关联规则。其中,对频繁项集的挖掘是关联规则挖掘的关键。若设s为由项的唯一标识特征值组成的一个集合,s={i|i∈i},简称项集,且包含k个 项的项集称为k-项集,那么,所述频繁项集为支持度不小于预设的最小支持度阈值的项集。项集在d中的支持度,是d中同时包含该项集中的所有项的事务占d包含的事务总数的百分比,该百分比也可以理解为该项集在d中的出现概率。比如以1000个顾客的购物记录为事务数据集,顾客购物记录中的商品为项,其中200个顾客即买了面包又买了火腿,预设的最小支持度阈值为15%,那么2-项集{面包,火腿}的支持度为20%,即为频繁项集。

在对频繁项集进行挖掘时,可以使用逐层搜索的迭代方法,即用频繁k-项集去搜索频繁k+1-项集。在利用频繁k-项集去搜索频繁k+1-项集时,需要预先根据所述频繁k-项集生成候选k+1-项集,然后筛选候选k+1-项集中满足最小支持度阈值的项集,作为最终得到的频繁k+1-项集。

当频繁k-项集中数量很多时,候选k+1-项集的个数会更多,例如,当频繁1-项集的数量为1000时,候选2-项集的数量为,在大数据挖掘中,频繁k-项集的数量往往很大,对频繁项集的挖掘会耗费大量的时间,导致频繁项集的挖掘效率较低。



技术实现要素:

本申请实施例提供一种频繁项集的挖掘方法,用以解决现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题。

本申请实施例还提供一种频繁项集的挖掘装置,用以解决现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题。

本申请实施例还提供一种频繁项集的挖掘系统,用以解决现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题。

本申请实施例采用下述技术方案:

一种频繁项集的挖掘方法,包括:

主节点在接收到客户端指派的针对总数据的频繁项集挖掘任务后,按照预定的数据分割规则对所述总数据进行数据分割得到各子数据;

所述主节点将各子数据分配给至少两个用于并行执行频繁项集挖掘任务的第一阶段任务的从属节点;所述第一阶段任务具体包括:所述从属节点根据预设的最小支持度阈值,利用频繁项集挖掘算法对被分配的子数据进行频繁项集挖掘,得到所述子数据的频繁项集;

所述主节点将所述子数据的频繁项集分配至用于并行执行频繁项集挖掘任务的第二阶段任务的各从属节点;所述第二阶段任务,包括:用于执行第二阶段任务的各从属节点根据预设的最小支持度阈值和所述子数据的频繁项集,获取所述总数据的频繁项集。

一种频繁项集的挖掘装置,包括:

从属节点确定单元,用于在接收到客户端指派的针对总数据的频繁项集挖掘任务后,按照预定的数据分割规则对所述总数据进行数据分割得到各子数据;

子数据的频繁项集获取单元,用于将各子数据分配给至少两个用于并行执行频繁项集挖掘任务的第一阶段任务的从属节点;所述第一阶段任务具体包括:所述从属节点根据预设的最小支持度阈值,利用频繁项集挖掘算法对被分配的子数据进行频繁项集挖掘,得到所述子数据的频繁项集;

总频繁项集获取单元,用于将所述子数据的频繁项集分配至用于并行执行频繁项集挖掘任务的第二阶段任务的各从属节点;所述第二阶段任务,包括:用于执行第二阶段任务的各从属节点根据预设的最小支持度阈值和所述子数据的频繁项集,获取所述总数据的频繁项集。

一种频繁项集的挖掘系统,包括主节点和至少两个从属节点,其中:

所述主节点,用于在接收到客户端指派的针对总数据的频繁项集挖掘任务后,按照预定的数据分割规则对所述总数据进行数据分割得到各子数据;

用于将各子数据分配给至少两个用于并行执行频繁项集挖掘任务的第一阶段任务的从属节点;所述第一阶段任务具体包括:所述从属节点根据预设的最小支持度阈值,利用频繁项集挖掘算法对被分配的子数据进行频繁项集挖 掘,得到所述子数据的频繁项集;

用于将所述子数据的频繁项集分配至用于并行执行频繁项集挖掘任务的第二阶段任务的各从属节点;所述第二阶段任务,包括:用于执行第二阶段任务的各从属节点根据预设的最小支持度阈值和所述子数据的频繁项集,获取所述总数据的频繁项集。

所述从属节点,用于执行所述主节点分配的任务。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

通过将所述总数据分割为至少两个子数据,并利用分布式计算系统中的从属节点并行挖掘各子数据中的子数据的频繁项集,然后利用所述子数据的频繁项集获取所述总数据中的频繁项集,相对于现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题,提高了大数据中频繁项集挖掘的效率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种分布式计算系统的具体结构示意图;

图2为本申请实施例1提供的一种频繁项集的挖掘方法的实现流程示意图;

图3为本申请实施例1提供的一种基于mapreduce算法的频繁项集挖掘方法的实现过程示意图;

图4为本申请实施例2提供的一种频繁项集的挖掘方法的实现流程示意图;

图5为本申请实施例2提供的一种对子事务数据集的频繁项集进行挖掘的过程示意图;

图6为本申请实施例2提供的一种根据子数据的频繁项集和事务数据集获 取频繁项集的实现过程示意图;

图7为本申请实施例3提供的一种频繁项集的挖掘装置的具体结构示意图;

图8为本申请实施例4提供的一种频繁项集的挖掘系统的具体结构示意图。

具体实施方式

本申请实施例中,可以利用分布式计算系统对频繁项集进行挖掘,所述分布式计算系统为运行于服务器集群中的、可以对数据进行分布式计算的系统。如图1所示,为一种分布式计算系统的结构示意图。所述分布式计算系统包括主节点和至少两个从属节点。其中,所述主节点主要用于将接收到的客户端的任务分配至各从属节点,并调度各从属节点高效地执行任务;所述从属节点主要用于执行所述主节点分配的任务。

分布式计算系统还可以包含存储系统,为了数据的安全性,存储系统可以通过复制的方式将数据备份至多个节点中。

本申请实施例中,所述客户端可以接收用户输入的操作指令,并根据所述操作指令,发送与所述操作指令对应的任务至分布式计算系统。所述客户端还可以将分布式计算系统的计算结果反馈给用户。

由于所述分布式计算系统已是比较成熟的相关技术,本说明书中对此不再进一步赘述。下面将结合本申请例详细介绍基于分布式计算系统的一种频繁项集的挖掘方法。

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

以下结合附图,详细说明本申请各实施例提供的技术方案。

实施例1

为解决现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题,本申请实施例1提供一种频繁项集的挖掘方法。本申请实施例提供的频繁项集的挖掘方法的执行主体可以是服务器,例如,服务器集群中作为分布式计算系统主节点的服务器,等等。

为便于描述,下文以该方法的执行主体为服务器集群中作为分布式计算系统主节点的服务器为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为服务器集群中作为分布式计算系统主节点的服务器只是一种示例性的说明,并不应理解为对该方法的限定。

该方法的实现流程示意图如图2所示,包括下述步骤:

步骤11:主节点在接收到客户端指派的针对总数据的频繁项集挖掘任务后,按照预定的数据分割规则对所述总数据进行数据分割得到各子数据;

本申请实施例中,所述总数据为包含事务数据集的数据。即所述频繁项集挖掘是对所述总数据中包含的所述事务数据集进行频繁项集挖掘。

本申请实施例中,在对所述总数据进行频繁项集挖掘时,可以将所述频繁项集挖掘任务分为两个阶段来执行,以便提高频繁项集挖掘的效率。后文将详细介绍本申请实施例中频繁项集挖掘任务的第一阶段任务和第二阶段任务。

本申请实施例中,可以采用分布式计算系统对所述总数据的频繁项集进行挖掘,那么在接收到客户端指派的针对所述总数据的频繁项集挖掘任务后,便可以确定用于执行频繁项集挖掘任务的第一阶段任务的从属节点。

本申请实施例中,在进行大数据挖掘时,由于所述总数据包含的事务数据集中事务的数量往往很多,频繁1-项集的数量往往也很多,那么对频繁项集的挖掘会耗费大量的时间。为了提高频繁项集挖掘的效率,可以按照预定的数据分割规则将所述总数据分割成若干个子数据,然后再对个子数据进行频繁项集 的挖掘。我们将所述子数据中包含的事务数据集称为子事务数据集。即按照所述预定的数据分割规则,可以将所述总数据中包含的事务数据集分割成若干个子事务数据集。

本申请实施例中,所述预定的数据分割规则,为用于确定数据分割时子事务数据集包含的事务数量,并确保分割后子事务数据集中每个事务的完整性的规则。所述事务的完整性指执行数据分割后事务所包含的项和执行数据分割前事务所包含的项相同。

在实际应用中,数据分割规则中具体的每个子事务数据集包含的事务数量可以根据分布式计算系统的计算能力进行配置。

步骤12:所述主节点将各子数据分配给至少两个用于并行执行频繁项集挖掘任务的第一阶段任务的从属节点;

所述第一阶段任务具体包括:所述从属节点根据预设的最小支持度阈值,利用频繁项集挖掘算法对被分配的子数据进行频繁项集挖掘,得到所述子数据的频繁项集(后称局部频繁项集)。

本申请实施例中,可以预先对各子事务数据集的频繁项集进行挖掘。为便于描述,我们将对各子事务数据集的频繁项集进行挖掘的任务称为频繁项集挖掘任务的第一阶段任务。在实际应用中,可以利用分布式计算系统中各从属节点来执行所述第一阶段任务。在利用各从属节点来对子数据事务集的频繁项集进行挖掘时,为各从属节点分配的子数据的数量可以根据各从属节点的计算能力确定,本申请实施例对此不做限定。

本申请实施例中,在确定用于执行频繁项集挖掘任务的所述第一阶段任务的从属节点后,便可以将所述第一阶段任务分配至确定的用于执行第一阶段任务的各从属节点,以使得所述用于执行第一阶段任务的各从属节点并行执行所述第一阶段任务。

本申请实施例中,所述第一阶段任务具体包括:根据预设的最小支持度阈值,利用频繁项集挖掘算法对从属节点被分配的子数据进行频繁项集挖掘,得 到所述子数据的频繁项集作为局部频繁项集。

在实际应用中,所述预设的最小支持度阈值可以根据业务需求而定,本申请实施例对此不做限定。

在实际应用中,所述从属节点在利用频繁项集挖掘算法对从属节点被分配的子数据进行频繁项集挖掘时,可以利用基于映射归约(mapreduce)算法的频繁项集挖掘算法对从属节点被分配的子数据进行频繁项集挖掘。所述mapreduce算法分为映射(map)算法和归约(reduce)算法,mapreduce算法的计算过程分为map阶段和reduce阶段,在进行分布式计算时,可以将执行map算法的程序称为map节点,将执行reduce算法的程序称为reduce节点。由于所述mapreduce算法已是比较成熟的相关技术,本说明书中对此不再进一步赘述。下面将详细介绍利用基于mapreduce算法的频繁项集挖掘算法来对从属节点被分配的子数据进行频繁项集挖掘的过程。

在实际应用中,在进行频繁项集挖掘时,通过将项集的支持度与预设的最小支持度阈值进行比较来确定频繁项集时,需要计算每个项集在事务数据集中的支持度,即用包含同一项集中的所有项的事务的数量除以事务总数,这会消耗一定的计算资源,降低频繁项集挖掘的效率。因此,为了提高频繁项集挖掘的效率,在对频繁项集进行挖掘时,可以根据项集的支持度计数来挖掘频繁项集,而无需计算每个项集在事务数据集中的支持度。所述项集的支持度计数指事务数据集中包含该项集中所有项的事务的总数,也可称作项集的频率。

在实际应用中,可以根据预设的最小支持度阈值和事务数据集中事务的总数量,得到频繁项集在所述事务数据集的最小支持度计数阈值,作为全局最小支持度计数。然后可以利用全局最小支持度计数除以子事务数据集中事务的数量,即可得到子事务数据集中频繁项集的局部最小支持度计数阈值。

本申请实施例中,利用基于mapreduce算法的频繁项集挖掘算法对从属节点被分配的子数据进行局部频繁项集挖掘的过程,其流程示意图如图3中实线箭头所示。首先,可以将对所述总数据进行数据分割得到的子数据中的所述 子事务数据集作为map算法的输入,然后根据与输入的所述子事务数据集对应的、预设的局部最小支持度计数阈值,利用频繁项集挖掘算法对所述子事务数据集的频繁项集进行挖掘。

在实际应用中,所述频繁挖掘算法包括下述至少一种:先验频繁项集挖掘(apriori)算法、频繁模式树(fp-tree)算法。具体地,所述频繁项集挖掘算法在对频繁项集进行挖掘时,可以使用逐层搜索的迭代方法,即用频繁k-项集去搜索频繁k+1-项集。在利用频繁k-项集去搜索频繁k+1-项集时,需要预先根据所述频繁k-项集生成候选k+1-项集,然后筛选候选k+1-项集中满足最小支持度阈值的项集,作为最终得到的频繁k+1-项集。逐层搜索迭代的频繁项集挖掘算法比如可以是先验频繁项集挖掘(apriori)算法。由于所述频繁项集挖掘算法为比较成熟的相关技术,本申请实施例对此不再进一步赘述。

本申请实施例中,在利用频繁项集挖掘算法得到局部频繁项集后,可以通过map算法将挖掘结果输出。map算法对所述局部频繁项集的输出格式可以是<key,value>,其中key是局部频繁项集,value是局部频繁项集的支持度计数。

本申请实施例中,在通过基于map算法的频繁项集挖掘算法获得各子事务数据集的局部频繁项集之后,可以通过reduce算法将所有map节点输出的局部频繁项集进行收集整理。可以将map算法的输出作为reduce算法的输入,然后reduce算法便可以将所有map节点输出的局部频繁项集进行收集并保存,以便后续使用。reduce算法的输出格式也可以为<key,value>,其中key是局部频繁项集,value为1。

即,本申请实施例中,可以通过基于map算法的频繁项集挖掘算法获得各子数据包含的子事务数据集的局部频繁项集,然后通过reduce算法将map节点输出的所述局部频繁项集进行收集整理。

需要说明的是,通过基于map算法的频繁项集挖掘算法获得各子事务数据集的局部频繁项集,然后通过reduce算法将map节点输出的所述局部频繁 项集进行收集整理,最终得到局部频繁项集的方法,只是本申请实施例提供的,利用基于mapreduce算法的频繁项集挖掘算法对从属节点被分配的子数据进行频繁项集挖掘的一种方法。

在实际应用中,还可以先通过map算法对各子事务数据集中的每个事务进行遍历,遍历过程中,每发现一个事务包含某个项集便以<key,value>的格式将该项集输出,其中key是项集,value为1。然后由reduce算法对map算法输出的各项集出现的次数进行累加,便得到各项集的支持度计数,进而根据局部最小支持度计数阈值,获得局部频繁项集。在此不再赘述。

步骤13:所述主节点将所述子数据的频繁项集分配至用于并行执行频繁项集挖掘任务的第二阶段任务的各从属节点。

所述第二阶段任务,包括:用于执行第二阶段任务的各从属节点根据预设的最小支持度阈值和所述子数据的频繁项集,获取所述总数据的频繁项集。

本申请实施例中,在各从属节点通过执行所述第一阶段任务获得所述局部频繁项集后,主节点可以确定用于执行频繁项集挖掘任务的第二阶段任务的从属节点,以使得所述用于执行第二阶段任务的各从属节点并行执行所述第二阶段任务。

本申请实施例中,所述第二阶段任务,具体包括,计算各局部频繁项集在所述总数据中的支持度;将在所述总数据中的支持度不小于所述预设的最小支持度阈值的局部频繁项集,作为所述总数据的频繁项集。

在实际应用中,可以利用mapreduce算法计算各局部频繁项集在所述总数据中的支持度,进而获得所述总数据的频繁项集,其流程示意图如图3中虚线箭头所示。

具体地,首先,可以将局部频繁项集和所述总数据包含的事务数据集作为mapreduce算法的输入,然后统计各个局部频繁项集在事务数据集中出现的次数,即可得到所述局部频繁项集在事务数据集中的支持度计数作为全局支持度计数。

在实际应用中,在利用mapreduce算法统计各局部频繁项集在事务数据集中的支持度计数时,为了提高计数效率,可以由多个map节点并行对事务数据集中的各局部频繁项集进行计数,也可以由各map节点并行对map节点被分配的子事务数据集中出现的各局部频繁项集进行计数。然后由reduce函数将各map节点输出的、各子事务数据集中对同一局部频繁项集的计数进行累加,得到该频繁项集在事务数据集中的全局支持度计数。

本申请实施例中,在得到所述全局支持度计数后,便可以将所述全局支持度计数不小于所述最小支持度计数阈值的局部频繁项集作为所述总数据的频繁项集。

在实际应用中,如果期望得到频繁k-项集,则可以从所述总数据的频繁项集中获取频繁k-项集。

本申请实施例中,还可以利用所述频繁k-项集进行关联规则的挖掘。

具体地,在接收到客户端指派的针对所述总数据的关联规则挖掘任务后,将所述关联规则挖掘任务分配至用于执行关联规则挖掘任务的各从属节点,以使得所述用于执行关联规则挖掘任务的各从属节点并行执行所述关联规则挖掘任务。

本申请实施例中,所述关联规则挖掘任务,包括:在获取所述总数据的频繁项集后,根据预设的最小置信度阈值和所述总数据的频繁项集,获得所述总数据中的关联规则。

具体地,在根据预设的最小置信度阈值和所述总数据的频繁项集,获得所述总数据中的关联规则时,首先获取所述总数据的频繁项集中的频繁k-项集,并根据所述频繁k-项集得到待定关联规则,计算所述待定关联规则的置信度,然后将置信度不小于所述预设的最小置信度阈值的所述规则,作为所述总数据中的关联规则。

在实际应用中,所述待定关联规则的置信度,是根据频繁k-项集的支持度计数和该频繁k-项集中各项的支持度计数得到的。即用频繁k-项集中各项的支 持度计数除以该频繁k-项集的支持度计数。

在实际应用中,所述预设的最小置信度阈值可以根据业务需求而定,本申请实施例对此不做限定。

由于根据频繁k-项集和最小置信度阈值获得关联规则已是比较成熟的相关技术,本说明书中对此不再进一步赘述。

本申请实施例1提供的频繁项集的挖掘方法,通过将所述总数据分割为至少两个子数据,并利用分布式计算系统中的从属节点并行挖掘各子数据中的局部频繁项集,然后利用所述局部频繁项集获取所述总数据中的频繁项集,相对于现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题,提高了大数据中频繁项集挖掘的效率。

实施例2

基于前述实施例1详细叙述了本申请的发明构思,为了便于更好的理解本申请的技术特征、手段和效果,下面对本申请的频繁项集的挖掘方法做进一步说明,从而形成了本申请的又一个实施例。

本申请实施例2中频繁项集的挖掘过程与实施例1中所述频繁项集的挖掘过程相似,实施例2中没有介绍到的其他一些步骤可以参见实施例1中的相关描述,此处不再赘述。

在对该方案的实现方式进行详细介绍前,先对该方案的实施场景进行简单介绍。

该实施场景中,将要对数据d中的频繁项集进行挖掘,预设的最小支持度阈值为40%,数据d中的事务数据集d={t1,t2,t3,t4,t5},共有5个事务记录,分别表示为:

其中tid表示事务的id,项的集合i={i1,i2,i3,i4,i5,i6}。

需要说明的是,本实施例2所提供的事务数据集d只是为清晰地叙述本发明构思而做的示例,本申请提供的频繁项集的挖掘方法实际应用中所处理的数据对象为大数据。

基于上述场景,实施例2中实现显示高频应用和功能开关的过程如图4所示,包括下述步骤:

步骤21:按照预定的数据分割规则将事务数据集d分割成2个子数据,并将对事务数据集d中的频繁项集挖掘任务指派至主节点;

其中子事务数据集s1={t1,t4},子事务数据集s2={t2,t3,t5};

对事务数据集d中的频繁项集挖掘任务,包括:对所述子事务数据集s1和s2中的局部频繁项集进行挖掘的任务;根据所述局部频繁项集获取所述总事务数据集的频繁项集的任务。

步骤22:主节点将对所述子事务数据集s1和s2中的频繁项集进行挖掘的任务分配至确定的用于执行子事务数据集挖掘任务的各从属节点;

步骤23:各从属节点执行频繁项集挖掘任务,得到各子事务数据集的频繁项集作为局部频繁项集;

预设的最小支持度计数为最小支持度阈值乘以事务数据集中事务的数量,即40%*5=2,则对子事务数据集s1进行频繁项集挖掘时的最小支持度计数为2/2=1,对子事务数据集s2进行频繁项集挖掘时的最小支持度计数为2/3。

如图5所示,将子事务数据集s1和s2分别作为各从属节点中map节点的输入,通过map阶段得到子事务数据集s1和s2的局部频繁项集,并通过reduce阶段将各从属节点得到的局部频繁项集进行收集并统一保存。

步骤24:主节点将根据所述局部频繁项集获取所述总事务数据集的频繁项集的任务分配至从属节点;

步骤25:从属节点统计各局部频繁项集在事务数据集中的出现次数即为各局部频繁项集的全局支持度计数。

如图6所示,将所述各局部频繁项集和事务数据集作为map节点的输入,通过map阶段得到各局部频繁项集在所述事务数据集中的计数,通过reduce阶段将map阶段得到的、事务数据集中同一局部频繁项集的计数进行累加,得到该频繁项集在事务数据集中的全局支持度计数。

步骤26:从属节点将各局部频繁项集的全局支持度计数与预设的最小全局支持度阈值2进行比较,得到频繁项集。

得到的全集频繁项集有两个,即{i3}和{i1,i3,i4}。如果只需要频繁k-项集,则可以舍去项集{i3},即可得到频繁k-项集{i1,i3,i4}。

本申请实施例2提供的频繁项集的挖掘方法,通过将所述总数据分割为至少两个子数据,并利用分布式计算系统中的从属节点并行挖掘各子数据中的局部频繁项集,然后利用所述局部频繁项集获取所述总数据中的频繁项集,相对于现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题,提高了大数据中频繁项集挖掘的效率。

实施例3

为解决现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题,本申请实施例3提供一种频繁项集的挖掘装置。该频繁项集挖掘装置的结构示意图如图7所示,主要包括下述功能单元:

从属节点确定单元31,用于在接收到客户端指派的针对总数据的频繁项集挖掘任务后,按照预定的数据分割规则对所述总数据进行数据分割得到各子数据;

子数据的频繁项集获取单元32,用于将各子数据分配给至少两个用于并行 执行频繁项集挖掘任务的第一阶段任务的从属节点;所述第一阶段任务具体包括:所述从属节点根据预设的最小支持度阈值,利用频繁项集挖掘算法对被分配的子数据进行频繁项集挖掘,得到所述子数据的频繁项集;

总频繁项集获取单元33,用于将所述子数据的频繁项集分配至用于并行执行频繁项集挖掘任务的第二阶段任务的各从属节点;所述第二阶段任务,包括:用于执行第二阶段任务的各从属节点根据预设的最小支持度阈值和所述子数据的频繁项集,获取所述总数据的频繁项集。

所述频繁项集挖掘算法包括下述至少一种:

先验频繁项集挖掘算法;

频繁模式树算法。

关联规则挖掘单元34,用于在接收到客户端指派的针对所述总数据的关联规则挖掘任务后,将所述关联规则挖掘任务分配至用于执行关联规则挖掘任务的各从属节点,以使得所述用于执行关联规则挖掘任务的各从属节点并行执行所述关联规则挖掘任务;所述关联规则挖掘任务,包括:在获取所述总数据的频繁项集后,根据预设的最小置信度阈值和所述总数据的频繁项集,获得所述总数据中的关联规则。

本申请实施例3提供的频繁项集挖掘装置,通过将所述总数据分割为至少两个子数据,并利用分布式计算系统中的从属节点并行挖掘各子数据中的局部频繁项集,然后利用所述局部频繁项集获取所述总数据中的频繁项集,相对于现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题,提高了大数据中频繁项集挖掘的效率。

实施例4

为解决现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题,本申请实施例4提供一种频繁项集的挖掘系统,该系统的结构示意图如图8所示,包括主节点和至少两个从属节点。以下介绍该系统各部分的功能:

所述主节点,用于在接收到客户端指派的针对总数据的频繁项集挖掘任务后,按照预定的数据分割规则对所述总数据进行数据分割得到各子数据;

将各子数据分配给至少两个用于并行执行频繁项集挖掘任务的第一阶段任务的从属节点;所述第一阶段任务具体包括:所述从属节点根据预设的最小支持度阈值,利用频繁项集挖掘算法对被分配的子数据进行频繁项集挖掘,得到所述子数据的频繁项集;

用于将所述子数据的频繁项集分配至用于并行执行频繁项集挖掘任务的第二阶段任务的各从属节点;所述第二阶段任务,包括:用于执行第二阶段任务的各从属节点根据预设的最小支持度阈值和所述子数据的频繁项集,获取所述总数据的频繁项集。

所述从属节点,用于执行所述主节点分配的任务。

本申请实施例4提供的频繁项集挖掘系统,通过将所述总数据分割为至少两个子数据,并利用分布式计算系统中的从属节点并行挖掘各子数据中的局部频繁项集,然后利用所述局部频繁项集获取所述总数据中的频繁项集,相对于现有技术中在对大数据中的频繁项集进行挖掘时会耗费大量时间的问题,提高了大数据中频繁项集挖掘的效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入 式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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