1.一种基于FPGA的FP-Growth算法的改进方法,其特征在于,包括以下步骤:
扫描Spark集群中的数据库,获取频繁项集;
将频繁项集进行分组;
为Spark集群中的每个节点加配一块FPGA板卡;
在FPGA板卡上对每一组的频繁项集建FP树;
在FPGA板卡上对每一组建的FP树进行递归挖掘;
将每一组递归挖掘的结果进行合并。
2.根据权利要求1所述的基于FPGA的FP-Growth算法的改进方法,其特征在于,将频繁项集进行分组,包括:
将其按频繁1-项集顺序递减排列;
根据数据库的大小确定分组个数,按照预先设定的分组规则将其分为若干组。
3.根据权利要求1所述的基于FPGA的FP-Growth算法的改进方法,其特征在于,在FPGA板卡对每一组建FP树,包括:
建立一个根节点为NULL的FP树和一个存储节点信息的Tab表;
将频繁项表中的每条处理好的事务中的数据项按降序依次插入到FP树中,构建出FP树的一条路径;
在上述的插入过程中,同时用Tab的指针指向对应项的节点,并将每个节点的计数增加1。
4.根据权利要求3所述的基于FPGA的FP-Growth算法的改进方法,其特征在于,在FPGA板卡对每一组建的FP树进行递归挖掘,包括:
A:从Tab表的尾部的项开始向上遍历FP树,每次遍历得到该项的条件模式基;
B:将其条件模式基转化为条件FP树;
C:迭代重复步骤A步骤B,直到FP树包含一个元素项为止。
5.根据权利要求4所述的基于FPGA的FP-Growth算法的改进方法,其特征在于,将每一组递归挖掘的结果进行合并,包括:
将每一棵条件FP树生成所有的从根节点到叶子节点的路径,由路径中的集合生成其所有的非空子集。
6.基于权利要求1~5所述的任一项基于FPGA的FP-Growth算法的改进方法的基于FPGA的FP-Growth算法的改进装置,其特征在于,包括:
获取模块,用于扫描Spark集群中的数据库,获取频繁项集;
分组模块,用于将频繁项集进行分组;
板卡模块,用于为Spark集群中的每个节点加配一块FPGA板卡;
建树模块,用于在FPGA板卡上对每一组的频繁项集建FP树;
挖掘树模块,用于在FPGA板卡上对每一组建的FP树进行递归挖掘;
结果模块,用于将每一组递归挖掘的结果进行合并。