欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2020101070670
申请人: 韶关学院
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于MapReduce的并行频繁项集挖掘方法,其特征在于:包括以下步骤:S1:输入待挖掘的数据集,并对数据集进行划分分区和筛选,得到频繁1项集,对频繁1项集中各个项排列生成F‑list;

S1‑1:使用Hadoop默认的文件块策略,将原始数据集划分成大小相同的文件块Block;

S1‑2:将文件块Block作为Map阶段的输入数据,通过调用Map函数以键值对的形式统计出相应接点上的文件块中各项出现的次数;

S1‑3:通过调用Combine函数将本节点中key值相同的value相加;

S1‑4:将每个节点新得到的键值对传送给Reduce函数,进行合并;

S1‑5:筛选出支持度大于最小支持度阈值min_sup的项组成频繁1项集F1,根据频繁1项集中各项的支持数降序排列生成全局F‑list;

S1‑6:将所得到的F‑list保存到文件存储系统HDFS中;

S2:通过负载均衡策略LBSBDG对F‑list均匀分组;估算F‑list中每一项的负载量,并根据每一项的负载量进行均匀分组,生成分组列表G‑list;

S2‑1:通过估计函数E(item)计算F‑list中每一项的负载量Load,并将每一项的负载量按照降序排序方法生成L‑list;

函数E(item)具体的计算方式如下所示:

n‑1

E(item)=min{count(item),2 }

其中count(item)表示频繁项item的支持度,n为item在F‑list中的位置;min{}表示取两者之间的较小者;

S2‑2:构建分组列表G‑list,对L‑list中的每一项进行分组生成G‑list,其中G‑list包含H组;

S2‑3:将L‑list中的前H项作为初值依次添加到G‑list每一组中,并将组号设置为0~(H‑1),同时设置每一组的负载总量的初值为添加项的负载量;

S2‑4:继续对L‑list中未分组的项进行分组操作,且每次均读取H项,在划分之前先判定当前每一组的负载总量是否相同,如果每一组负载总量均相同则按顺序添加,即将H项分别添加到0~(H‑1)组,如果每一组负载总量不相同则按逆序添加,即将H项分别添加到(H‑

1)~0组中,更新每一组的负载总量;

S2‑5:重复步骤S2‑3直到L‑list中所有项均匀分配到相应组为止,如果最后一次取出的项个数少于H则将其依次添加到负载总量最小的组中;

S2‑6:将所得到的分组G‑list保存到文件存储系统HDFS中;

S3:启动频繁k项挖掘任务,并行挖掘待挖掘数据集中所有的频繁项集;

S3‑1:在Map函数计算过程中,将处理后的数据依据G‑list映射到集群中的不同计算节点上;

S3‑1‑1:从分布式文件存储系统HDFS中读取F‑list和G‑list,同时将G‑list中的各个数据项用序号替换;

S3‑1‑2:根据G‑list构建映射表Htable,将G‑list每组所包含的项作为key值,组号gid作为value值;

S3‑1‑3:依次读取预处理后数据集中的每一条记录,并逆序遍历该记录中的项item,根据步骤S3‑1‑2中的Htable,确定其组号gid,然后以gid为key值,将排在项item之前所有项设定为value值;

S3‑1‑4:重复执行步骤S3‑1‑3,直到所有记录完成映射,并将所得的输出结果作为Reduce阶段的输入传送给Reduce函数;

S3‑2:在Reduce函数计算过程中,在各个计算节点中构造子树,通过先序、后序遍历子树,得到频繁1项集的N‑list;然后对频繁1项集结构进行合并得到频繁2项集的DiffNodeset;最后挖掘出所有的频繁项。

2.根据权利要求1所述的挖掘方法,其特征在于:步骤S3‑1‑3还包括以下步骤:S3‑1‑3‑1:完成映射后,删除Htable中value=gid的所有键值对;

S3‑1‑3‑2:如果在映射时找不到对应的组号,则读取前一项执行相同操作,直到该记录执行完毕。

3.根据权利要求1所述的挖掘方法,其特征在于:步骤S3‑2还包括以下步骤:S3‑2‑1:系统中每个计算节点根据Map阶段的输出,通过调用insert_tree()函数在各个节点上构造PPC‑Tree树;

S3‑2‑2:对PPC‑Tree树分别进行先序遍历、后序遍历,得到所有频繁1项集的N‑list,并从内存中删除PPC‑tree树,释放内存空间;

S3‑2‑3:采用双向比较策略T‑wcs对频繁1项集的N‑list进行合并产生2项集的DiffNodeset,计算每一个2项集的支持度,选取支持度大于最小支持度阈值min_sup的项组成频繁2项集;

S3‑2‑4:根据k项集的DiffNodeset生成方法以及k项集的支持度计算方法挖掘频繁k项集,所述k为大于2的正整数,最后输出所有频繁模式。

4.根据权利要求3所述的挖掘方法,其特征在于:步骤S3‑2‑3中,根据如下计算公式计算每一个2项集的支持度;

其中Sup(i1)表示项i1的支持度,∑E∈DN12E.count表示2项集的DiffNodeset结构中所有PP‑code第三项之和。

5.根据权利要求3所述的挖掘方法,其特征在于:步骤S3‑2‑4中,所述k项集的支持度计算公式如下:其中P表示k项集i1i2...ik‑1ik,P1表示频繁k‑1项集i1i2...ik‑2ik‑1,Sup(P1)表示P1的支持度,∑E∈DNpE.count表示k项集的DiffNodeset结构中所有PP‑code第三项之和。