CN107066587A - 一种基于组链表的高效频繁项集挖掘方法 - Google Patents
一种基于组链表的高效频繁项集挖掘方法 Download PDFInfo
- Publication number
- CN107066587A CN107066587A CN201710250221.8A CN201710250221A CN107066587A CN 107066587 A CN107066587 A CN 107066587A CN 201710250221 A CN201710250221 A CN 201710250221A CN 107066587 A CN107066587 A CN 107066587A
- Authority
- CN
- China
- Prior art keywords
- candidate
- chained list
- item
- frequent
- group
- 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/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)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于组链表的高效频繁项集挖掘方法,将数据库中的事务按照长度相同的事务为一组进行存储;计算Ck中候选项的支持度时,仅从长度为k的组链表开始遍历(长度小于k的事务集不需遍历),若存在候选项集的支持度计数大于等于最小支持度计数,将这些候选项集从Ck中删除,加入LK中;继续遍历k+1的事务集链表,得到Ck中其余候选项集的支持度计数,同理,若存在候选项集的支持度计数大于等于最小支持度计数的情况,那么将这些候选项集从Ck中删除,加入Lk中;继续扫描直到Ck为空或遍历完长度最大的事务集链表,算法结束;本发明采用了组链表的方式存储事务数据集,改进算法减少了对记录的访问数量,提高了频繁项集挖掘的效率。
Description
技术领域
本发明涉及数据挖掘领域,尤其是关联规则中挖掘频繁项集的实现方法。
背景技术
随着计算机的普及和网络技术的发展,网络上每天都产生TB级,甚至PB级的海量数据。所以,如何能够更加快速、低成本、高效的从海量数据中挖掘出有价值的信息,以帮助决策者更好地决策变得非常重要,从大量数据中挖掘出隐含的、先前未知的有价值的信息的数据挖掘已发展成为一门非常重要的学科。
关联规则挖掘目前在数据挖掘中已被广泛应用,其目的是找出数据库中不同的项之间的相关关系,核心问题是获取频繁项集。关联规则挖掘一般分为两个阶段,第一阶段:
扫描数据库产生候选项集,通过与最小支持度比较,找出频繁项集。第二阶段:利用频繁项集产生关联规则,若一规则所求的置信度满足最小置信度,则该规则为关联规则。
在频繁项集的挖掘中最具代表性的经典算法一Apriori算法。它应用的领域比较广,比如市场购物篮分析,网络点击分析,DNA序列的发现等。Apriori算法采用循序渐进的方式组合出侯选项集,其思想则是利用已知的高频数据项集推导出其它高频数据项集。
现有的频繁项集挖掘方法主要有以下三种思路:
一、基于十字链表的频繁项集挖掘改进算法,该算法将事务数据库中的信息用十字链表表示,把对数据库的扫描转变为对内存中十字链表的扫描,利用十字链表缩短了需要匹配的事务长度。
由于其方法需要进行模式匹配,使用条件受限,也使得算法的提高程度受到很大限制。
二、基于压缩事务矩阵相乘的频繁项集挖掘改进算法,该算法扫描数据库中的数据并将数据信息映射到事务项目二进制矩阵中,由事务项目二进制矩阵与相应的辅助矩阵相乘得到频繁1-项目集,依此类推得到其它频繁项目集。
该方法由于矩阵相乘花费了较多的时间,基本消耗时间也相对越久,严重影响到整理的加速效果。且严重的占用内存,当内存不足时速度得变非常缓慢,甚至会有运算失败的情况产生。
三、运用分治思想将数据集分段处理,利用向量交运算和先验剪枝直接生成局部频繁k-项集,最终合并为全局频繁k-项集,从根本上改进了Apriori算法频繁迭代的过程,不需要进行连接运算。
四、该方法用到向量交运算,计算量大且复杂,内存占用严重。
发明内容
本发明解决其技术问题为:针对频繁项集挖掘过程中需要访问所有的记录才可以得出候选项集的支持度计数,记录访问量大,内存占用严重,遍历事物中的项不方便等问题,设计了一种新的方案,以此提高运算效率。
本发明采用的技术方案为:一种基于组链表的高效频繁项集挖掘方法,包括以下步骤:
步骤一、先求出候选A-项集CA;
步骤二、由候选A-项集CA求出频繁A-项集LA;
步骤三、事务数据库中长度相同的事务为一组进行划分;
步骤四、通过连接和剪枝步,由频繁项集得到候选项集;
步骤五、从长度为与一个候选项集中元素的个数相同的组链表开始遍历;
步骤六、判断候选项集是否满足最小支持度计数,若满足,则从候选项集中删除此候选项集,并将其放入到频繁项集中,执行步骤(八)进行判断;若不满足,则执行下一步;
步骤七、继续遍历下一个的组链表;
步骤八、判断是否遍历完所有的组链表或者候选项集是否为空,若满足,则得到了所有的频繁项集;若不满足,则从步骤(六)开始执行;步骤九、判断频繁项集中项集的个数是否小于一个项集中的元素的个数加一,若满足,则算法结束,若不满足,则从步骤(四)开始执行。
本发明与现有技术相比,有以下优点:
(1)采用了组链表的方式存储事务数据集,方便遍历事务中的项。
(2)改进算法减少了对记录的访问数量,不必要访问所有的记录就可以得出候选项集的支持度计数,在一定程度上缩小了搜索空间,减少了内存的使用,提高了频繁项集挖掘的效率。
附图说明
图1为本发明的流程示意图;
图2为长度为1的事务集;
图3为长度为2的事务集;
图4为长度为3的事务集;
图5为长度为4的事务集。
具体实施方式
下面结合附图,对本发明实施例提供的基于组链表的高效频繁项集挖掘实现方法进行详细阐述。
图1为本发明实施例提供的算法步骤流程图,该算法的详细实现过程如下:
表1为事务数据库D,|D|=9,设最小支持度计数为2。
表1
TID | 项ID的列表 |
T100 | I1,I2,I5,I6 |
T200 | I3 |
T300 | I3,I6 |
T400 | I1,12,I4 |
T500 | I6 |
T600 | I1,I3,I4,I6 |
T700 | I2,I3 |
T800 | I2,I5 |
T900 | I1,I3,I6 |
第一部分:(1)扫描D得到C1,如表2所示。
图2
项集 | 支持度计数 |
{I1} | 4 |
{I2} | 4 |
{I3} | 5 |
{I4} | 2 |
{I5} | 2 |
{I6} | 5 |
(2)由大于等于最小支持度计数的项组成频繁1-项集L1,如表3所示。
表3
项集 | 支持度计数 |
{I1} | 4 |
{I2} | 4 |
{I3} | 5 |
{I4} | 2 |
{I5} | 2 |
{I6} | 5 |
(3)将事务数据库中的所有事务按照长度相同的为一组进行划分。如附图2、附图3、附图4、附图5所示。
第二部分和第三部分:
(1)计算L2
(2)计算L3
(3)因|L3|=1<3,算法结束。
进一步,所述实现过程第二部分和第三部分(1)计算L2具体包括如下步骤:
1)首先L1自连接得到C2。
C2={{1,2},{1,3},{1,4},{1,5},{1,6}{2,3},{2,4},
{2,5},{2,6},{3,4},{3,5},{3,6},{4,5}{4,6},{5,6}}
2)由Apriori算法的先验性质(频繁项集的所有非空子集也一定是频繁的)对C2进行剪枝,C2不变。
3)计算C2中项集的支持度计数
首先遍历表5,各候选项集的支持度如下表4所示。
表4
项集 | 支持度计数 |
{1,2} | 0 |
{1,3} | 0 |
{1,4} | 0 |
{1,5} | 0 |
{1,6} | 0 |
{2,3} | 1 |
{2,4} | 0 |
{2,5} | 1 |
{2,6} | 0 |
{3,4} | 0 |
{3,5} | 0 |
{3,6} | 1 |
{4,5} | 0 |
{4,6} | 0 |
{5,6} | 0 |
C2中各候选项集的支持度计数均小于最小支持度计数,继续遍历长度为3的链表,结果如表5所示。
表5
项集 | 支持度计数 |
{1,2} | 1 |
{1,3} | 1 |
{1,4} | 1 |
{1,5} | 0 |
{1,6} | 1 |
{2,3} | 1 |
{2,4} | 1 |
{2,5} | 1 |
{2,6} | 0 |
{3,4} | 0 |
{3,5} | 0 |
{3,6} | 2 |
{4,5} | 0 |
{4,6} | 0 |
{5,6} | 0 |
项集{3,6}的支持度计数为2,等于最小支持度计数,从C2中删除,加入到L2中,即L2[1]={{3,6}}。此时,C2={{1,2},{1,3},{1,4},{1,5},{1,6},{2,3},{2,4},{2,5},{2,6},{3,4},{3,5},{4,5}{4,6},{5,6}}继续遍历长度为4的链表,其结果如表6所示。
表6
项集 | 支持度计数 |
{1,2} | 2 |
{1,3} | 2 |
{1,4} | 2 |
{1,5} | 1 |
{1,6} | 2 |
{2,3} | 1 |
{2,4} | 1 |
{2,5} | 2 |
{2,6} | 1 |
{3,4} | 1 |
{3,5} | 0 |
{4,5} | 0 |
{4,6} | 1 |
{5,6} | 1 |
项集{1,2},{1,3},{1,4},{1,6},{2,5}的支持度计数满足最小支持度计数,将它们从C2中删除,加入到L2中。此时,L2[2]={{1,2},{1,3},{1,4},{1,6},{2,5},{3,6}}。因已遍历完长度最大的事务集链表,计算频繁2-项集结束,L2={{1,2},{1,3},{1,4},{1,6},{2,5},{3,6}}。
进一步,所述实现过程第二部分和第三部分(2)计算L3具体包括如下步骤:
1)首先L2自连接得到C3。
C3={{1,2,3},{1,2,4},{1,2,6},{1,3,4},{1,3,6},{1,4,6}}
2)根据Apriori算法的先验性质对C3进行剪枝,{2,3}、{2,4}、{2,6}、{3,4}、{4,6}不是频繁2-项集,因此,经过剪枝步后C3={{1,3,6}}
3)计算C3中各候选项集的支持度计数
遍历表6,候选项集的支持度计数如表7所示。
表7
项集 | 支持度计数 |
{1,3,6} | 1 |
项集{1,3,6}的最小支持度计数为1,不满足最小支持度计数。继续遍历长度为4的事务集链表,其结果如表8所示。
表8
项集 | 支持度计数 |
{1,3,6} | 2 |
此时项集{1,3,6}的支持度计数满足最小支持度计数,加入到L3中,L3={{1,3,6}},从C3中删除。C3为空集,因此L3={{1,3,6}}。
Claims (1)
1.一种基于组链表的高效频繁项集挖掘方法,其特征在于,包括以下步骤:
步骤一、先求出候选A-项集CA;
步骤二、由候选A-项集CA求出频繁A-项集LA;
步骤三、事务数据库中长度相同的事务为一组进行划分;
步骤四、通过连接和剪枝步,由频繁项集得到候选项集;
步骤五、从长度为与一个候选项集中元素的个数相同的组链表开始遍历;
步骤六、判断候选项集是否满足最小支持度计数,若满足,则从候选项集中删除此候选项集,并将其放入到频繁项集中,执行步骤(八)进行判断;若不满足,则执行下一步;
步骤七、继续遍历下一个的组链表;
步骤八、判断是否遍历完所有的组链表或者候选项集是否为空,若满足,则得到了所有的频繁项集;若不满足,则从步骤(六)开始执行;
步骤九、判断频繁项集中项集的个数是否小于一个项集中的元素的个数加一,若满足,则算法结束,若不满足,则从步骤(四)开始执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710250221.8A CN107066587A (zh) | 2017-04-17 | 2017-04-17 | 一种基于组链表的高效频繁项集挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710250221.8A CN107066587A (zh) | 2017-04-17 | 2017-04-17 | 一种基于组链表的高效频繁项集挖掘方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107066587A true CN107066587A (zh) | 2017-08-18 |
Family
ID=59601169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710250221.8A Pending CN107066587A (zh) | 2017-04-17 | 2017-04-17 | 一种基于组链表的高效频繁项集挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107066587A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287240A (zh) * | 2019-06-27 | 2019-09-27 | 浪潮软件集团有限公司 | 一种基于Top-K频繁项集的挖掘算法 |
CN110489411A (zh) * | 2019-07-11 | 2019-11-22 | 齐鲁工业大学 | 一种基于有效值存储及运算方式的关联规则挖掘方法 |
CN113064934A (zh) * | 2021-03-26 | 2021-07-02 | 安徽继远软件有限公司 | 电力传感网感知层故障关联规则挖掘方法及*** |
CN114116532A (zh) * | 2020-08-31 | 2022-03-01 | 南京邮电大学 | 基于访问模式自学习的缓存优化方法和访问方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823823A (zh) * | 2013-07-08 | 2014-05-28 | 电子科技大学 | 基于频繁项集挖掘算法的反规范化策略选择方法 |
CN105320756A (zh) * | 2015-10-15 | 2016-02-10 | 江苏省邮电规划设计院有限责任公司 | 一种基于改进Apriori算法的数据库关联规则挖掘方法 |
CN105740245A (zh) * | 2014-12-08 | 2016-07-06 | 北京邮电大学 | 频繁项集挖掘方法 |
CN106294617A (zh) * | 2016-07-29 | 2017-01-04 | 浪潮软件集团有限公司 | 一种高效挖掘关联规则中频繁项集的方法 |
-
2017
- 2017-04-17 CN CN201710250221.8A patent/CN107066587A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823823A (zh) * | 2013-07-08 | 2014-05-28 | 电子科技大学 | 基于频繁项集挖掘算法的反规范化策略选择方法 |
CN103823823B (zh) * | 2013-07-08 | 2016-12-28 | 电子科技大学 | 基于频繁项集挖掘算法的反规范化策略选择方法 |
CN105740245A (zh) * | 2014-12-08 | 2016-07-06 | 北京邮电大学 | 频繁项集挖掘方法 |
CN105320756A (zh) * | 2015-10-15 | 2016-02-10 | 江苏省邮电规划设计院有限责任公司 | 一种基于改进Apriori算法的数据库关联规则挖掘方法 |
CN106294617A (zh) * | 2016-07-29 | 2017-01-04 | 浪潮软件集团有限公司 | 一种高效挖掘关联规则中频繁项集的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287240A (zh) * | 2019-06-27 | 2019-09-27 | 浪潮软件集团有限公司 | 一种基于Top-K频繁项集的挖掘算法 |
CN110489411A (zh) * | 2019-07-11 | 2019-11-22 | 齐鲁工业大学 | 一种基于有效值存储及运算方式的关联规则挖掘方法 |
CN110489411B (zh) * | 2019-07-11 | 2023-08-22 | 齐鲁工业大学 | 一种基于有效值存储及运算方式的关联规则挖掘方法 |
CN114116532A (zh) * | 2020-08-31 | 2022-03-01 | 南京邮电大学 | 基于访问模式自学习的缓存优化方法和访问方法 |
CN114116532B (zh) * | 2020-08-31 | 2024-07-05 | 南京邮电大学 | 基于访问模式自学习的缓存优化方法和访问方法 |
CN113064934A (zh) * | 2021-03-26 | 2021-07-02 | 安徽继远软件有限公司 | 电力传感网感知层故障关联规则挖掘方法及*** |
CN113064934B (zh) * | 2021-03-26 | 2023-12-08 | 安徽继远软件有限公司 | 电力传感网感知层故障关联规则挖掘方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Karthikeyan et al. | A survey on association rule mining | |
CN105389349B (zh) | 词典更新方法及装置 | |
US7676453B2 (en) | Partial query caching | |
CN107066587A (zh) | 一种基于组链表的高效频繁项集挖掘方法 | |
US9720986B2 (en) | Method and system for integrating data into a database | |
CN106570128A (zh) | 一种基于关联规则分析的挖掘算法 | |
CA2882280A1 (en) | System and method for matching data using probabilistic modeling techniques | |
CN109783628B (zh) | 结合时间窗口和关联规则挖掘的关键词搜索ksaarm方法 | |
CN107729371A (zh) | 区块链的数据索引及查询方法、装置、设备及存储介质 | |
CN105447179A (zh) | 基于微博社交网络的话题自动推荐方法及其*** | |
US9047347B2 (en) | System and method of merging text analysis results | |
US20020178151A1 (en) | Optimization based method for estimating the results of aggregate queries | |
LU503512B1 (en) | Operating method for construction of knowledge graph based on naming rule and caching mechanism | |
CN107291877A (zh) | 一种基于Apriori算法的频繁项集挖掘方法 | |
CN105260387A (zh) | 一种面向海量事务数据库的关联规则分析方法 | |
CN116881430B (zh) | 一种产业链识别方法、装置、电子设备及可读存储介质 | |
Shraga et al. | Explaining dataset changes for semantic data versioning with explain-da-v | |
CN107133321B (zh) | 页面的搜索特性的分析方法和分析装置 | |
Huang et al. | Apriori-BM algorithm for mining association rules based on bit set matrix | |
CN102651014B (zh) | 基于概念关系的领域数据语义的检索方法 | |
CN109002537B (zh) | 一种基于深度学习的信息处理***和方法 | |
Mior | JSONoid: Monoid-based Enrichment for Configurable and Scalable Data-Driven Schema Discovery | |
Lakshmi et al. | Compact Tree for Associative Classification of Data Stream Mining | |
JP2017010376A (ja) | マートレス検証支援システムおよびマートレス検証支援方法 | |
Jain et al. | Exploring a few good tuples from text databases |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170818 |