基于MapReduce 的高维数据频繁项集挖掘

2022-03-12 05:55赵欣灿毛伊敏
计算机工程 2022年3期
关键词:粒化高维项集

赵欣灿,朱 云,毛伊敏

(1.江西理工大学 理学院,江西 赣州 341000;2.江西理工大学 信息工程学院,江西 赣州 341000)

0 概述

关联规则挖掘技术[1]是数据挖掘领域的重要分支之一,其旨在找出各数据项之间的相互关系,被广泛应用于社交网络、精准营销等领域。然而,随着动态大数据的发展,数据维数逐渐升高。医疗数据、全球气候数据以及多媒体数据等均属于高维数据,且此类数据具有数据量大、数据特征丰富以及数据稀疏等特性[2]。因此,大部分数据挖掘技术已经从单目标分析扩展为多目标融合分析[3]。采用高效的方式准确捕捉高维复杂数据的特征属性,以及解决节点分布的负载均衡化问题,并有效提高频繁项集的紧凑程度[4]成为研究热点。

本文提出基于MapReduce 的高维数据频繁项集挖掘算法PARDG-MR。通过设计基于高维数据维度粒化以及节点负载均衡的数据预处理策略,并对复杂的高维数据进行特征属性捕捉,构建基于本地PJPFP-Tree 树存储结构的算法步骤并行化方法。在此基础上,提出基于剪枝前缀推论(Pruning Prefix Lemma,PPL)的整合节点算法,从而提高算法整体运行速率,且减少算法执行时间和内存。

1 相关工作

高维数据预处理过程包括以特征提取和特征选择[5]两种方式,在有效消除无关、冗余特征的同时也减小了特征挖掘空间,但是该方法忽略了数据的敏感性以及数据特征之间的关联性。为获得更优的数据特征属性挖掘结果,研究人员对高维数据进行维数约简。文献[6]提出基于图的大数据实体识别算法,并将高维数据关系映射在图中,其中边代表某些数据项间的关系,每条边的权值代表项间关联的程度。该方法避免了重复计算数据项维度属性间的关联程度,并在高维数据的约简[7]方面取得了相应进展。但是此类方法在数据集中仍存在噪声数据,其是影响数据特征捕捉精确度的关键因素,并且高维数据分布在对应的低维空间中,也会缩短噪声数据与可用特征数据之间的距离,从而降低挖掘数据的价值。因此,在研究高维数据特征约简过程中,粒计算理论[8]应运而生,其将输入的原始高维数据集分割成包含多个信息粒的小数据集,同时通过粒计算理论对大规模高维数据进行预处理。粒计算理论能够保证数据价值,且精准捕捉数据特征,从而降低数据复杂度。文献[9]提出邻域知识粒度概念用于评估高维数据特征的粒化能力,并将邻域知识粒度与邻域依赖度相结合作为启发式函数,用于数据属性约简。此外,文献[10]针对高维数据系统特征属性的粒度选择问题,分析了信息粒与粒度划分概念,准确地反映决策系统中数据维度粗糙化程度,从而弥补了在大数据环境中高维数据粒化时仅基于论域属性进行约简的不足。文献[11]提出通过对解析式模拟与信息粒进行替换,以定义邻域互补熵、邻域互补条件熵,进而得到非单调性高维数据属性粒化和非单调性高维数据属性约简。因此,通过粒计算理论对高维数据进行预处理,准确捕捉其数据特征成为挖掘高维数据的研究热点。

高维数据通过粒化降维能在一定程度上提高捕捉数据特征的精确度,但是在大数据环境中数据节点的负载均衡化也一直是研究人员关注的课题。文献[12]提出采用根据节点频繁度不同划分数据的负载均衡策略,通过估计节点的任务数对其进行平均分组,以解决数据倾斜、负载过重的问题。文献[13]提出TBLB 算法,该算法结合节点能量和节点度,以形成根据路径性能评价因子进行路径选择的负载平衡树,该平衡树能够有效地均衡节点负载,降低节点能量消耗。目前,大部分负载均衡方法[14]在分组过程中采用贪心策略,利用计算量模型公式来预估频繁项产生的负载量,将负载量大的项放在负载量总和最小的组以实现负载均衡,然而,计算量模型易造成节点在分布过程中所消耗的时间差异,使得算法的整体效率降低。因此,粒化后的高维数据特征集可以实现分组结果的负载均衡化,成为并行化计算思想发展过程中的主要研究方向。

大数据环境中的FP-growth 算法[15]在并行频繁项集的挖掘执行过程中,数据的频繁交互需要消耗大量资源,使得内存负载压力较大。为此,研究人员尝试将MapReduce 数据处理模型与FP-growth 挖掘算法相融合,提出了PFP-growth[16]算法。该算法在执行针对频繁项集的挖掘行为时,每个计算节点无需互相等待或进行节点间的数据交换,均为相互独立的计算节点,从而提高频繁项集在并行挖掘过程中的效率。文献[17]提出MRPrePost 算法,在第一次MapReduce 任务执行结束后得到频繁1-项集的F-list,并生成PPC-Tree 树,对分布在其上的多个计算节点进行频繁项集挖掘,且该过程不需要将PPCTree 树保存在内存中,既提高了项集支持度的计算效率,又减少了算法在时间与空间方面的消耗。文献[18]提出仅包含单向频繁模式的UFP-Tree 树,并引入被约束子树,分别通过递归和非递归方法对指向相同端点和不同端点的路径进行频繁项集挖掘。以上研究旨在减少数据间交互次数且避免消耗过多资源。因此,如何减少因数据频繁交互带来的影响逐渐成为研究热点。

在大数据环境下,数据挖掘效率的影响因素不仅包括数据维度及数据结构,还包括频繁项集紧凑化过程中的算法步骤。近年来,为简化频繁项集的紧凑化步骤,文献[19]提出深度路径优先搜索和长度超集优先检验的改进方法。该方法通过深度优先的路径递归搜索,连续完成最大频繁候选项集的挖掘,并根据路径长度对挖掘结果进行排序,并检验所挖掘的频繁项集超集,以减少候选项集的数量和挖掘次数,从而解决在数据量大、维度高时挖掘效率低的问题。文献[20]提出2FP-Forest 算法,该算法通过第一次完全扫描数据集得到全部1-项集和2-项集的支持度,同时充分利用2-项集的剪枝作用,使得所构建树的深度、宽度均比FP-Tree 树少。此类算法通过生成最大频繁候选项集以及缩短频繁模式树的构建时间,提高频繁项集的紧凑化程度,从而提升整体的挖掘效率,但是仍无法避免频繁项集在剪枝过程中的冗余搜索和无效计算。因此,如何在粒化后的高维数据特征集中最大程度提高频繁项集紧凑化程度仍是重要问题。

2 相关概念

定义1(N-list[21-22])给出任意2 个(k-1)-项集XA和XB,使其均为具有相同前缀的频繁项集,故对应的N-list 结构分别表示为:

k-项集XAB的N-list 定义如下:

对于任 意(x1p,y1p,z1p) ∈N-list(XA),1 ≤p≤m,(x2q,y2q,z2q) ∈N-list(XB),1 ≤q≤n,若满足条件x1py2p,则将(x1p,y1p,z2q)加入到XAB的N-list 中,得到初始N-list。

定义2(JPFP-Tree 树[23])一种树形数据结构,树中节点由节点名称(Item-name)、节点计数(Count)、子节点列表(Children-list)组成。

定义3(空间数据库[24-25])由空间关系数据与对象关系数据集构成,实现空间数据的数据库化。空间数据库的设计过程包括数据库的逻辑结构设计以及空间数据的集成存储。其中,数据库的逻辑结构设计采用经典的实体-联系(Entity-Relation)图描述现实地理世界,各图层间的路径数与数据属性特征数成正比,具体设计如图1 所示。

图1 图层间实体-联系模型Fig.1 Entity-relation model among layers

定义4(剪枝性质[26])如果项集X={x1,x2,…,xk}是频繁的,∀α∈X∩β∈X∩α≠β,则2-项集{α,β}一定频繁。相反,∃α∈X∩β∈X∩α≠β,如果2-项集{α,β}不是频繁项集,则项集X也一定非频繁。

3 PARDG-MR 算法

本文提出的PARDG-MR 算法的基本原理如下:

