Hadoop环境下基于并行熵的FIUT算法挖掘

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hadoop环境下基于并行熵的FIUT算法挖掘
晏依;徐苏
【摘要】Focusing on the inefficient problem of traditional algorithms for mining frequent itemsets, aparallel algorithm named
Balanced_MapReduce_FIUT (BMR-FIUT) based on Hadoop platform was proposed.By introducing frequent items ultrametric tree (FIU-Tree) structure, frequent itemsets were mined, effectively avoiding the defects of the traditional algorithm.The process of decomposition was improved with FIUT algorithm to adapt to its parallel computing under the framework of MapReduce, achieving the purpose of parallelization.The parallel entropy was used as the load balance measurement in cluster system, so that system could in all reasonable to distribute data as much as possible between every nodes.Experimental results show that BMR-FIUT algorithm can effectively reduce the problem about load inclination of any node in the process of parallelization, it is superior to the existing PFP-Growth algorithm and it has better performance on mining volume big data.%针对传统频繁项集挖掘算法效率低下的问题, 提出基于Hadoop平台的并行BMR-FIUT 算法.通过引入FIU-Tree (frequent items ultrametric tree) 结构挖掘频繁项集, 避免传统算法的缺陷;改进FIUT算法的分解过程, 使之适应于Map-Reduce框架下的并行计算, 达到并行化的目的;利用并行熵作为集群系统的负载均衡度量, 使系统尽可能在各节点间合理分发数据以平衡负载.实验结果表明, BMR-FIUT算法能够有效减少并行化过程中节点负载倾斜的问题, 较现有的PFP-Growth算法具有更好的性能, 适用于海量数据挖掘.
【期刊名称】《计算机工程与设计》
【年(卷),期】2019(040)003
【总页数】7页(P685-690,787)
【关键词】数据挖掘;频繁项集;MapReduce编程模型;FIUT算法;并行熵;负载均衡【作者】晏依;徐苏
【作者单位】南昌大学信息工程学院,江西南昌 330031;南昌大学信息工程学院,江西南昌 330031
【正文语种】中文
【中图分类】TP311
0 引言
传统的串行化频繁项集挖掘(FIM)算法主要有Ap-riori 算法和FP-Growth算法,然而随着大数据时代的到来,传统单机环境下FIM算法的性能迅速降低,分布式并行处理成为大数据挖掘的首选方案。

Hadoop框架是一个能够处理PB级别以上数据的开源分布式系统架构,其两大核心模块是:HDFS(hadoop distributed file system)和MapReduce,利用MapReduce来处理HDFS上的数据具有高容错的优点。

MapReduce编程模型已经被广泛应用于众多大数据分析领域,国内外学者也开始在传统FIM算法的基础上衍生出许多针对大数据处理的向MapReduce模型迁移的并行FIM算法研究[1] ,其基本思想都是利用HDFS解决海量数据存储问题,MapReduce完成并行化挖掘的任务。

文献[2] 利用Hadoop框架并基于事务缩减的思想对算法进行优化,实现了改进的Apriori算法;文献[3] 提出了一种基
于布尔矩阵和MapReduce的FP-Growth算法;文献[4] 在 MapReduce框架的基础上,提出基于FP-Growth的SON算法的并行化实现。

这些算法具有很好的扩展性,但仍受到传统FIM算法的限制,并且在并行化算法的过程中往往发生负载不均衡的情况,降低程序执行效率。

为此,本文提出基于MapReduce模型的并行BMR-FIUT算法,于Hadoop平台上实现了对FIUT算法[5] 在分布式并行环境下的改造,并优化数据分配策略,完成对系统负载不均问题的改进,提高并行效率。

1 MapReduce编程模型
基于Hadoop平台的MapReduce编程模型,其设计灵感源自于Lisp等函数式编程语言,是一种应用于大规模数据处理的分布式并行计算模型,该模型将并行化计算抽象到Map和Reduce两个函数,基本格式如下:
Map: <k1,v1> → List(<k2,v2>);
Re duce: <k2,List(v2)> → <k3,v3>。

