一种处理交易事务数据库数据的方法和装置的制造方法

文档序号:9597973阅读:308来源:国知局
一种处理交易事务数据库数据的方法和装置的制造方法
【技术领域】
[0001] 本发明属于数据挖掘领域,尤其涉及一种处理交易事务数据库数据的方法和装 置。
【背景技术】
[0002] 关联规则的数据挖掘是从巨大的数据集中找出感兴趣规则和相关关系,这些项集 常存储在交易事务数据库中。决策制定者将这些关系应用到决策支持中,例如"Beer和 Diaper"这个数据挖掘的经典案例就是一个对关联规则的挖掘。关联规则是数据挖掘的核 心技术之一,得到了广泛的商业和学术研究,尤其是在今天这种大数据时代,已显示出较大 的发展前途。
[0003] 现有的关联规则算法大致可以分为广度优先算法和深度优先算法两类,其中,广 度优先算法是从下到上的搜索数据集,先是找出候选集,然后从中找出频繁集,和广度优先 算法比,深度优先算法不需要生成候选集,而是基于频繁模式增长的异类算法。
[0004] 在关联规则算法中,最著名的算法是由Agrawal和Srikantt于1994年提出的 Apriori算法,其是一个广度优先算法。Apriori算法采取了自底向上、分层搜索策略,这意 味着要找到k-(即k阶,下文同,例如," 1-"表示1阶,"2_"表示2阶,等等)项集,就需要 做k次迭代。Apriori算法可以简单分为两步,其中,第一步为连接即类矩阵运算,第二步 为剪枝即去掉那些没必要的中间结果。首先找出所有1-频繁项集的集合L1,由集合L1找 出2-频繁项集的集合L2,而集合L2找出集合L3,……,如此下去,直到不能找到k_频繁 项集,并利用事先设定好的最小支持度阈值进行筛选,将小于最小支持度的候选项集删除, 再进行下一次的合并生成该层的频繁项集。
[0005] 然而,上述现有的Apriori算法在实际应用时存在以下缺陷:
[0006] 1)每计算一个k_项集都要扫描一次交易事务数据库,计算所有k_频繁项集则会 重复扫描交易事务数据库,从而增加读取交易事务数据库的I/O次数;
[0007] 2)因计算项过多而造成执行缓慢,运算效率低下。

【发明内容】

[0008] 本发明的目的在于提供一种处理交易事务数据库数据的方法和装置,以提高关联 规则数据挖掘的运算效率。
[0009] 本发明第一方面提供一种处理交易事务数据库数据的方法,所述方法包括:
[0010] 将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算 节点一个分块事务数据库的方式分发至N个并行处理的计算节点,所述N为大于1的自然 数;
[0011] 所述每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵;
[0012] 所述N个并行处理的计算节点通过对所述压缩的事务布尔矩阵的行向量或列向 量进行相"与"计算,得到所有k_频繁项集,所述k为自然数。
[0013] 本发明第二方面提供一种处理交易事务数据库数据的装置,其特征在于,所述装 置包括:
[0014] 分割模块,用于将交易事务数据库的数据分成N份以获得N个分块事务数据库,并 按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,所述N为 大于1的自然数;
[0015] 矩阵压缩模块,用于所述每个计算节点将各自分得的分块事务数据库转化为压缩 的事务布尔矩阵;
[0016] 频繁项集获取模块,用于所述N个并行处理的计算节点通过对所述压缩的事务布 尔矩阵的行向量或列向量进行相"与"计算,得到所有k_频繁项集,所述k为自然数。
[0017] 从上述本发明技术方案可知,一方面,由于每个计算节点将各自分得的分块事务 数据库转化为压缩的事务布尔矩阵只需要扫描一次交易数据库,此后在计算k-频繁项集 时只需要扫描一次事务布尔矩阵即可,从而减少了读取交易事务数据库的I/O次数,提高 了读取交易事务数据库的效率;另一方面,在计算k-频繁项集时,是N个并行处理的计算节 点通过对压缩的事务布尔矩阵的行向量或列向量进行相"与"计算,直接省去现有Apriori 算法的连接和裁剪两步,通过对压缩的事务布尔矩阵的行和列向量的裁剪,提高了 k-频繁 项集的计算效率。
【附图说明】
[0018] 图1是本发明实施例一提供的处理交易事务数据库数据的方法的实现流程示意 图;
[0019] 图2是本发明实施例二提供的处理交易事务数据库数据的装置的结构示意图;
[0020] 图3是本发明实施例三提供的处理交易事务数据库数据的装置的结构示意图;
[0021] 图4是本发明实施例四提供的处理交易事务数据库数据的装置的结构示意图;
[0022] 图5是本发明实施例五提供的处理交易事务数据库数据的装置的结构示意图;
[0023] 图6是本发明实施例六提供的处理交易事务数据库数据的装置的结构示意图。
【具体实施方式】
[0024] 为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施 例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发 明,并不用于限定本发明。
[0025] 本发明实施例提供一种处理交易事务数据库数据的方法,所述方法包括:将交易 事务数据库的数据分成N份得到N个分块事务数据库,并按照每个计算节点一个分块事务 数据库的方式分发至N个并行处理的计算节点,所述N为大于1的自然数;所述每个计算节 点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵;所述N个并行处理的计算节 点通过对所述压缩的事务布尔矩阵的行向量或列向量进行相"与"计算,得到所有k-频繁 项集,所述k为自然数。本发明实施例还提供相应的处理交易事务数据库数据的装置。以 下分别进行详细说明。
[0026] 请参阅附图1,是本发明实施例一提供的处理交易事务数据库数据的方法的实现 流程示意图。附图1示例的方法可用于Spark平台,主要包括以下步骤S101至步骤S103 :
[0027] S101,将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个 计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,其中,N为大于1的 自然数。
[0028] 以Spark平台为例,由于Spark平台是运行在Mesos集群上的平台,而Mesos集群 能支持HDFS和S3这样的文件系统,本发明是以HDFS作为其原始数据存放的文件系统,从 而实现了对交易事务数据库的事务数据集的自动划分,即,将交易事务数据库的数据分成N 份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N 个并行处理的计算节点,例如,Spark平台上N个并行处理的计算节点。
[0029] S102,每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵。
[0030] 在本发明实施例中,每个计算节点可以将经过步骤S101分得的分块事务数据库 中所有相同的交易事务记录为一条交易事务Ti,然后,使用数组TS[s]中的元素 TS[i]记 录交易事务Ti在分块事务数据库中的实际条数,从而实现每个计算节点将各自分得的分 块事务数据库转化为压缩的事务布尔矩阵。具体地,扫描分块事务数据库的交易事务,将每 一条交易事务记录转化为一条代表事务的列向量,然后,核对该列向量是否存在事务布尔 矩阵中,如果存在则将对应的交易事务计数加1 ;如果不存在,将该列向量加入事务布尔矩 阵,并将对应的交易事务计数设置为1。以以下的一个分块事务数据库
[0033] 为例,其转化为压缩的事务布尔矩阵如下:
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1