1)提出DGPL 策略对数据进行预处理,使得复杂的高维数据完成特征属性的稳定捕捉,该方法首先提出基于属性精确度计算(Attribute Accuracy Calculation,AAC)方法和维度粒大小(Dimensional Grain Size,DGS)计算的维度粒化算法(Dimensional Granulation Algorithm,DGA),其次根据各特征属性的前缀长度,提出在粒化后的数据集中基于负载估计(Load Estimation,LE)策略的负载均衡算法(GPL),提高数据的特征属性捕捉精确度,从而解决划分中节点负载不均衡的问题。

2)在数据划分完成的基础上,设计了本地PJPFP-Tree 树存储结构,并构建算法步骤并行化策略(PARM)来减少数据交互频度,降低磁盘I/O 次数,减缓负载压力。

3)针对候选剪枝策略,提出基于剪枝前缀推论(Pruning Prefix Lemma,PPL)的整合节点剪枝算法(PJPFP),该策略将本地生成的PJPFP-Tree 树中的频繁2-项集挖掘结果作为完全剪枝的剪枝条件,使得PJPFP-Tree 中不存在非潜在候选3-项集,从而增强频繁项集紧凑化程度,实现算法整体速率的提高。

3.1 DGPL 策略

大数据环境下的高维数据挖掘算法在进行数据预处理时,存在以下3 个问题:

1)在数据属性特征捕获过程中属性划分通常仅基于部分相容的数据属性,而忽略其他数据造成数据的捕获结果不具备全局性。

2)在数据划分过程中,无法消除噪声数据,不能提取单个维度的属性,使得研究不具有针对性。

3)分类后的数据集无法将数据均匀分组至各数据节点,造成数据倾斜、负载不均衡,使得算法执行效率低。针对以上问题,本文先对数据集进行特征维度属性粒化处理,提出DGA。针对DGA 算法处理后的数据集,提出基于LE 的GPL 算法,以实现在数据划分过程中的负载均衡化。

3.1.1 DGA 算法

DGA 算法主要是进行高维数据的预处理,通过将数据特征属性维度粒化,以准确地捕捉此类高维数据的特征,其主要分为2 个阶段:

1)在高维复杂数据集中,将属性精确度计算方法AAC 作为设置维度粒大小的参数,充分挖掘数据的质量,以避免产生过多噪音数据。

定义5(AAC 方法)若数据空间中第i维度的数据点个数为N,均方差为Si,均值为μ,属性精确度为di,则AAC 的计算如式(1)所示:

2)基于AAC 方法根据维度相关性以及总体方差定义的原理,提出维度粒大小计算方法DGS。该策略定义如下。

定义6(DGS 方法)若数据空间中的总维度数为D,各维度的属性精度值为di,本文选取di的均值γ作为维度粒大小的选取参数,故维度粒大小的计算如式(2)所示:

证明因为,其中0

以上2 个阶段实现了用最低的成本完成大量规模数据集粒化的目标,且相比单一的权重选择算法[27]能较好地捕获特征维度间的相关性。DGA 策略在一定程度上提高了算法的粒化效率,同时减少了数据集的维度数量,从而确保后续挖掘算法的可行性。因此,式(1)和式(2)作为维度粒大小的推理计算公式是合理的。

DGA 算法实例:设论域U={x1,x2,…,x6}表示待处理的原始数据集,其中,A={a1,a2,a3,a4}为论域U上的数据属性,将属性评价分为1、2、3、4、5 类,分别表示优、良、中、合格、差,如表1 所示。

表1 原始数据集信息Table 1 Information of original dataset

对于∀ai∈A,属性a1包含的维度粒为:A1={(a1,1),(x1,x4,x6)},{(a1,2),(x2,x5)},{(a1,3),(x3)}。属性a2包含的维度粒为:A2={(a2,1),(x1,x3,x5,x6)},。属性a3包含的维度粒为A3={(a3,1),(x1,x2,x3,x4,x5,x6)}。属性a4包含的维度粒为A4={(a4,2),(x2,x3,x5)},{(a4,3),(x4)},{(a4,4),(x1,x6)}。因此,可得数据集中的数据点个数N=6,属性a1、a2、a3、a4包含的维度粒均值分别为n1=2,n2=3,n3=6,n4=2,μ=3.25,其均方 差Si分别为1.25、0.25、1.66、1.25,可得属性精确度di分别为0.38、0.08、0.51、0.38。由定义5 可知,属性精度均值γ=0.337 5,总维度数D=5,维度粒大小P≈2。因此,经计算后得到的属性{1}、{2}为数据特征属性维度粒化结果。

3.1.2 GPL 算法

通过DGA 算法完成特征属性维度的精确捕捉后,能够进一步提高分组效率。GPL 算法在粒化后的数据集中执行一次MapReduce 任务。基于DGA算法所得的粒大小,本文根据属性的前缀长度设计了负载估计策略LE,用于估算该粒所对应的结构路径长度,并进行负载均衡化分组,以确保每组分配到相同的负载量,从而实现整体的负载均衡,负载估计策略LE 定义如下。

定义7(负载估计策略LE)已知k为节点在Nlist 中的位置,i为维度粒大小的取整结果,则该节点路径长度的计算如式(3)所示:

证明对于频繁项item 而言,假设其在N-list 中的位置为k,其中最差的结果是item 前任意k-1 项的组合在该PJPFP-Tree 树中均有相应的路径,该路径中含有item 项,且此时的路径最多有2k-1条,空间数据库中路径数与维度数成正比,因此,式(3)作为路径长度估计函数是合理的。

DGPL 策略的原理是根据DGA 算法实现高维特征数据的维度粒化,得到属性精确度及数据可分析性均较高的特征属性捕捉结果,从而克服高维数据挖掘算法的局限性。针对粒化后的空间数据集,DGPL 策略通过GPL 算法对频繁1-项集进行均匀分组,生成P-list 列表,实现了节点的均匀分布。

算法1DGPL 策略

3.2 PARM 策略

为进一步减少数据库的扫描次数和不必要的计算消耗,本文提出PARM 策略以生成本地模式基表树,从而缓解因数据交互次数增多带来的负载压力。虽然PWARM 算法[28]省去了FP-Tree 树和Head 表的构建过程,但在Reduce 阶段仍需统计Map 阶段输出的项集加权支持度。该算法因磁盘I/O 次数的增加导致计算速度缓慢,从而大幅降低挖掘效率。此外,基于给定项目属性权重的方法,在项目集不断更新过程中无法衡量项目权值,因此,在数据集研究过程中降低挖掘精度且增加了数据集的维护代价。PARM 策略在构造完成P-list 列表后,映射存储该列表中的频繁1-项集至本地,再正常调用MapReduce过程。

根 据FP-growth 原 理,PARM 策略对F-list 列表中的每个项集进行映射,映射规则为:设频繁1-项集x1={a},x2={d},x3={b},x4={e},x5={c},其支持度分别为7、8、5、5、4。由于列表会重复存储大量的不频繁项,并且读取一个完整事务时需遍历整个列表才能得到目标项集,这样会占用大量的存储空间且消耗大量的时间。因此,根据FP-growth 原理,本文设计类似FP-Tree 的树形数据结构PJPFP-Tree 树。该树在Reduce 阶段通过与P-list 列表映射构造得出,此步骤避免统计Map 阶段输出集合的过程,并相对提高算法的性能。

定义8(PJPFP-Tree 树)是具有N(N≥0)个节点的有限集合,当N=0 时,称为空树。在任意一棵非空树中应满足以下2 个条件:1)有且仅有一个名为null的节点作为根;2)当N>1 时,其余每1 个节点均由频繁1-项集节点名称(Frequent 1-Itemset)和该节点支持度两部分组成。

该树作为一种逻辑结构,同时也是一种M(M=2)层的分层结构,具有以下2 个特点:1)该树的根节点没有前驱节点;2)树中除根节点外的其他所有节点仅以根节点为其前驱节点,且此类节点均没有后继节点。

生成PJPFP-Tree 树的目的是在本地磁盘中加快频繁1-项集的合并速度,使其作为挖掘局部2-项集的本地模式基,同时大规模减少数据交互频度,从而缓解负载压力。相比PWARM 算法的挖掘过程,PARDG-MR 算法中的并行化实现仅基于频繁项集挖掘过程中的Reduce 阶段,根据分组完成后的Plist 列表及在频繁项集生成过程中,该阶段构造得到本地频繁模式基PJPFP-Tree 树,并有效利用分组完成后的数据,避免内存溢出。该过程不存在冗余步骤,为大数据环境下高维数据的挖掘应用提供了优势。