MapReduce采用分治策略,将大规模的计算任务分解成若干子任务,交给由一个主控节点管理下的多个工作节点并行处理,各节点的计算过程相互独立,然后对这些工作节点的任务结果规约处理,最终完成输出,执行过程如图1所示。

图1 MapReduce编程模型执行过程
MapReduce模型具体的工作流程如下:
(1)MapReduce首先将输入文件切分成若干个独立的数据分片Split,分片中的数据会被解析成<key,value>形式的键值对并作为参数传递给Map函数,每个分片分别对应一个Map任务。

(2)用户编写的MapReduce程序会被系统分发部署到集群中的若干节点上,其中一个节点作为主控进程(Master),其余节点为工作进程(Worker)。

(3)主控进程负责分配系统中空闲的Worker分别处理Map或者Reduce任务,并
监控各个Worker的工作状态。

数据分片被分配给处理Map任务的Worker后,根据一定的映射规则生成一批新的<key,value>中间键值对作为输出并被缓存在内存中。

(4)缓存中的数据经过分区排序操作后会被溢写到本地磁盘中,所有的溢写文件最
后会被归并(Merge)成一个磁盘文件。

Master将记录各个分区在磁盘中的存储情况,并通知处理Reduce任务的Worker读取它所负责分区中的中间数据。

(5)Reduce任务接收来自各个Map上输出的中间数据后执行归并操作,聚集每个唯一key的键值对将其分发到同一个Reduce,最后通过调用Reduce函数产生输出并存储到HDFS中。

2 FIUT算法描述
FIUT算法使用了一种更为高效的树结构FIU-Tree,通过将事务中的每个频繁项压缩到一个节点并建立相应路径完成构造过程,有效实现了数据的压缩存储,仅遍历该树叶子节点的计数值便可直接获取频繁项集。

FIUT算法需要对DB进行两次扫描。

第一次扫描,得到包含所有频繁1-项集的集合;第二次扫描,根据第一次扫
描的结果删减每条事务中的非频繁项,得到只包含频繁项的事务集合,接着再进行FIU-Tree的构造和挖掘。

由以上分析可以看出,FIUT算法与Aprior算法相比,它只扫描两遍DB且不产生候选项集,避免了重复扫描DB的缺陷;也无需像FP-Growth算法那样需要大量
递归遍历构造条件子树,大大降低了算法的时空开销。

FIUT算法的基本定义如下:定义1 通过删除事务中的非频繁项得到由k个频繁项组成的k-itemset集合。

定义2 FIU-Tree是一个树形结构,它的数据结构如下:
(1)根为null,项集 {I1,I2,…,Ik} 表示一条以I1作为根节点的子节点,Ik作为
树叶子结点的路径,每个k-itemset中的项目顺序按字典序排列。

(2)将具有相同长度的项目集作为路径插入FIU-Tree。

(3)FIU-Tree的非叶子结点由item-name和node-link两个字段构成,item-name即项目名称,node-link指向链接到某节点子节点的指针;叶子结点包含两个字段,分别是item-name和count,count是指以该叶子节点结尾的路径上包含所有项目的数量。

推论 k-FIU-Tree的所有叶子节点均处于同一高度k。

FIUT算法的执行主要分为两个阶段。

第一阶段,扫描DB计算所有项的支持度获
取频繁1-项集;然后,再次扫描数据库,删减所有非频繁项生成k-itemsets;第
二阶段,重复构建k-FIU-Tree,挖掘并释放它,其中k从M降到2,M表示k能取到的最大值。

FIU-Tree构建和挖掘的具体过程如下:
构造k-FIU-Tree需要把每一个h-itemsets分解为k-itemsets,(k+1≤h≤M),并与原始的k-itemsets合并生成新的k-itemsets集合,再开始构建k-FIU-Tree。

