CN103914528B - 一种关联分析算法的并行化方法 - Google Patents

一种关联分析算法的并行化方法 Download PDF

Info

Publication number
CN103914528B
CN103914528B CN201410124334.XA CN201410124334A CN103914528B CN 103914528 B CN103914528 B CN 103914528B CN 201410124334 A CN201410124334 A CN 201410124334A CN 103914528 B CN103914528 B CN 103914528B
Authority
CN
China
Prior art keywords
frequent
item
node
collection
support
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410124334.XA
Other languages
English (en)
Other versions
CN103914528A (zh
Inventor
张琳
邵天昊
王汝传
韩志杰
付雄
季木
季一木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201410124334.XA priority Critical patent/CN103914528B/zh
Publication of CN103914528A publication Critical patent/CN103914528A/zh
Application granted granted Critical
Publication of CN103914528B publication Critical patent/CN103914528B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种关联分析算法的并行化方法是针对一种经典的关联规则分析算法Apriori不能很好适应并行化的缺陷,设计了一种新的并行化方案。通过主控节点将计算任务进行分块,分配并分发给各个子计算节点。由各计算节点并行计算筛选频繁集,最后合并节点并返回结果统计,生成频繁集。再次分发频繁集,由各节点生成规则。由于每个计算节点仅处理一部分计算任务,解决了海量数据无法由单机读入内存进行处理和处理速度过慢的问题;且多个节点并行参与处理,有效提高了处理效率;并且对计算过程中的节点间的同步依赖、网络通讯负担过重、I/O操作过于频繁做了相应的改进,提高了数据库扫描和计算的速度。

Description

一种关联分析算法的并行化方法
技术领域
本发明是针对一种经典的关联规则分析算法Apriori不能很好适应并行化的缺陷,设计了一种新的并行化方法,减少了节点间的同步依赖和网络通讯负担,提高了数据库扫描和计算的速度。属于分布式计算和云计算领域。
背景技术
云计算(Cloud Computing)是一种新兴的商业计算模型,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务,它是数据管理技术不断演进的结果。在上世纪末,分布式处理、并行处理和网格计算就已相当成熟,它们是云计算发展的技术基础,企业推动则是云计算快速发展的主要动力。目前,IT巨头正在相继开发云计算平台、云计算终端和服务器。
关联规则算法用来描述事物之间的联系和挖掘事物之间的相关性,其核心是通过统计数据项获得频繁项集,被广泛应用于分类设计“捆绑式销售”仓储货存配置等领域,关联规则的挖掘已经成为数据挖掘中一个非常重要的研究方向。
Apriori算法首先由Agrawal教授于1993年提出,是一种最有影响的挖掘布尔关联规则频繁项集的算法,其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小置信度。接着使用这些找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法,依次从k项集推出k+1项集。
可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点,然而随着挖掘数据的增大,其运算能力很快出现了瓶颈。因此,利用云计算将数据处理并行化来降低运算时间,提高处理能力成为了一个新的方向。本发明提出了一种新的并行化方案,使传统的Apriori算法适用于云计算环境中。
发明内容
技术问题:本发明的目的是针对一种经典的关联规则分析算法Apriori不能很好适应并行化的缺陷,设计了一种关联分析算法的并行化方法,减少了节点间的同步依赖和网络通讯负担,提高了数据库扫描和计算的速度,利用云计算解决了海量数据分析的困难和瓶颈。
技术方案:针对这些问题,本发明提出了一种关联分析算法的并行化方法,将频繁项的筛选和规则的生成分摊到了集群中并行完成。利用下一层的候选频繁集生成并不需要完全依赖于上一层的频繁集,取消了每层频繁集生成中的同步过程,采用先到先计算的规则,减少了节点间的同步依赖和网络通讯负担。通过事务编号集来定位扫描的位置,减小了I/O的压力,提高了数据库扫描和计算的速度。
现有的并行化大致分为两个思路:
一、将对事务数据库扫描的过程并行,把数据库分片,保存在各个节点上。每次循环开始时将候选频繁k-项集发送到各个节点上分别统计每项在局部数据库上的支持度,然后在循环结束时同步所有节点的计算结果,统计出每项的全局支持度并删除不满足阀值的项。
该方案减少了对数据库扫描所需的时间,在一定程度上提升了处理能力,但是每次循环结束时同步会存在不同节点之间的相互等待的问题。并且剪枝是在合并后完成,单个节点仅有扫描和统计的功能而没有判断功能,随着节点数的增多,通信量将迅速增大,给带宽带来了巨大压力。
二、将整个挖掘过程并行,把数据库分成n块,发送到每个节点上,针对每一块数据独立地进行传统Apriori算法的挖掘过程,阀值缩小为1/n。最后将每个节点输出的1-到k-项局部频繁集合并及扫描整个数据库,删除掉不满足阀值的项,得到整个频繁集。
该方案为节点增加了判断的能力,使得各节点可以独立完成剪枝,提高了并行程度,减轻了带宽压力。但是根据概率统计学,各节点每次生成的候选频繁k-项集应该是近似的。这种近似的挖掘过程将在各个节点上重复n遍,浪费了相当大的计算资源。
可以看出,将数据库分片虽然是一种简单的并行方案,但是各节点之间的通信量和计算量的平衡问题并无法妥善解决。
因此本发明尝试了一种新思路,算法的运行流程步骤如下:
该方法采用主从结构,由一台服务器作为主节点处理所有的调度和协调,其余服务器作为子节点完成计算任务,该并行化方法的步骤如下:
步骤1.启动所有服务器,将待分析的原始数据的数据库分别下载到所有服务器节点上;
步骤2.第一阶段分析开始,主节点扫描自身数据库,统计出整个1-项集以及事务总数,设定阀值,并将阀值发送到各个子节点上;
步骤3.将整个1-项集作为候选频繁1-项集,由主节点将每一项的统计任务分派给一个空闲的子节点;
步骤4.收到任务的各个子节点扫描自身数据库,统计该项的支持度,如果该项的支持度满足阀值则向主节点返回该项以及该项的支持度和事务编号集,如果不满足则删除掉该项;
步骤5.主节点将收到的返回结果加入频繁1-项集中,并连接这些项集生成按字典顺序排列的候选频繁2-项集,每生成一项,就连同其候选事务编号集一并分派给一个空闲的子节点;
步骤6.收到任务的各个子节点扫描所给的候选事务编号集,统计该项的支持度,如果该项的支持度满足阀值则向主节点返回该项以及该项的支持度和事务编号集,如果不满足则删除掉该项及其相关数据;
步骤7.主节点将收到的返回结果加入频繁2-项集中,并连接这些项集生成按字典顺序排列的候选频繁3-项集,每生成一项,就连同其候选事务编号集一并分派给空闲节点;
步骤8.重复步骤6,步骤7的过程,将每次返回的结果保存入频繁集,并连接生成更长的候选频繁集,直到没有新的项满足阀值为止,保存所有的频繁1-项、2-项、3-项……k-项集以及各自的支持度,将所有的频繁集按照频繁1-项集分组,第一阶段分析结束;
步骤9.第二阶段分析开始,按照分组将各组频繁集及其支持度发送给各个子节点;
步骤10.各子节点分别根据每组频繁集生成规则并计算其置信度,如果满足阀值则向主节点返回该规则,如果不满足则忽略;
步骤11.主节点将所有收到的返回结果保存,排序后即为规则集,第二阶段分析结束;
步骤12.输出显示规则集,结束。
有益效果:本发明提出了一种新的Apriori算法并行化方案,该方案的主要优势在于:
一、将每一项的统计过程独立并行,并且没有产生重复的计算,提升了整个候选频繁项集的生成速度;
二、每个节点都具有判断的功能,不会向网络发送无用的数据,减轻了网络压力;
三、跨层统计的功能避免了各个节点之间相互等待的问题;
四、扫描上一层的事务编号集而不是整个数据库大量减少了每次扫描所需的时间,这对于需要多次扫描统计的Apriori算法来说节省的时间是相当可观的。
附图说明
图1关联分析算法运行流程图。
图2分析集群架构图。
具体实施方式
细节说明:
k-项集:关联规则算法是为了从{A,B,C,D},{A,B}……等集合中找出例如A→B的规则。因此,例如{A},{C}就称之为1-项集,{A,B}就称之为2-项集,{A,B,C……}就称之为k-项集,其中k代表集合中有多少项。
频繁k-项集:出现的频率满足阀值的1-项集称之为频繁1-项集,出现的频率满足阀值的2-项集称之为频繁2-项集,同理,出现的频率满足阀值的k-项集称之为频繁k-项集。
候选频繁k-项集:通过集合连接得到的可能成为频繁2-项集的2-项集称之为候选频繁2-项集。通过集合连接得到的可能成为频繁k-项集的k-项集称之为候选频繁k-项集。
置信度:表示某条规则的可信程度。计算方法为下层频繁集的支持度与上层频繁集的支持度之商。例如,<ABCE,3>,<AB,10>,则规则AB→CE的置信度为30%。
跨层统计:由n项自然连接所产生的集分别为个,呈菱形分布。通过Apriori算法产生的候选频繁k-项集的验证过程可以拆解成每一项的简单计数,是相互独立的,因此将该过程并行化是可行的。并且即使在候选频繁k-项集没有完全验证完毕的时候,将已经验证过的部分频繁k-项集进行连接,同样可以产生一部分候选频繁(k+1)-项集。也就是说不必等待同一层的所有频繁集完全确定之后才能开始下一次频繁集的生成和验证。因此将每一项单独验证还可以一定程度上解决各节点间的相互等待的问题。
事务编号集:每个节点都存储了整个事务数据库,事务数据形如下表,Tid表示事务的编号。
Tid
001 A,B
002 B,C,D
003 A,D,E,F
由Lk-1×Lk-1生成Lk的过程可以看成是拥有共同的Lk-2部分的两项加上分别加上两个独立的元素。例如:ABCD+ABCE→ABCDE。所以,统计ABCDE的支持度时只需要在包含ABCD的事务中搜索包含E的事务数或者在包含ABCE的事务中搜索包含D的事务数。
因为事务编号集仅仅是一些有规律的常数,不但可以采取压缩的方式缩减信息量,同时随着分析过程的进行,事务编号集的长度会迅速缩短,因此不会给网络带来太多的压力。同时,各节点均不需要保存事务编号集,只是保存在内存内作为中间量来回发送,这样可以避免多次扫描整个数据库造成大量I/O资源的浪费,因此本算法选择了同时保存事务编号集而不是简单的多次扫描整个数据库。
将该算法应用于MapReduce框架中的实现过程如下:
(1)将整个1-项集当做候选频繁1-项集,每一项先后分别在一个节点上完成统计并返回结果。形如:<B,list>,list为包含B的事务编号集,如(004,022,036)。
(2)将后续生成的候选频繁k-项集中的项a及其事务编号集<a,list>分派给子节点。例如a为ABCE,是由ABC和ABE连接而成,则list为上一轮的输出数据,<ABC,list>表示包含ABC的事务的Tid集合。
(3)执行map函数,其功能是在list中搜索含有该项最后一个元素的事务并输出<a,Tid>的键值对。
例如,a为ABCE,则搜索list中含有E的事务,结果为007,032,056,则输出键值对<ABCE,007>,<ABCE,032>,<ABCE,056>。
(4)执行combiner函数,其功能是在本机将map函数的输出结果合并统计并判断是否剪枝。输入数据为map函数的输出数据<a,Tid>,将其合并统计支持度选择输出<a,list>或剪枝。
例如,输入数据为<ABCE,007>,<ABCE,032>,<ABCE,056>,则ABCE的支持度即为3。如果不满足阀值则将该项删除,不给主节点返回任何信息,如果满足阀值,则向主节点输出<ABCE,(007,032,056)>。
(5)执行reduce函数,其功能是记录各节点返回的频繁集和生成候选频繁集。由于候选频繁集生成过程的特殊性,reduce仅放在主节点一台机器上。输入数据为各个节点的combiner函数的输出数据<a,list>,将其转化为<a,num>保存,同时与以保存的同一层的b合并,输出<a+b,list>放入分派队列中。
例如,输入数据为<ABCE,(007,032,056)>,在本机保存<ABCE,3>,并与已保存的ABCG合并,输出<ABCEG,(007,032,056)>等待下一轮的分配。
(6)主节点不断接收反馈信息并将分派队列中的计算任务分给各节点,直到没有新的候选项产生。此时所有频繁集的数据信息已保存完毕。
(7)将本机保存的所有<a,num>键值对按照a的首项分组,每一组分派给一个节点进行规则生成,生成的过程为下层频繁集的支持度与上层频繁集的支持度之商。例如,<ABCE,3>,<AB,10>,则AB→CE的置信度为30%。
(8)置信度不满足阀值的直接忽略,满足的则向主节点返回键值对<a,b>,即表示为a→b。
(9)等待所有频繁集全部分派,各节点计算完毕后,保存返回各节点的规则,排序得到所需规则集。

Claims (1)

1.一种关联分析算法的并行化方法,其特征在于该方法采用主从结构,由一台服务器作为主节点处理所有的调度和协调,其余服务器作为子节点完成计算任务,该并行化方法的步骤如下:
步骤1.启动所有服务器,将待分析的原始数据的数据库分别下载到所有服务器节点上;
步骤2.第一阶段分析开始,主节点扫描自身数据库,统计出整个1-项集以及事务总数,设定支持度阈值,并将阀值发送到各个子节点上;
步骤3.将整个1-项集作为候选频繁1-项集,由主节点将每一项的统计任务分派给一个空闲的子节点;
步骤4.收到任务的各个子节点扫描自身数据库,统计该项的支持度,如果该项的支持度满足支持度阈值则向主节点返回该项以及该项的支持度和事务编号集,如果不满足则删除掉该项;
步骤5.主节点将收到的返回结果加入频繁1-项集中,并连接这些项集生成按字典顺序排列的候选频繁2-项集,每生成一项,就连同其候选事务编号集一并分派给一个空闲的子节点;
步骤6.收到任务的各个子节点扫描所给的候选事务编号集,统计该项的支持度,如果该项的支持度满足支持度阈值则向主节点返回该项以及该项的支持度和事务编号集,如果不满足则删除掉该项及其相关数据;
步骤7.主节点将收到的返回结果加入频繁2-项集中,并连接这些项集生成按字典顺序排列的候选频繁3-项集,每生成一项,就连同其候选事务编号集一并分派给空闲节点;
步骤8.重复步骤6,步骤7的过程,将每次返回的结果保存入频繁集,并连接生成更长的候选频繁集,直到没有新的项满足支持度阈值为止,保存所有的频繁1-项、2-项、3-项……k-项集以及各自的支持度,将所有的频繁集按照频繁1-项集分组,第一阶段分析结束;
步骤9.第二阶段分析开始,按照分组将各组频繁集及其支持度发送给各个子节点;
步骤10.各子节点分别根据每组频繁集生成规则并计算其置信度,如果满足置信度阈值则向主节点返回该规则,如果不满足则忽略;
步骤11.主节点将所有收到的返回结果保存,排序后即为规则集,第二阶段分析结束;
步骤12.输出显示规则集,结束。
CN201410124334.XA 2014-03-28 2014-03-28 一种关联分析算法的并行化方法 Expired - Fee Related CN103914528B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410124334.XA CN103914528B (zh) 2014-03-28 2014-03-28 一种关联分析算法的并行化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410124334.XA CN103914528B (zh) 2014-03-28 2014-03-28 一种关联分析算法的并行化方法

Publications (2)

Publication Number Publication Date
CN103914528A CN103914528A (zh) 2014-07-09
CN103914528B true CN103914528B (zh) 2017-02-15

Family

ID=51040208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410124334.XA Expired - Fee Related CN103914528B (zh) 2014-03-28 2014-03-28 一种关联分析算法的并行化方法

Country Status (1)

Country Link
CN (1) CN103914528B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573124B (zh) * 2015-02-09 2018-04-10 山东大学 一种基于并行化关联规则算法的教育云应用统计方法
WO2017084020A1 (zh) * 2015-11-16 2017-05-26 华为技术有限公司 模型参数融合方法及装置
CN107102999B (zh) * 2016-02-22 2021-09-10 阿里巴巴集团控股有限公司 关联分析方法和装置
CN107179940B (zh) * 2016-03-10 2020-06-19 阿里巴巴集团控股有限公司 一种任务执行的方法及装置
CN107291734A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种频繁项集的挖掘方法、装置及系统
CN106649479B (zh) * 2016-09-29 2020-05-12 国网山东省电力公司电力科学研究院 一种基于概率图的变压器状态关联规则挖掘方法
CN106777065A (zh) * 2016-12-12 2017-05-31 郑州云海信息技术有限公司 一种频繁子图挖掘的方法及系统
CN107124308B (zh) * 2017-04-28 2019-09-13 电子科技大学 一种战术数据链层次拓扑挖掘方法
CN107256213A (zh) * 2017-06-28 2017-10-17 中国石油大学(华东) 一种基于并行关联规则的话题关系发现方法和发现装置
CN107766442B (zh) * 2017-09-21 2019-02-01 深圳金融电子结算中心有限公司 一种海量数据关联规则挖掘方法及系统
CN107948271B (zh) * 2017-11-17 2021-04-13 亚信科技(中国)有限公司 一种确定待推送消息的方法、服务器及计算节点
CN110300011B (zh) * 2018-03-23 2022-07-01 中国移动通信集团有限公司 一种告警根因定位方法、装置和计算机可读存储介质
CN109325062B (zh) * 2018-09-12 2020-09-25 哈尔滨工业大学 一种基于分布式计算的数据依赖挖掘方法及系统
CN112286659A (zh) * 2020-02-25 2021-01-29 程瑞萍 云计算任务跟踪处理方法及云计算系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1376397A2 (en) * 2002-06-21 2004-01-02 Hitachi, Ltd. Method of extracting item patterns across a plurality of databases, a network system and a processing apparatus
CN101799810A (zh) * 2009-02-06 2010-08-11 中国移动通信集团公司 一种关联规则挖掘方法及其系统
CN102685180A (zh) * 2011-10-18 2012-09-19 国网电力科学研究院 一种面向云计算的网络安全预警方法
CN103136244A (zh) * 2011-11-29 2013-06-05 中国电信股份有限公司 基于云计算平台的并行数据挖掘方法及系统
CN103345698A (zh) * 2013-07-09 2013-10-09 焦点科技股份有限公司 电子商务环境下基于云计算处理模式的个性化推荐方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1376397A2 (en) * 2002-06-21 2004-01-02 Hitachi, Ltd. Method of extracting item patterns across a plurality of databases, a network system and a processing apparatus
CN101799810A (zh) * 2009-02-06 2010-08-11 中国移动通信集团公司 一种关联规则挖掘方法及其系统
CN102685180A (zh) * 2011-10-18 2012-09-19 国网电力科学研究院 一种面向云计算的网络安全预警方法
CN103136244A (zh) * 2011-11-29 2013-06-05 中国电信股份有限公司 基于云计算平台的并行数据挖掘方法及系统
CN103345698A (zh) * 2013-07-09 2013-10-09 焦点科技股份有限公司 电子商务环境下基于云计算处理模式的个性化推荐方法

Also Published As

Publication number Publication date
CN103914528A (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
CN103914528B (zh) 一种关联分析算法的并行化方法
US10089367B2 (en) Expediting pattern matching queries against time series data
US8856047B2 (en) Fast personalized page rank on map reduce
CN109033234B (zh) 一种基于状态更新传播的流式图计算方法及系统
Wu et al. Core decomposition in large temporal graphs
US10218808B2 (en) Scripting distributed, parallel programs
CN101996102B (zh) 数据关联规则挖掘实现方法与系统
CN104820708B (zh) 一种基于云计算平台的大数据聚类方法和装置
US11349824B2 (en) Block sequencing method and system based on tree-graph structure, and data processing terminal
CN104809244B (zh) 一种大数据环境下的数据挖掘方法和装置
WO2022088395A1 (zh) 一种实用的逻辑验证架构级fpga布线器的构建方法
CN109656898B (zh) 基于节点度的分布式大规模复杂社团探测方法及装置
CN104077280A (zh) 社区发现并行化方法和系统、主节点和运算节点设备
US20220229809A1 (en) Method and system for flexible, high performance structured data processing
CN103559320A (zh) 对异质网络中对象进行排序的方法
CN105069290A (zh) 一种面向寄递数据的并行化关键节点发现方法
Ediger et al. Investigating graph algorithms in the bsp model on the cray xmt
Ghaffari et al. A massively parallel algorithm for minimum weight vertex cover
US20190258634A1 (en) Data stream connection method and apparatus
CN105138607B (zh) 一种基于混合粒度分布式内存网格索引的knn查询方法
CN111797174A (zh) 管理时空数据的方法和装置
Shen et al. On embedding between 2D meshes of the same size
Clergue et al. An iterated local search to find many solutions of the 6-states firing squad synchronization problem
CN116128701A (zh) 一种用于执行图计算任务的装置、图计算方法
Gunarathne et al. Towards a collective layer in the big data stack

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170215