一种基于Apriori算法的数据挖掘方法及系统的制作方法

文档序号:9839651阅读:1259来源:国知局
一种基于Apriori算法的数据挖掘方法及系统的制作方法
【技术领域】
[0001] 本发明数据挖掘技术领域,尤其涉及的是一种基于Apriori算法的数据挖掘方法 及系统。
【背景技术】
[0002] 关联规则数据挖掘,是从巨大的数据集中找出感兴趣规则和相关关系。这些项集 常存储在交易数据库中。关联规则是数据挖掘的核心技术之一,并得到了广泛的商业和学 术研究,特别是对于处于大数据时代的今天。关联规则技术的研究和发展一直是业界热门 话题。
[0003] 现有技术中,大多数关联规则算法可以分为一下两类: (1) 广度优先算法:是从下到上的搜索数据集,先是找出候选集,然后从中找出频繁集 (2) 深度优先算法:和广度优先算法比,这类算法不需要生成候集,是基于频繁模式增 长的异类算法 在关联规则算法中最著名的算法是Apriori算法,是Agrawal和Srikantt于1994年 提出的,也是一个广度优先的算法。Apriori算法采取了自底向上、分层搜索策略,这意味 要找到k-项集,就需要做k次迭代。Apriori算法可以简单分为两步。第一步为连接(类矩 阵运算),第二步为剪枝(去掉那些没必要的中间结果)。首先找出所有频繁1 一项集的集合 L1,L1用于找频繁2-项集的集合L2,而L2用于找L3,如此下去,直到不能找到频繁k一项 集。并利用事先设定好的最小支持度阈值进行筛选,将小于最小支持度的候选项集删除,再 进行下一次的合并生成该层的频繁项集。
[0004]传统的Apriori算法在实际应用时存在着以下的缺陷:该算法会产生大量的频繁 项集,而且其中会存在着规则冗余现象;会重复扫描事务数据库,增加读取数据库的1/0次 数,从而因计算项过多而造成执行缓慢,导致运算效率低下。
[0005] 因此,现有技术有待于进一步的改进。

【发明内容】

[0006] 鉴于上述现有技术中的不足之处,本发明的目的在于为用户提供一种基于 Apriori算法的数据挖掘方法及系统,用于克服现有技术的数据挖掘算法重复扫描事务数 据库,不仅运算效率低下,而且增加运算服务器负担的缺陷。
[0007] 本发明解决技术问题所采用的技术方案如下: 一种基于Apriori算法的数据挖掘方法,其中,包括: A、 扫描事务数据库中的每一条事务记录,以其中含有的事务项是否在事务中出现为基 准,将事务数据库中记录的信息转化成布尔矩阵,同时还记录同一个事务项在事务数据库 中重复出现次数的数组TS[s]; B、 根据所述数组TS[s]和所述布尔矩阵中每个事务项所对应的行向量的值,计算第一 候选集中每个事务项的支持度;将支持度大于预设的支持度阈值的事务项划入第一频繁 集,将支持度小于预设的支持度阈值的事务项删除; C、 根据所述第一频繁集生成第二候选集,根据所述数组TS[s]和所述第二候选集中任 意两个事务项所对应的布尔矩阵中的行向量,迭代计算第二候选集中任意两个事务项组合 后的支持度,将支持度大于预设的支持度阈值的两个组合事务项划入第二频繁集,将支持 度小于预设的支持度阈值的两个组合事务项删除; D、 根据所述第二频繁集生成第三候选集,迭代计算第三候选集至第k候选集的支持度, 直到所述第k+Ι频繁集为空或者只含有一个事务项,结束数据处理,并输出所有频繁集;所 述K为大于1的自然数。
[0008] 所述基于Apriori算法的数据挖掘方法,其中,所述步骤A包括: A1、以该事务项中记录的信息在事务中出现,则标识为1,若该事务项中记录的信息在 事务中未出现,则标识为〇为基准,将事务数据库中记载的信息转化成布尔矩阵; A2、删除布尔矩阵中数组TS[s]记录的重复次数小于预定数值的事务项。
[0009] 所述基于Apriori算法的数据挖掘方法,其中,所述步骤A中记录同一个事务项在 事务中重复出现次数的数组TS[ s ]的方法包括: 扫描每一条事务数据库中的事务记录,并将所述事务记录转化成代表事务的列向量; 判断所述列向量是否存在事务矩阵中,若存在,则将该条列向量的事务计数上加1;否 则将该条列向量保存到事务矩阵中,并将该条列向量对应的事务计数为1; 遍历事务数据库后,得到同一个事务项在事务中重复出现次数的数组TS[s]。
[0010] 所述基于Apriori算法的数据挖掘方法,其中,所述步骤D中还包括: 在迭代计算第三候选集至第k候选集的支持度后,将计算出支持度小于预设的支持度 阈值的事务项组合删除。
[0011] 所述基于Apriori算法的数据挖掘方法,其中,所述步骤A之前还包括: 将事务数据库中的数据分割成N部分,基于Hadoop平台实现数据的并行化处理。
[0012] -种基于Apriori算法的数据挖掘系统,其中,包括: 数据压缩模块,用于扫描事务数据库中的每一条事务记录,以其中含有的事务项是否 在事务中出现为基准,将事务数据库中的记录的信息转化成布尔矩阵,同时还记录同一个 事务项在事务中重复出现次数的数组TS[s]; 第一级数据处理模块,用于根据所述数组TS[s]和所述布尔矩阵中每个事务项所对应 的行向量的值,计算第一候选集中每个事务项的支持度;将支持度大于预设的支持度阈值 的事务项划入第一频繁集,将支持度小于预设的支持度阈值的事务项删除; 第二级数据处理模块,用于根据所述第一频繁集生成第二候选集,根据所述数组TS [ s ] 和所述第二候选集中任意两个事务项所对应的布尔矩阵中的行向量,迭代计算第二候选集 中任意两个事务项组合后的支持度,将支持度大于预设的支持度阈值的两个组合事务项划 入第二频繁集,将支持度小于预设的支持度阈值的两个组合事务项删除; 循环迭代计算及结果输出模块,用于根据所述第二频繁集生成第三候选集,迭代计算 第三候选集至第k候选集的支持度,直到所述第k+Ι频繁集为空或者只含有一个事务项,结 束数据处理,并输出所有频繁集;所述K为大于1的自然数。
[0013] 所述基于Apriori算法的数据挖掘系统,其中,在所述数据压缩模块中包括: 矩阵转化单元,以该事务项中记录的信息在事务中出现,则标识为1,若该事务项中记 录的信息在事务中未出现,则标识为0为基准,将事务数据库中记载的信息转化成布尔矩 阵; 事务项简化单元,用于删除布尔矩阵中数组TS[s]记录的重复次数小于预定数值的事 务项。
[0014] 所述基于Apriori算法的数据挖掘系统,其中,在所述数据压缩模块中包括: 扫描记录单元,用于扫描每一条事务数据库中的事务记录,并将所述事务记录转化成 代表事务的列向量; 计数单元,用于判断所述列向量是否存在事务矩阵中,若存在,则将该条列向量的事务 计数上加1;否则将该条列向量保存到事务矩阵中,并将该条列向量对应的事务计数为1; 数组输出单元,用于遍历事务数据库,得到同一个事务项在事务数据库中重复出现次 数的数组TS[s]。
[0015] 所述基于Apriori算法的数据挖掘系统,其中,在循环迭代计算及结
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1