首先标记该k-FIU-Tree树的根节点root为null,并把每个k-itemset的第一个
项作为root的子节点;然后,依次遍历第2至(k-1)项,标记第m个项作为第(m-1)个节点的子节点,其中2≤m≤(k-1);重复该遍历过程直到进行到第k项,检查
第k项是否作为第(k-1)个节点的子节点,若第k项存在则增加该叶子结点的
count计数值,即该路径上所有节点组成的项目集合的支持度,否则为该项添加一个新的叶子结点作为第(k-1)个节点的叶子节点,并设定count值为1,此时这颗
k-FIU-Tree构造完成;最后通过遍历该k-FIU-Tree各个叶子节点上的count值,选择大于最小支持度的叶子路径上所有项目的集合即可直接获取频繁k项集。

3 基于MapReduce的FIUT算法的实现
由以上FIU-Tree的构造过程可以看出,FIUT算法生成k-itemsets时需要分解所
有的h-itemsets,其中h>k,从而构造k-FIU-Tree挖掘频繁出k项集。

这将使
得构造k-FIU-Tree非常耗时,并且k-FIU-Tree的构建是按k值递减的顺序依次
迭代完成的,这些问题将导致在构建k-FIU-Tree的过程中,k项集的产生依赖于
h项集,只能顺序生成k项集,因此FIUT算法不利于并行挖掘。

针对其在并行挖掘中的不足之处,本节基于MapReduce编程模型,提出一种MR-FIUT算法对其改进,使之能被较好地应用于Hadoop环境下的并行FIM挖掘。

以下是对MR-FIUT算法具体描述:
MR-FIUT算法主要改进在FIUT算法的第二阶段,在这里k-itemsets被直接分解为(k-1)、(k-2),……,2-itemsets而不是顺序分解生成k-itemsets。

通过这个方式,长项集和短项集的生成是相互独立的,即可以并行产生。

基于Hadoop平台的MR-FIUT算法需要经过3轮MapReduce任务迭代,其中各个Map任务能够并行产生k-itemsets,解决了FIUT算法在并行化时的问题,MR-FIUT算法具体设计过程如图2所示。

图2 MR-FIUT算法流程
3.1 第一轮MapReduce迭代
第一个MapReduce用来生成频繁1-项集集合Flist。

首先HDFS把存储在其中的DB划分为若干数据分片Split,Map的输入键值对为 <key=offset,value=Ti>,其中key为事务在数据库中的偏移量,Ti代表分片中的每一条事务;然后每个Map分别读取对应分片,该阶段map的任务是负责计算每个项的支持度生成局部1-项集,输出键值对 <key=item,value=1>, key为项目名称;接着,在shuffle阶段,经过Map操作后产生的每个唯一key的中间键值对会被分别发送到对应的reduce上去执行任务,reduce的工作是把具有相同key的局部1-项集进行合并操作,统计其计数进行输出,输出格式为 <key=item,value=sup>,sup代表该项对应的支持度计数;最后选择大于最小支持度的项目,即可获取全局频繁1-项集集合Flist。

3.2 第二轮MapReduce迭代
第二个MapReduce的任务是用来移除每条事务中的非频繁项生成k-itemsets,
此时需要再次扫描数据库,根据上一步得到的频繁1-项集来删减每条事务中的非
频繁项。

各个Map仍然读取Split作为输入,在第二轮map操作开始前,先将第一轮MapReduce工作生成的频繁1-项集存放于本地内存中;接着执行map函
数移除每条事务中的非频繁项,输出形式为<key=k-itemset,1> 的中间键值对,
其中k-itemset由被删减后的项目个数和项目内容组成;再将中间结果shuffle给相应的Reduce进行处理,Reduce任务统计来自不同节点传递过来的具有相同长度的k-itemsets,进行归后输出键值对形式为<key=k,value=k-itemset+sum>,产生的key代表项目个数,value为项目内容及其个数。

3.3 第三轮MapReduce迭代
第三个MapReduce是MR-FIUT算法的核心。

在该阶段,每个Map任务负责将第二个MapReduce任务产生的k-itemsets 分解成2至(k-1)项集,然后把在DB 中被删减后得到的k-itemsets与被map分解后得到的相同长度的项目集合并,
构建本地k-FIU-Tree。

该步骤中Map将第二个MapReduce产生的<key,value >作为输入,然后执行Map函数。

Map任务在该阶段主要负责3个工作:①分解
k-itemsets;②构造k-FIU-Tree;③挖掘频繁项集。

当集群中所有map任务处理完成之后,产生一组key为项目个数,value值为一颗FIU-Tree的键值对;Reduce通过归并各个Map发送来的相同长度的FIU-Tree,构造出全局k-FIU-Tree,这颗k-FIU-Tree的叶子结点记录了由该叶子结点所在路径上所有节点组成的项目集合的支持度,因此通过检查最终k-FIU-Tree叶子结点的计数值,遍历大于最小支持度的节点路径即可得到频繁项集。

由对第三个MapReduce任务的分析可以看出,在该过程中可以利用多个Map任务独立的分解k-itemsets,各个mapper作业是完全并行的,有效提高了I/O性能;并且FIUT算法无需递归挖掘FIU-Tree即可获得频繁项集,FIU-Tree在被挖掘后会被释放,大大降低了系统的计算和存储开销,因此相比原始的FIUT算法,
MR-FIUT算法可以很好地被运用在海量数据的挖掘之中。

4 系统负载均衡的优化
MR-FIUT算法在第二阶段的分解过程中,没有充分考虑到每个Map任务的分解
代价,当第三个MapReduce任务开始后,任务被分发到各节点,但是每个节点
的计算量不一样,这将导致系统产生负载倾斜的问题,而负载均衡问题是分布式并行计算里的关键性问题[6,7] 。

MR-FIUT算法的第三个MapReduce任务完成k-itemsets的分解过程。

将一个k 项集分解成2至(k-1)项集的代价可表示为
其中,(2<k≤M),所以分解k-itemset的时间复杂度为O(2k)。

可以看出k-itemset中项的个数和它的分解代价成指数关系,当项集长度增大时,其分解代价也会极具增加,而分解代价的大小直接关系着节点负载倾斜的问题,因此MR-FIUT算法中第三个MapReduce的分解代价是影响系统负载倾斜问题的关键因素,关于如何平衡各节点的分解代价对整个系统的影响,是决定算法成功与否重要的一步。

为了平衡Hadoop集群系统中各节点的负载,保证执行效率,本节提出BMR-FIUT算法,定义并行熵的概念用以准确量化系统负载情况;再结合每个节点的计
算量并转化为相应的权值,优先选择候选队列中满足条件的节点进行任务迁移,将任务合理的分配到各节点,解决对负载均衡的优化。

BMR-FIUT算法实现的特点是:在Hadoop集群环境下,通过设计并行熵对系统
负载进行量化,使各节点之间能够根据当前的负载情况自发完成项目迁移调整,精准反映了集群系统的负载情况。

4.1 并行熵介绍
熵的物理意义是表示体系的混乱程度,Shannon曾在信息论中提出了信息熵的理
论解决对信息的量化度量问题,这里对其进行扩展,定义并行熵[8,9] 作为系统的负载均衡度量并运用在集群环境上。

并行熵能够根据各节点总任务计算量的实时情况动态的进行调整,达到负载均衡的目的。

并行熵的基本理论思想:在集群系统中,程序的运行时间主要取决于负载最重节点上的总计算量大小,即该节点上所有任务的负载情况;当并行熵朝着最大熵增的方向迁移时,各个节点的负载趋向于平衡,使负载较重节点和负载过轻节点上的计算量都尽可能达到均衡状态,从而减少程序运行时间;当并行熵达到最大值时,意味着此时集群中各节点计算量一致,程序运行时间最小。

因此在对集群系统做负载均衡策略的过程中,每一次的迁移步骤,都尽可能的取最大熵增的迁移,就能在最大程度上缩短程序运行时间,由此可见并行熵可以准确的度量系统的负载均衡性能。

对Hadoop集群进行负载均衡的优化过程中,项目分解代价是影响节点负载的重要因素,为了保证各个节点的计算量均衡,首先需要量化每个节点的负载大小。

假设Im代表长度为m的项集, Ni(Im) 代表节点i中包含Im的个数,定义Im的负载权值ω(Im) 为2m,其中2m表示分解m项集的时间复杂度。

依据负载权值的定义,节点i上所有m项集的负载Li(Im) 可表示为
Li(Im)=2m×Ni(Im)
(1)
给定X∈I, 其中X代表节点i上的随机项目集,则节点i的负载qi可被表达为
(2)
设定某节点的相对负载为该节点负载与集群系统总负载之比,若数据集被划分至t 个数据节点,相对负载Gi可被定义为
(3)
定义3 在Hadoop集群环境下事务数据库被划分在t个数据节点时,并行熵H(D)定义为
(4)
并行熵的大小与系统数据分布的合理性存在直接联系。

当各节点的负载qi值相等时,这意味着节点之间的计算量一致,此时H(D)达到最大值为1,程序执行时间
最短,系统负载均衡;相反,H(D)越小,表明各节点之间产生较大的计算量差距,导致较差的负载性能,当H(D)为0时,代表计算量将全部集中在一个节点。

因此在对系统进行负载均衡处理时,要尽可能增大H(D) 的值以提高程序运行效率。

据此提出负载均衡策略:①将具有最大qi值节点上的任务向最小qi值的节点进行调整。

②将负载过重的节点上ω(Im) 最大的项集向负载过轻的节点进行调整。

4.2 基于并行熵的负载均衡策略具体设计
本文利用并行熵作为系统的负载均衡度量,决定任务迁移策略。

首先设定并行熵阈值Hth,Hth的值对系统执行效率有很大影响。

当Hth过高时,各节点任务迁移
过于频繁,反而消耗更多处理时间;相反,若Hth过低,系统负载严重不均,降
低执行效率。

各节点上的负载情况可由项目的计算量情况及各节点上所有项目的计算量情况量化出来。

本算法的目标是尽可能的让系统中所有节点的计算量达到平衡状态,使各节点所处理的任务都能在大致时间内完成,减少系统总运行时间。

因此,选择节点负载qi作为负载指标,每一步的迁移工作都尽可能最大提高并行熵的值,当并行熵
增大时,负载较重的节点计算量减少,而集群系统中其它节点的计算量趋于平衡,最终完成负载均衡目标。

据此,提出基于负载均衡的BMR-FIUT算法的具体实现
步骤如下:
(1)当第三个MapReduce工作开始将所有任务分发到各节点后,计算此时系统的
并行熵值H(D)。

当H(D)≥Hth时,系统负载均衡,不需进行数据迁移,算法结束,否则进入步骤(2);
(2)计算集群系统的平均负载
(5)
(3)计算各节点相对平均负载的差值:Δqi=qi-qavg,然后创建队列Qp存放
Δqi>0的节点,并按Δqi值降序排列;同时选取Δqi<0的节点按|Δqi| 值的大小
顺序降序存入队列Qm。

队列Qp和Qm中节点的排列顺序对应第(4)步做迁移工
作时该节点被选择的优先级顺序。

(4)设定待迁移任务的负载阈值为ωmin,当ωmin过小时该任务的迁移对系统负载均衡性能影响不大,反而占用一部分内存空间且多消耗了迁移时间,故对负载权值小于ωmin的任务不做调整。

首先根据队列Qp中的优先级顺序获取位于队列
首端的节点作为待迁移源节点i,选择节点i中负载权值最大的项目,若当前待迁
移项目的负载权值ω(Im)≤Δqi,则对该项目迁移;然后,根据Qm队列中的优先顺序选择ω(Im)≤|Δqj| 的目标节点j,这步操作的原理就是选定Qm队列中|Δqj| 与被迁入的任务负载最接近的节点,在单节点负载不超过集群系统平均负载的前提下,优先朝着最大熵增的方向进行数据迁移;最后将选定的项目集迁入。

(5)更新各节点的负载,返回步骤(1)。

BMR-FIUT算法流程如图3所示。

图3 BMR-FIUT算法流程
5 实验结果与分析
本节通过实验对MR-FIUT算法和基于负载均衡的BMR-FIUT算法的性能进行测
试和分析。

实验在Hadoop集群环境下共配置7个节点,采用主从式架构,包括
1个NameNode,6个DataNode。

每个节点配置Intel core i5-2450M CPU
2.50 GHz,4GB内存,并运行在win7操作系统上,安装Hadoop 2.6.2和JDK 1.7.0_25,算法采用Java语言实现。

实验数据集选取Frequent Itemset Mining Data Repository[10] 里的T1014D100K.dat,该数据集大小为
3.84 MB,包含
10万条记录,有870个属性,每个事物的平均长度为10。

由于实验结果具有一
定的不稳定性,因此每个实验的最终结果均为5次实验结果的平均值,其中设定
的最小支持度为5%。

5.1 算法加速比比较
加速比可以反映集群系统的并行化性能,用SpeedUp表示,当集群中节点数目为n时SpeedUp可表示为
SpeedUp(n)=t1/tn
(6)
其中,t1指算法在单节点上的运行时间,tn指算法在多节点上的运行时间。

为了
测试本文所提出的MR-FIUT算法的有效性,实验通过将PFP-Growth算法[11]
与MR-FIUT算法做比较,得出两种算法在不同节点个数下的加速比如图4所示。

图4 加速比对比
图4显示,随着集群中数据节点个数的增加,两种算法的加速比都有所提高。


是因为MR-FIUT算法和PFP-Growth算法都基于MapReduce编程模型进行了
合理的map和reduce划分,避免递归构造条件FP Tree所产生的巨大时空消耗,并且MR-FIUT算法较PFP算法在纵向上的间距越来越大,这表明MR-FIUT算法的并行化是有效的,且具有更高的挖掘效率。

但是随着节点数的不断增加,加速比增长略微减慢,这个趋势的大致原因可以归结为:①节点个数的增多使得每个节点需要处理的任务数量减少,但每个节点需从HDFS加载项目集,会消耗一定时间;
②节点个数过多会导致shuffle代价急剧增加,增大了map和reduce之间的通
信开销。

5.2 程序执行时间比较
图5显示了不同节点数下BMR-FIUT算法和PFP-Growth算法的程序执行时间比较。

可以看出,随着集群节点数的增加,两种并行算法的执行效率都有所提高,并且当执行任务的节点个数相同时,BMR-FIUT算法要优于PFP-Growth算法,这说明了本文提出负载均衡策略在一定程度上提高了并行运算效率。

图5 运行时间比较
由图5可以看出在BMR-FIUT算法中,当只有一个数据节点时,系统负载集中在一个节点上,单节点负载过重,导致程序执行效率低下;随着节点数的增加,数据被合理的分配到各节点上,系统负载均衡,系统运行时间减少;但当节点个数过多时,各节点间频繁进行数据迁移的开销大于负载均衡下时间减少的程度,反而徒增运行代价。

PFP-Growth算法通过对频繁1-项集进行分组划分原始事务数据库,然后在各个数据节点上独立执行相应组内的FP Tree挖掘任务,达到了并行挖掘的目的。

但是在对Flist进行分组的过程中没有考虑每个分组中计算量的问题,这将导致系统负载不均现象的产生,因此算法执行效率不高。

而BMR-FIUT算法,以均衡系统负载作为目标,尽可能的增大并行熵的值,每一步都取最大熵增的迁移,避免了盲目进行迁移而消耗通信代价的问题,因此在执行效率上表现优于PFP-Growth算法。