3.3 PJPFP 策略

在大数据背景下生成的FP-Tree 树规模较大,导致大部分算法忽略了在FP-Tree 树中进行项集剪枝时带来的内存耗费,从而造成不完全剪枝,且频繁项集紧凑化程度低。因此,在利用PARM 策略构造完成本地PJPFP-Tree 树后,本节提出PJPFP 策略,将PJPFP-Tree 树中的频繁2-项集结果作为挖掘局部2-项集的本地模式基,该策略既考虑了减少再次扫描数据集的时间成本,又使得后续生成的项集中不存在非潜在候选3-项集。

PJPFP 策略主要分为2 个步骤:1)提出剪枝前缀推论PPL,同时利用PPL 删除可能产生频繁2-项集的频繁1-项集,并在后续剪枝过程中将该推论作为(k-1)项集阶段的剪枝标准,进而达到后续被整合的节点中不包含非潜在候选k-项集的目的;2)基于上述挖掘结果,根据频繁模式的支持度对其进行降序排列。

定义9(剪枝前缀推论PPL)如果项集{α,β,γ}为非频繁项集,则以其为前缀的所有项集均为非频繁项集。

证明根据剪枝定理可知,∃α∈X∩β∈X∩α≠β,如果2-项集{α,β}不是频繁项集,则项集X也一定是非频繁项集,即若{α,β,γ}为非频繁项集,则以项集{α,β,γ}为前缀的子集或超集,均是非频繁项集。

为更清晰地描述该推论,本节给出数据集I,1-项集和2-项集的支持度如表2 所示。

表2 1-项集和2-项集的支持度Table 2 Support degree of 1-item set and 2-item set

根据表1 的数据集统计结果,令数据集I 的支持度min_sup=3。根据本节提出的剪枝推论PPL 可推论得出应同时删除项目F,其他项目按降序排列,可得结果I′={D,A,B,E,C}。执行过程代码如下:

3.4 PARDG-MR 算法

PARDG-MR 算法主要分为以下4 个步骤。

步骤1输入原始数据,通过式(1)和式(2)确定维度粒的大小,完成数据特征属性的精确捕捉。

步骤2执行MapReduce 任务,根据式(3)计算属性前缀长度,实现负载均衡分组,生成包含频繁1-项集的P-list 列表。

步骤3通过PARM 方法将P-list 列表中的频繁1-项集作为PJPFP-Tree 树的频繁2-项集模式基。

步骤4利用PJPFP 策略实现后续频繁项集的紧凑化,从而完成全局频繁项集的挖掘。

3.5 算法的复杂度分析

3.5.1 时间复杂度分析

PARDG-MR 算法由频繁1-项集的均匀分组、生成本地频繁模式基PJPFP-Tree 树和频繁项集的并行挖掘过程3 个部分组成,因此将本文算法3 个阶段的时间复杂度分别记为和。

在对高维数据进行特征属性捕捉及获得频繁1-项集P-list 的过程中,本文算法需要获得各个记录的数据项中每个维度的属性值,例如每条项集包含的维度数是N,记录数是M,即在每条项集维度属性值获取过程中的时间复杂度为:

在对频繁1-项集进行均匀分组,生成本地频繁模式基PJPFP-Tree 树时,该步骤仅需在本地完成即可。因此,假设P-list 的长度为P,目标分组产生的数量为N,则该阶段的时间复杂度为:

在频繁项集的并行挖掘过程中,时间复杂度的计算主要包含同一前缀的频繁(k-1)-项集合并成频繁k-项集的过程。假设频繁1-项集P-list={I1,I2,…,In},以项Ii作为结尾的频繁(k-1)-项集的结构长度为Li,则其时间复杂度为:

因此,PARDG-MR 算法的时间复杂度为:

在PWARM 算法中,第一阶段的时间复杂度基本一致,但在后续分组过程中需要多次扫描数据库,依次比较列表间的元素,可得其时间复杂度为:

