CN107391621A - 一种基于Spark的并行关联规则增量更新方法 - Google Patents
一种基于Spark的并行关联规则增量更新方法 Download PDFInfo
- Publication number
- CN107391621A CN107391621A CN201710547080.6A CN201710547080A CN107391621A CN 107391621 A CN107391621 A CN 107391621A CN 201710547080 A CN201710547080 A CN 201710547080A CN 107391621 A CN107391621 A CN 107391621A
- Authority
- CN
- China
- Prior art keywords
- data set
- item
- frequent
- newly
- data
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于Spark的并行关联规则增量更新方法,主要针对现有增量更新方法在海量数据环境下运行效率低下的问题。该方法的实现步骤为:获取数据集;数据预处理;划分原始数据集与新增数据集;挖掘原始数据集;挖掘新增数据集,整合挖掘结果,获取更新后数据的候选集;挖掘更新后数据集,获取增量更新后的频繁项。本发明相较于传统的关联规则增量方法,更加充分地利用了原始数据集的挖掘结果,大大减少了数据扫描次数,和基于内存的Spark并行计算框架结合,具有良好的挖掘效率和可扩展性。
Description
技术领域
本发明属于数据处理领域,尤其涉及一种基于Spark的并行关联规则增量更新方法。
背景技术
关联规则分析能够发现存在于大量数据各项集间有意义的联系,找出满足给定的支持度与置信度的多个属性间的潜在关系,是数据挖掘领域中的一项重要研究内容。传统的静态关联规则挖掘算法,可以在固定数据集和支持度下,发现数据集中的频繁项集。在现实问题中通常还存在增量更新问题,挖掘对象的数据集和支持度会发生变化,使用静态关联挖掘方法需要反复对更新后的数据集进行扫描,原有的挖掘结果失去作用,在面对大规模数据集时挖掘效率低下。关联规则增量更新挖掘可以在支持度变化或是数据集增加的情况下,重新发现数据集中的频繁项集,在行业应用中比静态关联规则更具有实际意义,它通过比较原始事务数据库和新增数据库的项集之间的频繁和非频繁关系,对频繁项集进行增量更新得到更新后事务数据库的频繁项集。传统关联规则增量更新方法需要多次扫描原始数据集并且生成大量候选项集,仍存在挖掘效率低下的问题。
串行的关联规则挖掘算法在处理大规模数据时需要大量的I/O开销和足够大的内存空间,存储能力和挖掘效率必将成为挖掘过程中的瓶颈,从而不能满足海量数据挖掘的需求。针对传统单机关联挖掘方法在海量数据环境下挖掘效率低的问题,一些基于Hadoop云计算平台的关联增量更新算法通过构建数据集的分块索引,能够最小程度地对数据集进行扫描,提高了挖掘效率,但是在更新数据量较大的情况下,仍会产生大量的I/O操作影响运行效率。
发明内容
本发明针对现有技术的不足,提出一种基于Spark的并行关联规则增量更新方法,在优化算法结构减少数据扫描工作的同时,结合Spark并行化计算框架进一步提高在处理大规模增量数据时的运行效率。
本发明的技术方案如下:
一种基于Spark的并行关联规则增量更新方法,具体包含如下步骤:
步骤1,获取数据集;
步骤2,对步骤1获取的数据集进行数据预处理:
步骤3,将数据预处理后的数据集划分成原始数据集DB和新增数据集db;
步骤4,分别对原始数据集DB和新增数据集db进行关联规则挖掘,分别获取原始数据集DB的频繁项集和新增数据集db的频繁项集;
步骤5,整合步骤4获取的原始数据集DB的频繁项集和新增数据集db的频繁项集,获取更新后数据集的候选项集;
步骤6,获取更新后数据集的全部频繁项集。
作为本发明一种基于Spark的并行关联规则增量更新方法的进一步优选方案,在步骤2中,数据预处理包含清理及整合不完整的脏数据,对数量型数据进行离散化处理。
作为本发明一种基于Spark的并行关联规则增量更新方法的进一步优选方案,所述步骤4具体包含如下步骤:
步骤4.1,设原始数据集DB大小为N,最小支持度为minsup,新增数据集db大小为n,则更新后的数据集为S=DB∪db;
步骤4.2,扫描原始数据集DB,对原始数据集DB每个事务进行flatMap操作得到项(offset,item),用map操作将所有项映射成(item,1)的键值对,通过reduceByKey操作累计项目数,通过filter操作过滤掉低于最小支持度minsup的项,进而获取频繁1项集LD1;
步骤4.3,将LD1通过join操作生成候选2项集CD2,迭代地产生2到k-1项集;读取k-1项集,通过join操作生成CDk,用flatMap操作将全部候选集列出,对每个项集用map操作得到(itemset,1)的键值对,通过reduceByKey操作累计全部候选集的支持度计数,用filter操作过滤掉低于最小支持度minsup的项,最后输出(itemset,count)的键值对,即为原数据库DB的频繁k项集LD;
同步骤4.1至步骤4.3中的操作,挖掘新增数据集db,得到其频繁项集Ld。
作为本发明一种基于Spark的并行关联规则增量更新方法的进一步优选方案,所述步骤5具体包含如下步骤:
步骤5.1,原始频繁项集LD和新增频繁项集Ld公共部分L’=LD∩Ld,其中,L’为更新后数据集S的部分频繁项集;
步骤5.2,剩余的部分CS=(LD-L’)∪(Ld-L’),其中,CS为更新后数据集S的候选项集。
作为本发明一种基于Spark的并行关联规则增量更新方法的进一步优选方案,所述步骤6具体包含如下步骤::
步骤6.1,将步骤4.1获取的更新后的数据集分成M个数据分块,和步骤5.2获取的候选项集CS一起发送至各个工作节点;
步骤6.2,各工作节点分别扫描数据集并与CS中的项集进行比较,得出所有项集的支持度计数,标记为(itemsets,1),其中,itemsets为CS中的项集;将各工作节点中相同项集的支持度计数累加,加上CS初始的支持度计数,得到实际的支持度计数,利用最小支持度minsup对实际的支持度计数过滤可找出CS中的频繁项集LC;
步骤6.3,加上部分频繁项集L’,获得更新后数据集S的全部频繁项集Ls,其中,Ls=LC+L’。
本发明与现有的技术相比,具有以下优点:
本发明将关联规则增量更新算法在Spark云计算平台上实现,其灵活的并行计算框架具备良好的可扩展性,利用Spark迭代计算基于内存的特点,可以节省大量磁盘I/O操作,在对海量增量数据进行关联挖掘时比Hadoop效率更高。
附图说明
图1是本发明的实现流程图;
图2是本发明测量不同算法在不同数据规模下的运行时间的仿真效果图;
图3是本发明测量不同数据规模在不同运算节点数情况下的运行时间的仿真效果图。
具体实施方式
如图1所示,本发明的具体技术实施步骤如下:
步骤1,在Ubuntu16.04系统下搭建Spark2.1分布式平台,共设置5个工作节点,其中1台Master节点,4台worker节点。
步骤2,获取数据集,抽取1/3作为测试集,剩余作为训练集。
步骤3,进行数据预处理,清理、整合不完整的脏数据,对部分数量型数据进行离散化处理,得到Spark能够识别且适用于关联规则挖掘的形式。
步骤4,根据本发明具体的实验和业务需求,以一定比例将数据集划分成原始数据集DB和新增数据集db。
步骤5,对原始数据集DB进行关联规则挖掘:
(5a)设定原始数据集DB大小为N,最小支持度为minsup,新增数据集db大小为n,更新后的数据集为S=DB∪db;
(5b)扫描原始数据集,对每个事务进行flatMap操作得到其全部的项(offset,item),用map操作将所有项映射成(item,1)的键值对,之后通过reduceByKey操作累计项目数,最后用filter操作过滤掉低于最小支持度minsup的项,剩下的项即为频繁1项集LD1;
(5c)将LD1通过join操作生成候选2项集CD2,迭代地产生2到k-1项集。读取k-1项集,通过join操作生成CDk,用flatMap操作将全部候选集列出,对每个项集用map操作得到(itemset,1)的键值对,通过reduceByKey操作累计全部候选集的支持度计数,用filter操作过滤掉低于最小支持度minsup的项,最后输出(itemset,count)的键值对,即为原数据库DB的频繁k项集LD;
步骤6,对新增数据集db进行关联规则挖掘,整合原始数据集DB挖掘结果,获取更新后数据的候选集:
(6a)同步骤4中的操作,挖掘新增数据集db,得到其频繁项集Ld;
(6b)原始频繁项集LD和新增频繁项集Ld公共部分L’=LD∩Ld,为更新后数据集S的部分频繁项集;
(6c)剩余的部分CS=(LD-L’)∪(Ld-L’),为更新后数据集S的候选项集;
步骤7,挖掘更新后数据集,获取增量更新后的频繁项:
(7a)将更新后的数据集分成M个数据分块,和候选项集CS一起发送至各个工作节点;
(7b)各节点分别扫描数据集并与CS中的项集进行比较,得出所有项集的支持度计数,标记为(itemsets,1),itemsets为CS中的项集。将各节点中相同项集的支持度计数累加,加上CS初始的支持度计数,得到实际的支持度计数。利用最小支持度minsup对实际的支持度计数过滤可找出CS中的频繁项集LC;
(7c)加上部分频繁项集L’,Ls=LC+L’即为更新后数据集S的全部频繁项集。
本发明的分类时效性和可扩展性效果可通过如下仿真进一步说明:
实施例:
本发明使用来自http://fimi.ua.ac.be/data/的webdocs.dat.gz数据集作为数据源,容量约容量约为1450MB。将数据集分成训练集和测试集,并进行数据预处理。将预处理后的数据集平均分成大小相同的10组,分别将2组、4组、6组、8组数据作为原始数据集DB,标记为D1、D2、D3、D4,2组数据作为更新数据集db。仿真1仅在Master节点上展开,测量不同算法在不同数据规模下的运行时间,分析本发明中算法的性能,结果如图2所示;仿真2测量不同数据规模在不同运算节点数情况下的运行时间,分析算法的可扩展性,结果如图3所示。
2.仿真结果:
从图2结果可以看出,当数据量较小时,算法所耗时间差别不大。随着更新数据集的增加,两者计算的时间差开始增大,并行算法的挖掘效率明显提高且保持稳定。当更新数据量继续增长后,本文算法比MapRudece算法有了较大的优势。这是因为在处理数据量较小时,并行算法调度操作的时间占用算法运行总时间的比例较大;当更新数据量逐步增大,此比例开始减小,并行算法效率开始优于传统算法;而随着数据集进一步增大,由于Spark能够将计算的中间结果缓存在内存中,节省了大量I/O操作消耗的时间,所以效率较MapRuduce算法又有了明显提升。
从图3结果可以看出,在数据量相同条件下,本文并行算法的运行时间随着worker节点数量的增加不断减少,且更新后的数据总量越大,时间减少的幅度越大,说明本文算法在数据集较大的环境下有良好的可扩展性。另一方面,随着节点个数的增加,不同容量的数据集的运行时间差别逐渐变小,这是因为节点增加会导致集群内节点间通信开销增大。
Claims (5)
1.一种基于Spark的并行关联规则增量更新方法,其特征在于:具体包含如下步骤:
步骤1,获取数据集;
步骤2,对步骤1获取的数据集进行数据预处理:
步骤3,将数据预处理后的数据集划分成原始数据集DB和新增数据集db;
步骤4,分别对原始数据集DB和新增数据集db进行关联规则挖掘,分别获取原始数据集DB的频繁项集和新增数据集db的频繁项集;
步骤5,整合步骤4获取的原始数据集DB的频繁项集和新增数据集db的频繁项集,获取更新后数据集的候选项集;
步骤6,获取更新后数据集的全部频繁项集。
2.根据权利要求1所述的一种基于Spark的并行关联规则增量更新方法,其特征在于:在步骤2中,数据预处理包含清理及整合不完整的脏数据,对数量型数据进行离散化处理。
3.根据权利要求1所述的一种基于Spark的并行关联规则增量更新方法,其特征在于:所述步骤4具体包含如下步骤:
步骤4.1,设原始数据集DB大小为N,最小支持度为minsup,新增数据集db大小为n,则更新后的数据集为S=DB∪db;
步骤4.2,扫描原始数据集DB,对原始数据集DB每个事务进行flatMap操作得到项(offset,item),用map操作将所有项映射成(item,1)的键值对,通过reduceByKey操作累计项目数,通过filter操作过滤掉低于最小支持度minsup的项,进而获取频繁1项集LD1;
步骤4.3,将LD1通过join操作生成候选2项集CD2,迭代地产生2到k-1项集;读取k-1项集,通过join操作生成CDk,用flatMap操作将全部候选集列出,对每个项集用map操作得到(itemset,1)的键值对,通过reduceByKey操作累计全部候选集的支持度计数,用filter操作过滤掉低于最小支持度minsup的项,最后输出(itemset,count)的键值对,即为原数据库DB的频繁k项集LD;
同步骤4.1至步骤4.3中的操作,挖掘新增数据集db,得到其频繁项集Ld。
4.根据权利要求3所述的一种基于Spark的并行关联规则增量更新方法,其特征在于:所述步骤5具体包含如下步骤:
步骤5.1,原始频繁项集LD和新增频繁项集Ld公共部分L’=LD∩Ld,其中,L’为更新后数据集S的部分频繁项集;
步骤5.2,剩余的部分CS=(LD-L’)∪(Ld-L’),其中,CS为更新后数据集S的候选项集。
5.根据权利要求4所述的一种基于Spark的并行关联规则增量更新方法,其特征在于:所述步骤6具体包含如下步骤::
步骤6.1,将步骤4.1获取的更新后的数据集分成M个数据分块,和步骤5.2获取的候选项集CS一起发送至各个工作节点;
步骤6.2,各工作节点分别扫描数据集并与CS中的项集进行比较,得出所有项集的支持度计数,标记为(itemsets,1),其中,itemsets为CS中的项集;将各工作节点中相同项集的支持度计数累加,加上CS初始的支持度计数,得到实际的支持度计数,利用最小支持度minsup对实际的支持度计数过滤可找出CS中的频繁项集LC;
步骤6.3,加上部分频繁项集L’,获得更新后数据集S的全部频繁项集Ls,其中,Ls=LC+L’。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710547080.6A CN107391621A (zh) | 2017-07-06 | 2017-07-06 | 一种基于Spark的并行关联规则增量更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710547080.6A CN107391621A (zh) | 2017-07-06 | 2017-07-06 | 一种基于Spark的并行关联规则增量更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107391621A true CN107391621A (zh) | 2017-11-24 |
Family
ID=60335223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710547080.6A Pending CN107391621A (zh) | 2017-07-06 | 2017-07-06 | 一种基于Spark的并行关联规则增量更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391621A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197272A (zh) * | 2018-01-05 | 2018-06-22 | 北京搜狐新媒体信息技术有限公司 | 一种分布式关联规则增量的更新方法及装置 |
CN109857997A (zh) * | 2019-02-02 | 2019-06-07 | 杭州费尔斯通科技有限公司 | 一种离线表关联方法 |
CN110069548A (zh) * | 2019-04-02 | 2019-07-30 | 南京工业大学 | 一种基于循环方式的关联规则合并方法 |
CN112231324A (zh) * | 2019-06-26 | 2021-01-15 | 中兴通讯股份有限公司 | 一种实现增量数据比对的系统及方法 |
CN113722194A (zh) * | 2021-08-02 | 2021-11-30 | 中移(杭州)信息技术有限公司 | 日志统计方法、装置、设备及存储介质 |
CN114691749A (zh) * | 2022-05-11 | 2022-07-01 | 江苏大学 | 一种基于滑动窗口的频繁项集并行增量挖掘的方法 |
-
2017
- 2017-07-06 CN CN201710547080.6A patent/CN107391621A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197272A (zh) * | 2018-01-05 | 2018-06-22 | 北京搜狐新媒体信息技术有限公司 | 一种分布式关联规则增量的更新方法及装置 |
CN109857997A (zh) * | 2019-02-02 | 2019-06-07 | 杭州费尔斯通科技有限公司 | 一种离线表关联方法 |
CN110069548A (zh) * | 2019-04-02 | 2019-07-30 | 南京工业大学 | 一种基于循环方式的关联规则合并方法 |
CN112231324A (zh) * | 2019-06-26 | 2021-01-15 | 中兴通讯股份有限公司 | 一种实现增量数据比对的系统及方法 |
CN112231324B (zh) * | 2019-06-26 | 2023-03-24 | 金篆信科有限责任公司 | 一种实现增量数据比对的系统及方法 |
CN113722194A (zh) * | 2021-08-02 | 2021-11-30 | 中移(杭州)信息技术有限公司 | 日志统计方法、装置、设备及存储介质 |
CN113722194B (zh) * | 2021-08-02 | 2024-05-24 | 中移(杭州)信息技术有限公司 | 日志统计方法、装置、设备及存储介质 |
CN114691749A (zh) * | 2022-05-11 | 2022-07-01 | 江苏大学 | 一种基于滑动窗口的频繁项集并行增量挖掘的方法 |
CN114691749B (zh) * | 2022-05-11 | 2024-03-19 | 江苏大学 | 一种基于滑动窗口的频繁项集并行增量挖掘的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391621A (zh) | 一种基于Spark的并行关联规则增量更新方法 | |
CN110502509B (zh) | 一种基于Hadoop与Spark框架的交通大数据清洗方法及相关装置 | |
CN104809242B (zh) | 一种基于分布式结构的大数据聚类方法和装置 | |
CN103678671B (zh) | 一种社交网络中的动态社区检测方法 | |
CN104820708B (zh) | 一种基于云计算平台的大数据聚类方法和装置 | |
WO2018166270A2 (zh) | 一种基于指标和方向向量相结合的多目标优化方法及系统 | |
CN102737126B (zh) | 云计算环境下的分类规则挖掘方法 | |
CN103761236A (zh) | 一种增量式频繁模式增长数据挖掘方法 | |
CN107229751A (zh) | 一种面向流式数据的并行增量式关联规则挖掘方法 | |
CN108334580A (zh) | 一种结合链接和属性信息的社区发现方法 | |
Nam et al. | Efficient approach for damped window-based high utility pattern mining with list structure | |
CN106294715A (zh) | 一种基于属性约简的关联规则挖掘方法及装置 | |
CN110222090A (zh) | 一种海量数据频繁项集挖掘方法 | |
CN117010697B (zh) | 一种基于人工智能的可视化企业风险评估方法 | |
CN105205052A (zh) | 一种数据挖掘方法及装置 | |
CN111475837B (zh) | 一种网络大数据隐私保护方法 | |
CN105045806A (zh) | 一种面向分位数查询的概要数据动态分裂与维护方法 | |
Zhang et al. | Logistics service supply chain order allocation mixed K-Means and Qos matching | |
Lin et al. | Mining high-utility sequential patterns from big datasets | |
CN117076463B (zh) | 一种智慧城市多源数据汇聚存储系统 | |
CN103984723A (zh) | 一种针对增量数据对频繁项进行更新数据挖掘方法 | |
CN109739897A (zh) | 一种基于Spark框架的增量式频繁项集挖掘方法 | |
CN113779105A (zh) | 分布式轨迹流伴随模式挖掘方法 | |
CN109800231B (zh) | 一种基于Flink的实时轨迹co-movement运动模式检测方法 | |
CN115577050B (zh) | 一种电费数字化应用平台构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171124 |
|
WD01 | Invention patent application deemed withdrawn after publication |