6 结束语
本文在Hadoop平台下首先提出基于MapReduce编程模型的并行FIM算法MR-FIUT,该算法充分利用了FIU Tree结构可直接遍历其叶子结点生成频繁项集的优点,避免递归构建条件FP Tree,极大降低了算法的时空消耗和I/O负载。

测试结果验证了MR-FIUT算法在并行挖掘中的有效性,能够获得较好的加速比;然后,就集群环境下系统的负载均衡问题提出了BMR-FIUT算法,利用并行熵动态
调节各节点的负载,更准确反映系统的负载均衡情况。

实验结果表明BMR-FIUT 算法能够在Hadoop集群各节点负载均衡的基础上高效地挖掘频繁项集,提高执行效率,从而解决了FIUT算法在大数据并行挖掘中存在的问题。

参考文献:
【相关文献】
[1] DU Jiang,ZHANG Zheng,ZHANG Jiexin,et al.Survey of MapReduce parallel programming model[J].Computer Science,2015,42(S1):537-541(in Chinese).[杜江,张铮,张杰鑫,等.MapReduce并行编程模型研究综述[J].计算机科学,2015,42(S1):537-541.]
[2] LIU Mulin,ZHU Qinghua.Research on association rules mining algorithm based on hadoop-taking Apriori as an example[J].Computer Technology and
Development,2016,26(7):1-5(in Chinese).[刘木林,朱庆华.基于Hadoop的关联规则挖掘算法研究—以Apriori算法为例[J].计算机技术与发展,2016,26(7):1-5.]
[3] CHEN Xingshu,ZHANG Shuai,TONG Hao,et al.The algorithm of FP-Growth based on boolean matrix and MapReduce[J].Journal of South China University of
Technology(Natural Science Edition),2014,42(1):135-141(in Chinese).[陈兴蜀,张帅,童浩,等.基于布尔矩阵和MapReduce的FP-Growth算法[J].华南理工大学学报(自然科学
版),2014,42(1):135-141.]
[4] GUO Jinwei,PI Jianyong.Implementation of paralleled SON algorithm based on FP-growth[J].Microcomputer & Its Applications,2014,33(8):60-63(in Chinese).[郭进伟,皮建勇.一种基于FP-growth的并行SON算法的实现[J].微型机与应用,2014,33(8):60-63.]
[5] Tsay Yuh-Jiuan,Hsu Tain-Jung,Yu Jing-Rung.FIUT:A new method for mining frequent itemsets[J].Information Sciences,2009,179(11):1724-1737.
[6] ZHU Zhixiang,XU Huihui,WANG Xiong.Elastic load balancing solution based on cloud computing[J].Journal of Xi’an University of Posts and Telecommunications,2013,18(6):43-47(in Chinese).[朱志祥,许辉辉,王雄.基于云计算的弹性负载均衡方案[J].西安邮电大学学
报,2013,18(6):43-47.]
[7] YE Feng,WANG Zhijian,XU Xinkun,et al.Research of a load balancing mechanism of cloud based on QoS[J].Journal of Chinese Computer Systems,2012,33(10):2147-2152(in Chinese).[叶枫,王志坚,徐新坤,等.一种基于QoS的云负载均衡机制的研究[J].小型微型计算机系统,2012,33(10):2147-2152.]
[8] NIE Shiqing,ZHONG Yong,CUI Mengtian.Hierarchical load balancing algorithm based on load entropy[J].Journal of Computer Applications,2016,36(S2):33-36(in Chinese).[聂世青,钟勇,崔梦天.一种基于负载熵的层次负载均衡算法[J].计算机应用,2016,36(S2):33-36.]
[9] Dai Jianhua,Tian Haowei.Entropy measures and granularity measures for set-valued information systems[J].Information Sciences,2013,240(11):72-82.
[10] Frequent itemset mining dataset repository[EB/OL].[2016-10-
18].http://fimi.ua.ac.be/data/,2016.
[11] Li H,Wang Y,Zhang D,et al.PFP:Parallel FP-growth for query recommendation[J].ACM Conference on Recommender Systems,2008,39(5):107-114.。

相关文档
最新文档