3.5.2 空间复杂度分析

PARDG-MR 算法的空间复杂度是通过计算频繁项集、P-list 列表和频繁模式基树存储所需空间的总和。其中,采用模糊属性维度粒化方法使得各个节点的任务量基本相同,使得频繁项集列表结构规模大致相似。假设每个分组结果中平均有gk个频繁k-项集,其中每个频繁k-项集均占b1Byte,故频繁k-项集P-list的长度均值为Lk。频繁k-项集的每个P-list结构占b2Byte,因此P-list 结构的空间复杂度为,然而模式基树存储所需要的空间只由频繁1-项集决定,其空间复杂度为O(b1×Lk!),则PARDG-MR 算法的空间复杂度为:

PWARM 算法在构建加权FP-Tree 树时,通常会导致每组节点间存在不均衡负载的问题,且在算法的复杂度评估过程中一般选取最差的结果作为衡量算法复杂度的指标。因此假设分组结果中节点最多有gmax个频繁k-项集,则PWARM 算法的空间复杂度为:

在大数据背景中,加权FP-Tree 树的构建远大于P-list 列表和模式基树所占的存储空间,因此,PARDG-MR 算法的空间复杂度小于PWARM 算法。

4 实验与结果分析

4.1 实验环境

本文实验硬件方面包含4 个节点,其中1 个主节点,3 个辅助节点。4 个节点的CPU 来自AMD Ryzen 7,其中CPU 包含8 个处理单元,内存均是16 GB。实验采用的4 个计算节点都属于同一局域网,均由200 Mb/s 的以太网互相连接。在软件方面,计算节点安装的均是2.7.4 版本的Hadoop 以及1.8.0版本的JDK,其所用的操作系统是Ubuntu 16.04 版本。各节点的配置如表3 所示。

表3 实验中各节点的基础配置Table 3 Basis configuration of each node in the experiment

4.2 实验数据集

PARDG-MR 算法使用的3 个实验数据集均来自标准数据库,分别为Gisette 数据集、NDC 数据集和Webdocs 数据集,数据集信息如表4 所示。其中Gisette 数据集中包含手写数字识别问题的数据,该数据集样本数量为6 000,其特征数为5 000,具有数据量小、特征维度大的特点;NDC 数据集中均为正态分布集群数据,该数据集样本容量为100 000,维度为32,具有数据量大、特征维度适中的特点,具有较强的代表性;Webdocs数据集中包含1 692 082 条Web 文档数据,每条数据包含5 267 656 条不同属性,是一组数据量大、特征维度较大的数据集合。

表4 实验数据集信息Table 4 Information of experimental datasets

4.3 评价指标

为评估PARDG-MR 算法的运算效率,本文采用加速比作为算法性能的衡量指标。加速比[29]是指在相同任务量的情况下,使用单一处理器进行运算与使用多个处理器运算所消耗时间的比值。加速比较大,则说明算法在并行计算过程中所消耗的时间越少,挖掘效率越高。

4.4 PARDG-MR 算法可行性分析

本节通过对比算法的加速比,验证PARDG-MR 算法挖掘执行的可行性。本文分别选取最小支持度阈值为1 000、3 000 和5 000,在不同的支持度阈值下将PARDG-MR算法分别应用在数据集上,并单独执行15次,获得15次结果的平均值。在不同数据集上PARDG-MR算法的加速比对比如图2 所示。

图2 在不同数据集上PARDG-MR 算法的加速比对比Fig.2 Acceleration rate comparison of PARDG-MR algorithm on different datasets

从图2 可以看出,在支持度不小于3 000 的情况中,PARDG-MR 算法在数据量大、维度数高的数据集环境上执行时,会产生较高的加速比;相反,在类似NDC 的小数据集中执行时,其加速比增量趋于平稳,而在Webdocs 的大规模数据集上执行时,随着节点数量的增加,加速比呈上升趋势。当支持度值为5 000 时,PARDG-MR 算法在同一数据集各节点的加速比相较于该数据集中前一节点的加速比分别提升了0.91 和0.99,其原因是在数据量较小、数据维度较低时,现有的数据量不能将集群处理的数据量最大化,此时将数据划分至各节点反而会增大时间开销。然而在大数据环境下,算法优化的关键在于能够完成数据集有效降维以及频繁项集准确合并,在一定程度上能够减少算法在数据集中的扫描次数,并提高算法整体的挖掘性能。在大规模高维度数据集上,PARDG-MR算法的挖掘加速比差距接近最大值1,说明该算法具有较强的全局挖掘潜力。实验结果表明,PARDG-MR 算法能够适用于大数据背景中高维数据频繁项集的挖掘。

4.5 挖掘性能对比

本文分别在3 个实验数据集上进行多次对比实验,在算法挖掘过程中将其与PWARM、PFP-growth、MRPrePost 算法的运行时间分别进行对比。

为验证PARDG-MR 算法的有效性,本文分别在Webdocs、Gisette、NDC 这3 个数据集上将PARDGMR、PWARM、PFP-growth、MRPrePost 算法的运行时间进行对比,如图3 所示。在独立运行15 次后对其平均值进行分析,通过对比运行时间,评估PARDG-MR 算法的性能。

从图3 可以看出,相比PFP-growth 和PWARM算法,PARDG-MR 算法在3 个数据集上的整体执行时间均有不同程度的减少,其性能表现最佳。在NDC 数据集上PARDG-MR 算法的运行时间下降幅度最大,相比Webdocs 数据集和Gisette 数据集,其运行时间分别下降了20%和64%。在Gisette 数据集上PARDG-MR 算法的运行时间下降幅度持续稳定,保持为6%。相比PWARM 算法在NDC 数据集中3 种支持度下的执行时间,PARDG-MR 算法分别减少了28%、24%和38%。相比PFP-growth 算法在Gisette 数据集中3 种支持度下的执行时间,PARDG-MR 算法分别减少了28%、17%、15%。执行时间减少的原因在于PARDG-MR 算法在进行频繁项集挖掘的分组过程中先进行了负载均衡化,并且在构建频繁模式基树时,将冗长的项集结构通过合并方法转化为辨识度较高的树结构,从而大幅缩短了运算时间。PWARM 算法在获得频繁项集的过程中首先生成了加权FP-tree 树,同时生成加权节点,该过程消耗了大部分时间;而PFP-growth 算法在生成频繁项集的过程中需要多次扫描数据集,通过递归的形式构建频繁模式树,从而产生大量的计算开销。由于PARDG-MR 算法的运行时间在NDC 数据集上的下降幅度最大,该算法对于数据量大、维度高的数据适应能力最强,其在降低数据维度规模的同时利用频繁模式基结构加速节点的合并,避免了无效计算,在一定程度上提高了算法的挖掘执行效率,且降低了算法的运行时间。

图3 不同算法的执行时间对比Fig.3 Running time comparison among different algorithms

5 结束语

本文提出基于维度粒化的并行挖掘算法。通过设计DGPL 策略对高维数据进行预处理,以解决高维数据特征属性捕捉困难以及节点负载不均匀的问题。为进一步提升运行效率,提出PARM 策略,在本地映射频繁1-项集列表上构建生成本地PJPFP-Tree树,以加快节点合并速度、减少数据交互频度并降低负载压力。在此基础上,将频繁2-项集作为完全剪枝的剪枝条件,构建PJPFP 策略,从而增强频繁项集紧凑化程度,同时降低内存消耗。在Webdocs、NDC、Gisette 3 个数据集上的实验结果验证了PARDG-MR 算法的有效性,相比PFP-growth、PWARM 等算法,PARDG-MR 算法的挖掘效果更佳,能够提高挖掘效率。后续将利用维度间的相关性保留用户更感兴趣的关联规则信息,以提高数据挖掘结果的实用性。

猜你喜欢
粒化高维项集
水稻丸粒化种子直播方法研究
基于共现结构的频繁高效用项集挖掘算法
基于相关子空间的高维离群数据检测算法
我国中药材种子丸粒化研究进展△
双冗余网络高维离散数据特征检测方法研究
高丹草种子丸粒化配方的筛选
基于深度学习的高维稀疏数据组合推荐算法
琯溪蜜柚汁胞粒化影响因素及防控技术综述
基于矩阵相乘的Apriori改进算法
高维洲作品欣赏