CN106202575A - 一种基于Apriori的分布式快速频繁项集挖掘方法 - Google Patents
一种基于Apriori的分布式快速频繁项集挖掘方法 Download PDFInfo
- Publication number
- CN106202575A CN106202575A CN201610705283.9A CN201610705283A CN106202575A CN 106202575 A CN106202575 A CN 106202575A CN 201610705283 A CN201610705283 A CN 201610705283A CN 106202575 A CN106202575 A CN 106202575A
- Authority
- CN
- China
- Prior art keywords
- things
- maptopair
- reducebykey
- flatmap
- item
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Apriori的分布式快速频繁项集挖掘方法,通过在记录项集同时记录其所在的对应事物集合,从而在频繁项集挖掘的剪枝部分,利用简单的事物个数统计,实现项集频率的统计,以此达到剪枝的目的。本发明的优势在于克服了传统方法对于输入数据集的频繁扫描,使该方法具有很好的可扩展性,同时该方法结合Spark进行实现,可以很好地处理大数据时代的频繁项集挖掘任务。
Description
技术领域
本发明涉及一种基于Apriori的分布式快速频繁项集挖掘方法,用于在大数据应用场景下实现分布式高效的频繁项集挖掘,属于数据挖掘的关联规则挖掘技术领域。
背景技术
Apriori自其产生就受到了广泛关注,主要包含两个步骤:候选项集生成和剪枝。候选项集的生成主要是通过项序格实现,而剪枝过程需要频繁的扫描输入数据集,以实现项频率的统计。显而易见,剪枝过程中频繁的输入数据集扫描势必导致较高的时间复杂度。为了克服这一弊病,科研人员提出了FP-Growth,通过在内存中构建候选项集的hash树,从而实现项集频率的统计,避免了输入数据集的频繁扫描。但是面对海量数据集时,FP-Growth需要消耗更多的内存,并且有可能带来内存溢出等问题。
随着大数据时代的到来,类Apriori和FP-Growth等传统的基于集中式、串行的处理模式的方法已经无法满足大数据时代的处理需求,于是相关结合了并行化框架的频繁项集挖掘方法相继涌现,其中包括基于Apriori的方法和基于FP-Growth的方法。然后大部分基于Apriori的并行化方法依然依赖于全局性的频繁1项集,而基于FP-Growth的并行化方法同样面临内存泄漏的问题。
为了弥补以上不足,本发明提出了基于Apriori的分布式关联规则挖掘方法。该方法在记录项集的同时记录下项集所出现的事物集合,通过简单的事物个数统计实现项(项集)频率的统计,简化了剪枝步骤,重要的是完全规避了传统算法对于输入数据集的频繁扫描,使该方法具有很好的可扩展性,同时该方法结合Spark进行实现,可以很好地应对大数据场景下的频繁项集挖掘需求。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种基于Apriori的分布式快速频繁项集挖掘方法,通过同时记录项集及其出现的事物集合,实现快速的剪枝操作,避免对于输入数据集的频繁扫描,实现大数据场景下分布式快速的频繁项集挖掘。
技术方案:一种基于Apriori的分布式快速频繁项集挖掘方法,在记录项集的同时记录下与其对应的事物集合,使得项集的频率统计转换为事物个数的统计,大大简化了类Apriori方法频繁项集挖掘的剪枝过程,同时避免了对于输入数据频繁扫描,使该方法具有良好的可扩展性,并结合Spark进行实现,可以很好地应对大数据时代的频繁项集挖掘任务。
该方法同样遵循类Apriori方法的候选频繁项集生成和剪枝的范式,并且进一步结合Spark进行实现,具体可分为预处理和迭代两个步骤,这两个步骤均包含有候选项集生成和剪枝。预处理阶段主要包含4个不同的Spark运算过程,即flatmap过程、mapTopair过程、reduceByKey和filter过程,其中flatmap过程完成对输入的展平,mapTopair过程实现键值对转换,reduceByKey过程进行分组,而filter过程完成过滤,通过flatmap过程和mapTopair过程将输入转换成包含项集和事物集合的键值对,然后经由reduceByKey过程进行分组汇总,最后由filter过程实现剪枝过滤操作,得到频繁1项集。迭代阶段主要包含7个Spark运算过程(仅涉及预处理阶段的4种不同Spark过程),依次为flatmap过程、mapTopair过程、reduceByKey过程、flatmap过程、mapTopair过程、reduceByKey过程和filter过程,通过flatmap过程、mapTopair过程和reduceByKey过程实现项集和事物集合键值对到事物和项集集合键值对的转换,紧接着通过flatmap过程、mapTopair过程、reduceByKey过程和filter过程实现事物和项集集合到项集和事物集合的转换及剪枝,总共经过k次迭代即可实现(k+1)项集的挖掘。
有益效果:与现有技术相比,本发明提供的基于Apriori的分布式快速频繁项集挖掘方法,具有如下优点:
1.同时记录项集及其出现的事物集合,简化了候选项集频率的统计。
2.避免了对于输入数据集的频繁扫描和对于全局数据结构的依赖,使得方法具有良好的可扩展性,进一步结合Spark进行实现,可以很好地应对大数据环境下的频繁项集挖掘需求。
附图说明
图1为输入数据集截图;
图2为候选项集生成数据结构项序格图;
图3为本发明实施例的系统结构框图,(a)为预处理过程,(b)为迭代处理过程。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
所有类Apriori的关联规则挖掘方法都主要包含频繁项集生成和剪枝两个主要的流程,本文提出的分布式频繁项集挖掘也不例外,其主要的异同点主要体现在基于Spark的并行化实现部分,下面进行详细的阐述。从实现上整个方法可以分为预处理(图3(a))和迭代(图3(b))两个步骤,这两个步骤均包含有候选项集生成和剪枝。
方法处理的输入数据集如图1所示,第一列为事物标识,紧随其后的是项。例如第一行的事物标识(tid)为“1”,其对应的项(item)包含有“25”,“52”,“164”等。
在预处理阶段(图3(a)),本方法主要利用的数据结构是项序格(如图2),选择两个包含(k-2)个相同项的(k-1)项集合并生成候选k项集。预处理阶段主要包含4个不同的Spark运算过程:flatmap过程、mapTopair过程、reduceByKey和filter过程,其中flatmap过程完成对输入的展平,mapTopair过程实现键值对转换,reduceByKey过程进行分组,而filter过程完成过滤。在预处理阶段,首先通过flatmap过程和mapTopair过程将如图3(a)所示的基于事物标识和项的列,转换成项和事物标识的键值对<item,tid>;进一步通过reduceByKey过程对于上一步的处理结果进行分组,得到项和事物集合的键值对<item,tidlist>;最后通过filter过程进行剪枝操作,对频率低于规定阈值的项进行过滤,从而得到项和事物集合构成的频繁1项集键值对<item,tid list>。
迭代阶段(图3(b))主要包含7个Spark运算过程(仅涉及预处理阶段的4种不同Spark过程),依次为flatmap过程、mapTopair过程、reduceByKey过程、flatmap过程、mapTopair过程、reduceByKey过程和filter过程,首先通过flatmap过程和mapTopair过程将由k项集和事物结合构成的键值对<k-itemset,tid list>,转换成由事物标识和项集构成的键值对<tid,k-itemset>;接着通过reduceByKey过程进行分组,得到事物标识和k项集集合<tid,k-itemset list>;然后通过flatmap过程和mapTopair过程,在每个分组内根据项序格(如图2)并利用共享(k-2)个项的两个(k-1)项集,生成候选(k+1)项集,同时记录下对应的事物标识,得到<(k+1)-item,tid>;进而通过reduceByKey过程对上一步得到的结果集进行分组;最后通过filter过程进行基于最小阈值的过滤,得到由频繁(k+1)项集和事物集合组成的键值对<(k+1)-item,tid list>。这一阶段按照上述执行顺序反复迭代,直到达到目标项集的长度为止。
Claims (1)
1.一种基于Apriori的分布式快速频繁项集挖掘方法,其特征在于:在记录项集的同时,记录下与之相对应的事物集合,使得项集的频率统计转换为事物个数的统计;
该方法在遵循类Apriori方法的候选频繁项集生成和剪枝范式的基础上,进一步结合Spark进行实现,具体可分为预处理和迭代两个步骤,这两个步骤均包含有候选项集生成和剪枝。预处理阶段主要包含4个不同的Spark运算过程,即flatmap过程、mapTopair过程、reduceByKey和filter过程,其中flatmap过程完成对输入的展平,mapTopair过程实现键值对转换,reduceByKey过程进行分组,而filter过程完成过滤,通过flatmap过程和mapTopair过程将输入转换成包含项集和事物集合的键值对,然后经由reduceByKey过程进行分组汇总,最后由filter过程实现剪枝过滤操作,得到频繁1项集。迭代阶段主要包含7个Spark运算过程(仅涉及预处理阶段的4种不同Spark过程),依次为flatmap过程、mapTopair过程、reduceByKey过程、flatmap过程、mapTopair过程、reduceByKey过程和filter过程,通过flatmap过程、mapTopair过程和reduceByKey过程实现项集和事物集合键值对到事物和项集集合键值对的转换,紧接着通过flatmap过程、mapTopair过程、reduceByKey过程和filter过程实现事物和项集集合到项集和事物集合的转换及剪枝,总共经过k次迭代即可实现(k+1)项集的挖掘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610705283.9A CN106202575A (zh) | 2016-08-22 | 2016-08-22 | 一种基于Apriori的分布式快速频繁项集挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610705283.9A CN106202575A (zh) | 2016-08-22 | 2016-08-22 | 一种基于Apriori的分布式快速频繁项集挖掘方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106202575A true CN106202575A (zh) | 2016-12-07 |
Family
ID=57523431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610705283.9A Pending CN106202575A (zh) | 2016-08-22 | 2016-08-22 | 一种基于Apriori的分布式快速频繁项集挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106202575A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815302A (zh) * | 2016-12-13 | 2017-06-09 | 华中科技大学 | 一种应用于游戏道具推荐的频繁项集挖掘方法 |
CN107291848A (zh) * | 2017-06-05 | 2017-10-24 | 南京邮电大学 | 基于Spark的并行化关联挖掘优化方法 |
CN107807952A (zh) * | 2017-09-27 | 2018-03-16 | 华南师范大学 | 一种基于Spark的Apriori并行化方法、系统及装置 |
CN115525695A (zh) * | 2022-10-08 | 2022-12-27 | 广东工业大学 | 一种互联网金融实时流数据的增量式频繁项集挖掘方法 |
-
2016
- 2016-08-22 CN CN201610705283.9A patent/CN106202575A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815302A (zh) * | 2016-12-13 | 2017-06-09 | 华中科技大学 | 一种应用于游戏道具推荐的频繁项集挖掘方法 |
CN107291848A (zh) * | 2017-06-05 | 2017-10-24 | 南京邮电大学 | 基于Spark的并行化关联挖掘优化方法 |
CN107807952A (zh) * | 2017-09-27 | 2018-03-16 | 华南师范大学 | 一种基于Spark的Apriori并行化方法、系统及装置 |
CN107807952B (zh) * | 2017-09-27 | 2021-06-01 | 华南师范大学 | 一种基于Spark的Apriori并行化方法、系统及装置 |
CN115525695A (zh) * | 2022-10-08 | 2022-12-27 | 广东工业大学 | 一种互联网金融实时流数据的增量式频繁项集挖掘方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106202575A (zh) | 一种基于Apriori的分布式快速频繁项集挖掘方法 | |
CN102662974B (zh) | 一种基于邻接节点树的网络图索引方法 | |
CN105528367A (zh) | 基于开源大数据对时间敏感数据的存储和近实时查询方法 | |
CN105608203A (zh) | 一种基于Hadoop平台的物联网日志处理方法和装置 | |
CN109978546A (zh) | 一种联盟区块链架构及其分级存储和交易穿孔方法 | |
CN103793467B (zh) | 一种基于超图和动态规划的大数据实时查询优化方法 | |
CN106503872B (zh) | 一种基于基础业务活动集的业务流程系统构建方法 | |
Yıldız | Examining the concept of industry 4.0 studies using text mining and scientific mapping method | |
CN109033340A (zh) | 一种基于Spark平台的点云K邻域的搜索方法及装置 | |
CN106209989A (zh) | 基于spark平台的空间数据并行计算系统及其方法 | |
CN103218692A (zh) | 基于活动间依赖关系分析的工作流挖掘方法 | |
Gieß et al. | Design options for Data Spaces. | |
CN104408067A (zh) | 一种多树结构的数据库设计方法及装置 | |
CN103761298B (zh) | 一种基于分布式架构的实体匹配方法 | |
Farhangi et al. | System of systems architecting problems: Definitions, formulations, and analysis | |
CN117196130B (zh) | 一种基于复杂网络的杀伤链路径快速查找方法 | |
CN108121788A (zh) | 子图查询方法 | |
CN110505322A (zh) | 一种ip地址段查找方法及装置 | |
Pan et al. | Overlapping community detection via leader-based local expansion in social networks | |
Ribeiro et al. | SJClust: Towards a Framework for Integrating Similarity Join Algorithms and Clustering. | |
CN105138607A (zh) | 一种基于混合粒度分布式内存网格索引的knn查询方法 | |
Sheshikala et al. | Parallel approach for finding co-location pattern–a map reduce framework | |
CN110222742A (zh) | 基于分层多回波的点云分割方法、装置、存储介质及设备 | |
Xie et al. | Research on big data technology-based agricultural information system | |
CN106027032A (zh) | 一种单位延时模型下rm逻辑电路延时优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |