CN105608135A - 一种基于Apriori算法的数据挖掘方法及系统 - Google Patents
一种基于Apriori算法的数据挖掘方法及系统 Download PDFInfo
- Publication number
- CN105608135A CN105608135A CN201510950522.2A CN201510950522A CN105608135A CN 105608135 A CN105608135 A CN 105608135A CN 201510950522 A CN201510950522 A CN 201510950522A CN 105608135 A CN105608135 A CN 105608135A
- Authority
- CN
- China
- Prior art keywords
- transaction
- support
- affairs
- transaction item
- 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.)
- Granted
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本发明提供了一种基于Apriori算法的数据挖掘方法及系统,使用布尔矩阵实现对事务的二进制编码,引入计数权值,使一条事务向量可以表达多条相同的事物记录,起着压缩矩阵的作用。算法运行时只需一次扫描,后面迭代均使用该矩阵,利用布尔矩阵依次生成第k频繁集。本发明所述方法及系统与现有技术中的Apriori算法相比,省去类矩阵计算和裁剪的步骤,并且通过对矩阵的行和列向量的裁剪,来提高计算频繁集的效率并行化的算法思想将数据集划分成多个数据块算,然后在扫描各个数据块进行相关关联规则挖掘,最后汇总得出结果挖掘结果,大大的提高运算效率。
Description
技术领域
本发明数据挖掘技术领域,尤其涉及的是一种基于Apriori算法的数据挖掘方法及系统。
背景技术
关联规则数据挖掘,是从巨大的数据集中找出感兴趣规则和相关关系。这些项集常存储在交易数据库中。关联规则是数据挖掘的核心技术之一,并得到了广泛的商业和学术研究,特别是对于处于大数据时代的今天。关联规则技术的研究和发展一直是业界热门话题。
现有技术中,大多数关联规则算法可以分为一下两类:
(1)广度优先算法:是从下到上的搜索数据集,先是找出候选集,然后从中找出频繁集
(2)深度优先算法:和广度优先算法比,这类算法不需要生成候集,是基于频繁模式增长的异类算法
在关联规则算法中最著名的算法是Apriori算法,是Agrawal和Srikantt于1994年提出的,也是一个广度优先的算法。Apriori算法采取了自底向上、分层搜索策略,这意味要找到k-项集,就需要做k次迭代。Apriori算法可以简单分为两步。第一步为连接(类矩阵运算),第二步为剪枝(去掉那些没必要的中间结果)。首先找出所有频繁1-项集的集合Ll,L1用于找频繁2-项集的集合L2,而L2用于找L3,如此下去,直到不能找到频繁k-项集。并利用事先设定好的最小支持度阈值进行筛选,将小于最小支持度的候选项集删除,再进行下一次的合并生成该层的频繁项集。
传统的Apriori算法在实际应用时存在着以下的缺陷:该算法会产生大量的频繁项集,而且其中会存在着规则冗余现象;会重复扫描事务数据库,增加读取数据库的I/O次数,从而因计算项过多而造成执行缓慢,导致运算效率低下。
因此,现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于为用户提供一种基于Apriori算法的数据挖掘方法及系统,用于克服现有技术的数据挖掘算法重复扫描事务数据库,不仅运算效率低下,而且增加运算服务器负担的缺陷。
本发明解决技术问题所采用的技术方案如下:
一种基于Apriori算法的数据挖掘方法,其中,包括:
A、扫描事务数据库中的每一条事务记录,以其中含有的事务项是否在事务中出现为基准,将事务数据库中记录的信息转化成布尔矩阵,同时还记录同一个事务项在事务数据库中重复出现次数的数组TS[s];
B、根据所述数组TS[s]和所述布尔矩阵中每个事务项所对应的行向量的值,计算第一候选集中每个事务项的支持度;将支持度大于预设的支持度阈值的事务项划入第一频繁集,将支持度小于预设的支持度阈值的事务项删除;
C、根据所述第一频繁集生成第二候选集,根据所述数组TS[s]和所述第二候选集中任意两个事务项所对应的布尔矩阵中的行向量,迭代计算第二候选集中任意两个事务项组合后的支持度,将支持度大于预设的支持度阈值的两个组合事务项划入第二频繁集,将支持度小于预设的支持度阈值的两个组合事务项删除;
D、根据所述第二频繁集生成第三候选集,迭代计算第三候选集至第k候选集的支持度,直到所述第k+1频繁集为空或者只含有一个事务项,结束数据处理,并输出所有频繁集;所述K为大于1的自然数。
所述基于Apriori算法的数据挖掘方法,其中,所述步骤A包括:
A1、以该事务项中记录的信息在事务中出现,则标识为1,若该事务项中记录的信息在事务中未出现,则标识为0为基准,将事务数据库中记载的信息转化成布尔矩阵;
A2、删除布尔矩阵中数组TS[s]记录的重复次数小于预定数值的事务项。
所述基于Apriori算法的数据挖掘方法,其中,所述步骤A中记录同一个事务项在事务中重复出现次数的数组TS[s]的方法包括:
扫描每一条事务数据库中的事务记录,并将所述事务记录转化成代表事务的列向量;
判断所述列向量是否存在事务矩阵中,若存在,则将该条列向量的事务计数上加1;否则将该条列向量保存到事务矩阵中,并将该条列向量对应的事务计数为1;
遍历事务数据库后,得到同一个事务项在事务中重复出现次数的数组TS[s]。
所述基于Apriori算法的数据挖掘方法,其中,所述步骤D中还包括:
在迭代计算第三候选集至第k候选集的支持度后,将计算出支持度小于预设的支持度阈值的事务项组合删除。
所述基于Apriori算法的数据挖掘方法,其中,所述步骤A之前还包括:
将事务数据库中的数据分割成N部分,基于Hadoop平台实现数据的并行化处理。
一种基于Apriori算法的数据挖掘系统,其中,包括:
数据压缩模块,用于扫描事务数据库中的每一条事务记录,以其中含有的事务项是否在事务中出现为基准,将事务数据库中的记录的信息转化成布尔矩阵,同时还记录同一个事务项在事务中重复出现次数的数组TS[s];
第一级数据处理模块,用于根据所述数组TS[s]和所述布尔矩阵中每个事务项所对应的行向量的值,计算第一候选集中每个事务项的支持度;将支持度大于预设的支持度阈值的事务项划入第一频繁集,将支持度小于预设的支持度阈值的事务项删除;
第二级数据处理模块,用于根据所述第一频繁集生成第二候选集,根据所述数组TS[s]和所述第二候选集中任意两个事务项所对应的布尔矩阵中的行向量,迭代计算第二候选集中任意两个事务项组合后的支持度,将支持度大于预设的支持度阈值的两个组合事务项划入第二频繁集,将支持度小于预设的支持度阈值的两个组合事务项删除;
循环迭代计算及结果输出模块,用于根据所述第二频繁集生成第三候选集,迭代计算第三候选集至第k候选集的支持度,直到所述第k+1频繁集为空或者只含有一个事务项,结束数据处理,并输出所有频繁集;所述K为大于1的自然数。
所述基于Apriori算法的数据挖掘系统,其中,在所述数据压缩模块中包括:
矩阵转化单元,以该事务项中记录的信息在事务中出现,则标识为1,若该事务项中记录的信息在事务中未出现,则标识为0为基准,将事务数据库中记载的信息转化成布尔矩阵;
事务项简化单元,用于删除布尔矩阵中数组TS[s]记录的重复次数小于预定数值的事务项。
所述基于Apriori算法的数据挖掘系统,其中,在所述数据压缩模块中包括:
扫描记录单元,用于扫描每一条事务数据库中的事务记录,并将所述事务记录转化成代表事务的列向量;
计数单元,用于判断所述列向量是否存在事务矩阵中,若存在,则将该条列向量的事务计数上加1;否则将该条列向量保存到事务矩阵中,并将该条列向量对应的事务计数为1;
数组输出单元,用于遍历事务数据库,得到同一个事务项在事务数据库中重复出现次数的数组TS[s]。
所述基于Apriori算法的数据挖掘系统,其中,在循环迭代计算及结果输出模块中包括:
在迭代计算第三候选集至第k候选集的支持度后,将计算出支持度小于预设的支持度阈值的事务项组合删除。
所述基于Apriori算法的数据挖掘系统,其中,所述系统还包括:
并行处理模块,用于将事务数据库中的数据分割成N部分,基于Hadoop平台实现数据的并行化处理。
有益效果,本发明提供了一种基于Apriori算法的数据挖掘方法及系统,使用布尔矩阵实现对事务的二进制编码,引入计数权值,使一条事务向量可以表达多条相同的事物记录,起着压缩矩阵的作用。算法运行时只需一次扫描,后面迭代均使用该矩阵,利用布尔矩阵依次生成第k频繁集。本发明所述方法及系统与现有技术中的Apriori算法相比,省去类矩阵计算和裁剪的步骤,并且通过对矩阵的行和列向量的裁剪,来提高计算频繁集的效率并行化的算法思想将数据集划分成多个数据块算,然后在扫描各个数据块进行相关关联规则挖掘,最后汇总得出结果挖掘结果,大大的提高运算效率。
附图说明
图1是本发明提供的一种基于Apriori算法的数据挖掘方法步骤流程图。
图2是本发明提供的一种基于Apriori算法的数据挖掘方法具体应用实施例的步骤流程图。
图3是本发明提供的一种基于Apriori算法的数据挖掘方法基于Hadoop平台时的具体应用实施例的步骤流程图。
图4是本发明提供的基于Apriori算法的数据挖掘系统的原理结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
本发明提供了一种基于Apriori算法的数据挖掘方法,如图1所示,所述方法包括:
S1、扫描事务数据库中的每一条事务记录,以其中含有的事务项是否在事务中出现为基准,将事务数据库中记录的信息转化成布尔矩阵,同时还记录同一个事务项在事务数据库中重复出现次数的数组TS[s]。
在本步骤中,将其中含有的事务项与事务信息转化成布尔矩阵,对其中的数据进行压缩。具体的,所述步骤还有两个部分,建立布尔矩阵的步骤和记录事务在数据库中出现次数的步骤。
建立布尔矩阵的步骤包括:首先对其中的数据进行定义,便于进行矩阵运算,其定义内容如下:
设事务数据库,事务项集,为事务项集中的任一事务项,为事务项对应的行向量,其中
,其中代表事务项在事务是否出现,若事务中包含事务项,则=1;反之则=0;
则根据上述定义,事务数据库D转化的m×n阶布尔矩阵为:
其中,=0或者=1(0≤i≤n,0≤j≤m)。
根据上述定义,可以得到,事务项中任意一项的支持度为:
。
所述步骤S1包括:
S11、以该事务项中记录的信息在事务中出现,则标识为1,若该事务项中记录的信息在事务中未出现,则标识为0为基准,将事务数据库中记载的信息转化成布尔矩阵。
S12、删除布尔矩阵中数组TS[s]记录的重复次数小于预定数值的事务项。
所述步骤S1中记录同一个事务项在事务中重复出现次数的数组TS[s]的方法包括:
扫描每一条事务数据库中的事务记录,并将所述事务记录转化成代表事务的列向量;
判断所述列向量是否存在事务矩阵中,若存在,则将该条列向量的事务计数上加1;否则将该条列向量保存到事务矩阵中,并将该条列向量对应的事务计数为1;
遍历事务数据库后,得到同一个事务项在事务中重复出现次数的数组TS[s]。
S2、根据所述数组TS[s]和所述布尔矩阵中每个事务项所对应的行向量的值,计算第一候选集中每个事务项的支持度;将支持度大于预设的支持度阈值的事务项划入第一频繁集,将支持度小于预设的支持度阈值的事务项删除。
具体的,在本步骤中采用如下公式计算第一候选集的支持度:
;
使用上述公式逐步对每个事务项的支持度进行计算,并将支持度的值大于预设的支持度阈值的事务项划入第一频繁集,将小于预设的支持度阈值的事务项划入第一非频繁集。
S3、根据所述第一频繁集生成第二候选集,根据所述数组TS[s]和所述第二候选集中任意两个事务项所对应的布尔矩阵中的行向量,迭代计算第二候选集中任意两个事务项组合后的支持度,将支持度大于预设的支持度阈值的两个组合事务项划入第二频繁集,将支持度小于预设的支持度阈值的两个组合事务项删除。
第二候选集的支持度计算公式为:
;
其中,运算符表示两对应元素值的乘积;具体的,所述第二候选集中支持度的计算,即是将其中任意两个事务项的数据组合成一组,然后进行上述公式的计算,并将支持度大于预设的支持度阈值的两个组合事务项划入第二频繁集,否则划入第二非频繁集,由于第二非频繁集所对应事务项属于非频繁信息,因此可以将其在布尔矩阵中对应的列删除。
S4、根据所述第二频繁集生成第三候选集,迭代计算第三候选集至第k候选集的支持度,直到所述第k+1频繁集为空或者只含有一个事务项,结束数据处理,并输出所有频繁集;所述K为大于1的自然数。
由第二频繁集中的信息生成第三候选集,采用迭代计算的方法,计算第三候选集一直到第k候选集的支持度,直到选出全部的频繁集。
具体的,在本步骤中采用的计算支持度的公式为:
第k候选集的支持度计算公式为:
;
在上述公式中,1≤k≤n;n为事务数据库中事务的总条数,所述表示为k个事务项,所述为k个事务项所对应的行向量。
根据第(k-1)频繁集,生成k候选项集,同时根据第(k-1)非频繁集删除第k候选集中包含第(k-1)非频繁集的项集,然后计算剩下的k-候选项集的支持度计数。在迭代计算第三候选集至第k候选集的支持度后,将计算出支持度小于预设的支持度阈值的事务项组合删除。
如图2所示,为本发明所述方法的具体实施例的算法步骤流程图,如图所示,(1)扫描数据库D,然后将其转化为一个压缩的事务布尔矩阵。行向量代表Item,列向量代表事务,同时并建立一个数组对事务计数。扫描一条事务记录然后将其转化为一条代表事务的列向量。然后,核对该条向量是否存在矩阵中,如果存在则将对应的事务计数加1;如果不存在,将该向量加入矩阵,并将该事务计数设置为1,在布尔矩阵中相同的事务只有一条记录和相应的事务计数来表示该事务的真实的记录数。
设交易事务数据库D拥有m个项和n条事务记录,经过扫描后生成布尔矩阵,其中的计算公式如下:
;
得到事务计数数组TS[s]。TS[k]的值代表事务在数据库中出现的次数,该数组起着压缩矩阵的作用。
例如,以下面的表一和表二中的信息为例:
在事务数据库D中,ID为1那一行可以表示为ID=1的用户观看过电视剧目A,B;其他依次类推。进行布尔矩阵转化后,行代表电视剧目,列代表这些观看节目组合的ID数量,其中TS[s]=2就表示有两个ID观看过相同的节目组合,例如ID=5,7都观看过节目组合A,C。节目F只出现过一次,亦可以作为非频繁事务从矩阵中剔除。
(2)生成1阶频繁集:计算项的支持度计数(Support_count)和对矩阵进行裁剪,其使用计算公式:
计算项的支持度计数。如果比支持度阈值小,那么为1阶非频繁集,该项在计算2阶频繁集时没用,因此所以删除该行向量,最后生成的矩阵是由1阶频繁集组成的,扫描矩阵,删除列向量大小小于2的列。
(3)生成2阶频繁集:根据上一步生成的1阶频繁集生成2阶候选集,然后计算2阶候选项集的支持度计数,是将两个项对应的行向量和事务计数数组TS[s]进行“AND”操作然后迭代求。其计算公式入下:;
其中运算符表示两向量的“AND”计算,其结果是一个向量,该向量元素值是两向量对应元素值的乘,然后将向量的内元素累加得到支持度计数,如果计算出来的支持度计数小于最小支持度计数,将对应的2阶候选项集划入2阶非频繁集,否则将对应的2阶候选项集划入2阶频繁集
(4)生成K阶频繁集:根据(k-1)阶频繁集,生成k阶候选项集,同时根据(k-1)阶非频繁集删除k阶候选集中包含(k-1)阶非频繁集的项集。
计算剩下的k阶候选项集的支持度计数,其计算公式如下:
其中为k个项对应行向量,其下标并不是连贯的,项的总数为k。将项集的项对应的行向量和TS[s]进行乘操作,得到一个行向量,并对其求和,其结果为项集的支持度计数。如果支持度计数小于最小支持度计数,则将其划入k阶非频繁集,反之,则将该项集划入k阶频繁集。
(5)循环执行步骤(4),当筛选后k阶候选项集无频繁集,或k阶频繁集中只有一个项集时,循环停止,返回所有的频繁集。
所述步骤S1之前还包括:
将事务数据库中的数据分割成N部分,基于Hadoop平台实现数据的并行化处理。
具体的,如图3所述为将上述方法应用在Hadoop平台实现数据的并行化处理的步骤流程示意图。
将事务数据库中数据首先分割成N个部分,然后这每个部分同时按照上述方法的步骤进行信息处理,依次得到1阶候选集、2阶候选集。。。k阶候选集,k阶频繁集,从而实现事务数据库中频繁信息的挖掘。
Hadoop是一个很高效的云计算平台,是一个主从式的架构,主节点负责任务的控制和分配。Mapreduce并行计算框架可以实现挖掘任务的并行化,其分布式文件系统HDFS由一个Namenode节点和多个DataNode节点组成,实现数据集的多节点存储,并且可以统一访问。通过HDFS可以实现对事务数据的自动分块。数据分块有水平和垂直两种,由于MC_Apriori最后要转化为矩阵,并且在计算本地支持度的时候最好把一个事务都计算完,所以划分方法选择的是垂直划分。一个分块里面的事务是完整的,不会影响本地支持度计数的计算。对转化为矩阵的分区数据进行计算时,不用读取其他分块的数据。在Hadoop平台中支持本地化运行,就是让程序运行在所需数据的节点上。
和Hadoop经典例子单词计算类似,Apriori算法的Mapreduce化也是一个计数的过程。将HDFS上存放的事务数据转化为矩阵,在多节点上的实现事务数据矩阵转化存储,然后在各节点计算候选集的本地支持度计数,这是多个Map任务并行运行,在该Map过程中,将候选集作为Map程序输出的Key值,而候选集的本地支持度计数为Value,最后以<Key,Value>的形式输出,并且作为Reduce过程中输出。在Reduce阶段对候选集的本地支持度进行累加计数,得到候选集的全局支持度计数,并且根据全局支持度计数计算出频繁项集和非频繁项集,为下一阶段的Mapreduce的输入(候选集计算)做准备,整个过程是并行化的。
本发明在上述方法的基础上,还提供了一种基于Apriori算法的数据挖掘系统,如图4所示,所述系统包括:
数据压缩模块110,用于扫描事务数据库中的每一条事务记录,以其中含有的事务项是否在事务中出现为基准,将事务数据库中的记录的信息转化成布尔矩阵,同时还记录同一个事务项在事务中重复出现次数的数组TS[s];
第一级数据处理模块120,用于根据所述数组TS[s]和所述布尔矩阵中每个事务项所对应的行向量的值,计算第一候选集中每个事务项的支持度;将支持度大于预设的支持度阈值的事务项划入第一频繁集,将支持度小于预设的支持度阈值的事务项删除;
第二级数据处理模块130,用于根据所述第一频繁集生成第二候选集,根据所述数组TS[s]和所述第二候选集中任意两个事务项所对应的布尔矩阵中的行向量,迭代计算第二候选集中任意两个事务项组合后的支持度,将支持度大于预设的支持度阈值的两个组合事务项划入第二频繁集,将支持度小于预设的支持度阈值的两个组合事务项删除;
循环迭代计算及结果输出模块140,用于根据所述第二频繁集生成第三候选集,迭代计算第三候选集至第k候选集的支持度,直到所述第k+1频繁集为空或者只含有一个事务项,结束数据处理,并输出所有频繁集;所述K为大于1的自然数。
在所述数据压缩模块中包括:
矩阵转化单元,以该事务项中记录的信息在事务中出现,则标识为1,若该事务项中记录的信息在事务中未出现,则标识为0为基准,将事务数据库中记载的信息转化成布尔矩阵;
事务项简化单元,用于删除布尔矩阵中数组TS[s]记录的重复次数小于预定数值的事务项。
在所述数据压缩模块中包括:
扫描记录单元,用于扫描每一条事务数据库中的事务记录,并将所述事务记录转化成代表事务的列向量;
计数单元,用于判断所述列向量是否存在事务矩阵中,若存在,则将该条列向量的事务计数上加1;否则将该条列向量保存到事务矩阵中,并将该条列向量对应的事务计数为1;
数组输出单元,用于遍历事务数据库,得到同一个事务项在事务数据库中重复出现次数的数组TS[s]。
在循环迭代计算及结果输出模块中包括:
在迭代计算第三候选集至第k候选集的支持度后,将计算出支持度小于预设的支持度阈值的事务项组合删除。
所述系统还包括:
并行处理模块,用于将事务数据库中的数据分割成N部分,基于Hadoop平台实现数据的并行化处理。
本发明提供了一种基于Apriori算法的数据挖掘方法及系统,使用布尔矩阵实现对事务的二进制编码,引入计数权值,使一条事务向量可以表达多条相同的事物记录,起着压缩矩阵的作用。算法运行时只需一次扫描,后面迭代均使用该矩阵,利用布尔矩阵依次生成K-频繁集,与现有技术中的Apriori算法相比,省去类矩阵计算和裁剪的步骤,并且通过对矩阵的行和列向量的裁剪,来提高计算k-频繁的效率并行化的算法思想将数据集划分成多个数据块算,然后在扫描各个数据块进行相关关联规则挖掘,最后汇总得出结果挖掘结果,大大的提高运算效率。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种基于Apriori算法的数据挖掘方法,其特征在于,包括:
A、扫描事务数据库中的每一条事务记录,以其中含有的事务项是否在事务中出现为基准,将事务数据库中记录的信息转化成布尔矩阵,同时还记录同一个事务项在事务数据库中重复出现次数的数组TS[s];
B、根据所述数组TS[s]和所述布尔矩阵中每个事务项所对应的行向量的值,计算第一候选集中每个事务项的支持度;将支持度大于预设的支持度阈值的事务项划入第一频繁集,将支持度小于预设的支持度阈值的事务项删除;
C、根据所述第一频繁集生成第二候选集,根据所述数组TS[s]和所述第二候选集中任意两个事务项所对应的布尔矩阵中的行向量,迭代计算第二候选集中任意两个事务项组合后的支持度,将支持度大于预设的支持度阈值的两个组合事务项划入第二频繁集,将支持度小于预设的支持度阈值的两个组合事务项删除;
D、根据所述第二频繁集生成第三候选集,迭代计算第三候选集至第k候选集的支持度,直到所述第k+1频繁集为空或者只含有一个事务项,结束数据处理,并输出所有频繁集;所述K为大于1的自然数。
2.根据权利要求1所述基于Apriori算法的数据挖掘方法,其特征在于,所述步骤A包括:
A1、以该事务项中记录的信息在事务中出现,则标识为1,若该事务项中记录的信息在事务中未出现,则标识为0为基准,将事务数据库中记载的信息转化成布尔矩阵;
A2、删除布尔矩阵中数组TS[s]记录的重复次数小于预定数值的事务项。
3.根据权利要求2所述基于Apriori算法的数据挖掘方法,其特征在于,所述步骤A中记录同一个事务项在事务中重复出现次数的数组TS[s]的方法包括:
扫描每一条事务数据库中的事务记录,并将所述事务记录转化成代表事务的列向量;
判断所述列向量是否存在事务矩阵中,若存在,则将该条列向量的事务计数上加1;否则将该条列向量保存到事务矩阵中,并将该条列向量对应的事务计数为1;
遍历事务数据库后,得到同一个事务项在事务中重复出现次数的数组TS[s]。
4.根据权利要求3所述基于Apriori算法的数据挖掘方法,其特征在于,所述步骤D中还包括:
在迭代计算第三候选集至第k候选集的支持度后,将计算出支持度小于预设的支持度阈值的事务项组合删除。
5.根据权利要求3所述基于Apriori算法的数据挖掘方法,其特征在于,所述步骤A之前还包括:
将事务数据库中的数据分割成N部分,基于Hadoop平台实现数据的并行化处理。
6.一种基于Apriori算法的数据挖掘系统,其特征在于,包括:
数据压缩模块,用于扫描事务数据库中的每一条事务记录,以其中含有的事务项是否在事务中出现为基准,将事务数据库中的记录的信息转化成布尔矩阵,同时还记录同一个事务项在事务中重复出现次数的数组TS[s];
第一级数据处理模块,用于根据所述数组TS[s]和所述布尔矩阵中每个事务项所对应的行向量的值,计算第一候选集中每个事务项的支持度;将支持度大于预设的支持度阈值的事务项划入第一频繁集,将支持度小于预设的支持度阈值的事务项删除;
第二级数据处理模块,用于根据所述第一频繁集生成第二候选集,根据所述数组TS[s]和所述第二候选集中任意两个事务项所对应的布尔矩阵中的行向量,迭代计算第二候选集中任意两个事务项组合后的支持度,将支持度大于预设的支持度阈值的两个组合事务项划入第二频繁集,将支持度小于预设的支持度阈值的两个组合事务项删除;
循环迭代计算及结果输出模块,用于根据所述第二频繁集生成第三候选集,迭代计算第三候选集至第k候选集的支持度,直到所述第k+1频繁集为空或者只含有一个事务项,结束数据处理,并输出所有频繁集;所述K为大于1的自然数。
7.根据权利要求6所述基于Apriori算法的数据挖掘系统,其特征在于,在所述数据压缩模块中包括:
矩阵转化单元,以该事务项中记录的信息在事务中出现,则标识为1,若该事务项中记录的信息在事务中未出现,则标识为0为基准,将事务数据库中记载的信息转化成布尔矩阵;
事务项简化单元,用于删除布尔矩阵中数组TS[s]记录的重复次数小于预定数值的事务项。
8.根据权利要求6所述基于Apriori算法的数据挖掘系统,其特征在于,在所述数据压缩模块中包括:
扫描记录单元,用于扫描每一条事务数据库中的事务记录,并将所述事务记录转化成代表事务的列向量;
计数单元,用于判断所述列向量是否存在事务矩阵中,若存在,则将该条列向量的事务计数上加1;否则将该条列向量保存到事务矩阵中,并将该条列向量对应的事务计数为1;
数组输出单元,用于遍历事务数据库,得到同一个事务项在事务数据库中重复出现次数的数组TS[s]。
9.根据权利要求8所述基于Apriori算法的数据挖掘系统,其特征在于,在循环迭代计算及结果输出模块中包括:
在迭代计算第三候选集至第k候选集的支持度后,将计算出支持度小于预设的支持度阈值的事务项组合删除。
10.根据权利要求8所述基于Apriori算法的数据挖掘系统,其特征在于,所述系统还包括:
并行处理模块,用于将事务数据库中的数据分割成N部分,基于Hadoop平台实现数据的并行化处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510950522.2A CN105608135B (zh) | 2015-12-18 | 2015-12-18 | 一种基于Apriori算法的数据挖掘方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510950522.2A CN105608135B (zh) | 2015-12-18 | 2015-12-18 | 一种基于Apriori算法的数据挖掘方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105608135A true CN105608135A (zh) | 2016-05-25 |
CN105608135B CN105608135B (zh) | 2020-03-31 |
Family
ID=55988075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510950522.2A Active CN105608135B (zh) | 2015-12-18 | 2015-12-18 | 一种基于Apriori算法的数据挖掘方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105608135B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126577A (zh) * | 2016-06-17 | 2016-11-16 | 北京理工大学 | 一种基于数据源划分矩阵的加权关联规则挖掘方法 |
CN106779305A (zh) * | 2016-11-22 | 2017-05-31 | 南方电网科学研究院有限责任公司 | 客户交互痕迹分析方法及装置 |
CN106991141A (zh) * | 2017-03-21 | 2017-07-28 | 北京邮电大学 | 一种基于深度剪枝策略的关联规则挖掘方法 |
CN107943946A (zh) * | 2017-11-24 | 2018-04-20 | 重庆科技学院 | 基于Apriori算法的试题库知识点间关联性挖掘方法 |
CN107967306A (zh) * | 2017-11-13 | 2018-04-27 | 华中科技大学 | 一种存储系统中关联块的快速挖掘方法 |
CN109300014A (zh) * | 2018-10-24 | 2019-02-01 | 中南民族大学 | 基于日志挖掘的商品推荐方法、装置、服务器及存储介质 |
CN110244184A (zh) * | 2019-07-04 | 2019-09-17 | 国网江苏省电力有限公司 | 一种频繁项集的配网线路故障规律挖掘方法、系统及介质 |
CN110309179A (zh) * | 2019-05-22 | 2019-10-08 | 桂林电子科技大学 | 基于并行pso的最大容错频繁项集挖掘方法 |
CN114265886A (zh) * | 2021-12-28 | 2022-04-01 | 航天科工智能运筹与信息安全研究院(武汉)有限公司 | 一种基于改进Apriori算法的相似模型检索系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605749A (zh) * | 2013-11-20 | 2014-02-26 | 同济大学 | 一种基于多参数干扰的隐私保护关联规则数据挖掘方法 |
CN104376365A (zh) * | 2014-11-28 | 2015-02-25 | 国家电网公司 | 一种基于关联规则挖掘的信息系统运行规则库的构造方法 |
CN104573124A (zh) * | 2015-02-09 | 2015-04-29 | 山东大学 | 一种基于并行化关联规则算法的教育云应用统计方法 |
CN104731889A (zh) * | 2015-03-13 | 2015-06-24 | 河海大学 | 一种估算查询结果大小的方法 |
-
2015
- 2015-12-18 CN CN201510950522.2A patent/CN105608135B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605749A (zh) * | 2013-11-20 | 2014-02-26 | 同济大学 | 一种基于多参数干扰的隐私保护关联规则数据挖掘方法 |
CN104376365A (zh) * | 2014-11-28 | 2015-02-25 | 国家电网公司 | 一种基于关联规则挖掘的信息系统运行规则库的构造方法 |
CN104573124A (zh) * | 2015-02-09 | 2015-04-29 | 山东大学 | 一种基于并行化关联规则算法的教育云应用统计方法 |
CN104731889A (zh) * | 2015-03-13 | 2015-06-24 | 河海大学 | 一种估算查询结果大小的方法 |
Non-Patent Citations (2)
Title |
---|
罗芳等: ""基于MapReduce的分块压缩矩阵Apriori的并行化研究"", 《西安文理学院学报( 自然科学版)》 * |
陈方健: ""图书借阅行为模式挖掘方法在学生借书管理系统中的应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126577A (zh) * | 2016-06-17 | 2016-11-16 | 北京理工大学 | 一种基于数据源划分矩阵的加权关联规则挖掘方法 |
CN106779305A (zh) * | 2016-11-22 | 2017-05-31 | 南方电网科学研究院有限责任公司 | 客户交互痕迹分析方法及装置 |
CN106779305B (zh) * | 2016-11-22 | 2021-05-14 | 南方电网科学研究院有限责任公司 | 客户交互痕迹分析方法及装置 |
CN106991141B (zh) * | 2017-03-21 | 2020-12-11 | 北京邮电大学 | 一种基于深度剪枝策略的关联规则挖掘方法 |
CN106991141A (zh) * | 2017-03-21 | 2017-07-28 | 北京邮电大学 | 一种基于深度剪枝策略的关联规则挖掘方法 |
CN107967306A (zh) * | 2017-11-13 | 2018-04-27 | 华中科技大学 | 一种存储系统中关联块的快速挖掘方法 |
CN107967306B (zh) * | 2017-11-13 | 2020-07-03 | 华中科技大学 | 一种存储系统中关联块的快速挖掘方法 |
CN107943946B (zh) * | 2017-11-24 | 2019-08-30 | 重庆科技学院 | 基于Apriori算法的试题库知识点间关联性挖掘方法 |
CN107943946A (zh) * | 2017-11-24 | 2018-04-20 | 重庆科技学院 | 基于Apriori算法的试题库知识点间关联性挖掘方法 |
CN109300014B (zh) * | 2018-10-24 | 2020-09-08 | 中南民族大学 | 基于日志挖掘的商品推荐方法、装置、服务器及存储介质 |
CN109300014A (zh) * | 2018-10-24 | 2019-02-01 | 中南民族大学 | 基于日志挖掘的商品推荐方法、装置、服务器及存储介质 |
CN110309179A (zh) * | 2019-05-22 | 2019-10-08 | 桂林电子科技大学 | 基于并行pso的最大容错频繁项集挖掘方法 |
CN110309179B (zh) * | 2019-05-22 | 2023-04-07 | 桂林电子科技大学 | 基于并行pso的最大容错频繁项集挖掘方法 |
CN110244184A (zh) * | 2019-07-04 | 2019-09-17 | 国网江苏省电力有限公司 | 一种频繁项集的配网线路故障规律挖掘方法、系统及介质 |
CN114265886A (zh) * | 2021-12-28 | 2022-04-01 | 航天科工智能运筹与信息安全研究院(武汉)有限公司 | 一种基于改进Apriori算法的相似模型检索系统 |
CN114265886B (zh) * | 2021-12-28 | 2024-04-30 | 航天科工智能运筹与信息安全研究院(武汉)有限公司 | 一种基于改进Apriori算法的相似模型检索系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105608135B (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105608135A (zh) | 一种基于Apriori算法的数据挖掘方法及系统 | |
National Research Council et al. | Frontiers in massive data analysis | |
CN109753531A (zh) | 一种大数据统计方法、系统、计算机设备及存储介质 | |
US10037355B2 (en) | Mechanisms for merging index structures in MOLAP while preserving query consistency | |
KR102028708B1 (ko) | 대용량 이벤트 파일에서 시간 관계를 병렬 탐사하기 위한 방법 | |
US9798732B2 (en) | Semantic associations in data | |
CN107102999A (zh) | 关联分析方法和装置 | |
US20160085832A1 (en) | System and method of analyzing data using bitmap techniques | |
US11561939B2 (en) | Iterative data processing | |
CN103678519A (zh) | 一种支持Hive DML增强的混合存储系统及其方法 | |
CN104008420A (zh) | 一种基于自动编码机的分布式离群点检测方法及系统 | |
CN101739454B (zh) | 数据处理系统 | |
Gupta et al. | Faster as well as early measurements from big data predictive analytics model | |
WO2016157275A1 (ja) | 計算機及びグラフデータ生成方法 | |
CN106503268A (zh) | 数据对比方法、装置和系统 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
US11868363B2 (en) | Method and system for persisting data | |
CN106294805A (zh) | 数据处理方法及装置 | |
CN109933589B (zh) | 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 | |
Shah et al. | Incremental mining of association rules: A survey | |
CN103984723A (zh) | 一种针对增量数据对频繁项进行更新数据挖掘方法 | |
CN104462095A (zh) | 一种查询语句公共部分的提取方法及装置 | |
CN103761298A (zh) | 一种基于分布式架构的实体匹配方法 | |
CN106776704B (zh) | 统计信息收集方法和装置 | |
Ren et al. | Efficient processing of shortest path queries in evolving graph sequences |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |