基于改进Apriori算法的关联规则挖掘系统的制作方法

文档序号:8395993阅读:796来源:国知局
基于改进Apriori算法的关联规则挖掘系统的制作方法
【技术领域】
[0001] 本发涉及一套基于改进Apriori算法的关联规则挖掘系统,是一种基于位运算进 行频繁项统计的关联规则挖掘系统,该系统在实现Apriori算法的过程中,减少了剪枝操 作中候选项集子集的检验数量并在由候选项集生成频繁项集时减少了数据库扫描次数,属 于数据挖掘领域。
【背景技术】
[0002] 随着"啤酒、尿布"案例在营销界的成功运用,人们对不断收集的数据中关联规则 的挖掘越来越感兴趣,关联规则的应用范围也逐渐从超市营销扩展到更多的领域。当前关 联规则挖掘的算法主要有Apriori和FP树。FP树因内存消耗大、实现复杂、系统要求高等 限制,未能在实际使用中得到广泛应用,目前多作教学案例或研宄课题用。Apriori算法是 关联规则挖掘过程中实际采用最多的方法,但是该算法仍存在数据库扫描次数多、候选集 大、挖掘效率低等问题。

【发明内容】

[0003] 本发明的目的在于克服现有技术中存在的不足,提供一种基于改进Apriori算法 的关联规则挖掘系统,采用了基于位运算的频繁项统计方法,简化了剪枝操作复杂度并减 少了数据库扫描的次数,从而提高了关联规则挖掘效率,降低了系统资源的消耗,可以为企 业、商家提供更为高效、方便的关联规则挖掘业务,具有较大实用价值。本发明采用的技术 方案是:
[0004] 本发明提出的基于改进Apriori算法的关联规则挖掘系统,包括数据预处理模 块、连接模块、剪枝模块、频繁项统计模块和关联规则生成模块;所述数据预处理模块与数 据库交互,负责将数据库中的文本数据转换为可进行位运算的整型格式;所述连接模块、剪 枝模块和频繁项统计模块共同构成Apriori算法的具体实现,负责频繁项集的生成;所述 关联规则生成模块与频繁项统计模块交互,负责将频繁项统计模块生成的频繁项转化为具 体的关联规则。
[0005] 本发明的优点在于:基于位运算进行频繁项统计,降低了比较内容复杂度,提高了 比较效率;连接和剪枝操作中,只针对K项集中包含新加入两项的K-1项子集进行Apriori 性质验证,缩小了候选项集子集的Apriori性质验证范围,减少了运算量;频繁项统计中是 对每一条记录统计各候选集中项集的频数,而不是传统实现中每一个项集扫描一次数据库 的方法。总体来说,本发明降低了比较内容的复杂度、减少了数据库扫描次数,从而提高了 关联规则的挖掘效率。
【附图说明】
[0006] 图1为本发明的结构框图。
[0007] 图2为本发明的工作流程图。
【具体实施方式】
[0008] 下面结合具体附图和实施例对本发明作进一步说明。
[0009] 本发明提出的基于改进Apriori算法的关联规则挖掘系统,包括数据预处理模 块、连接模块、剪枝模块、频繁项统计模块和关联规则生成模块;所述数据预处理模块与数 据库交互,负责将数据库中的文本数据转换为可进行位运算的整型格式;所述连接模块、剪 枝模块和频繁项统计模块共同构成Apriori算法的具体实现,负责频繁项集的生成;所述 关联规则生成模块与频繁项统计模块交互,负责将频繁项统计模块生成的频繁项转化为具 体的关联规则。
[0010] 具体地,所述数据预处理模块首先扫描数据库,将数据库中所有的项进行编号,令 所有项组成的集合为I=Ui,i2, in},则用n个二进制位表示各项,二进制数从高到低 位依次代表h,i2,……in,每个二进制位〇代表该项没有出现,1代表出现;然后将数据库 中的数据记录TID= {ik,k彡1nk<n}转换为对应的二进制整型,重新写入数据库;并 且,该模块第一次扫描数据库式统计了各项ik出现的频数,将其中频数超过最小支持度S 的项的集合称作频繁1项集L1。
[0011] 举例来说,假设数据库中有4个项,分别用于记录姓名,地址,电话,邮编;如果一 条数据记录中,只有姓名和地址有数据,则这条数据记录转换为二进制整型为1100。
[0012] 所述连接模块用来由频繁k-1项集"^生成频繁k项集Lk;设IkdPI^是L^中 的项集,它们均按照约定用二进制数表示:相应项编号对应的二进制位值为1,其它位为0, 对Ikl和Ik2执行异或操作后所得结果,左起前两个为1的二进制位U和V即为要连接的对 象,设从左到右对应二进制从高位到低位;接下来从IkdPIk2中查找V位为〇的项,并将该 位置1,V位以下各位置0即完成IkdPIk2的连接操作,将其加入候选集Ck;对LH中的任 意两个项集执行类似操作。
[0013] 所述剪枝模块与所述连接模块相交互,根据Apriori性质,频繁项集的任何子集 一定是频繁项集,将候选集Ck中,k-1项子集不在Lh中的项剪掉;对任意Ck中的项集Ikl, 其对应二进制数如0……1……〇……1……1……〇,除最右边两个1以外,从左到右依次将 位为1的位置〇,然后与Lh中的每一项执行异或操作,如果扫描完整个L^,没有出现结果 为〇的项,则将Ik#Ck中剪去;
[0014] 所述频繁项统计模块与数据库相交互,并和所述连接模块及所述剪枝模块共同构 成Apriori算法的主体;频繁项统计模块主要负责从数据库中依次读入每条记录TID,然后 与Ck中的每一项Ikl,执行如下操作(77Da/Al)?/(M,若结果为0则对Ikl的频数统计加1 ; 最后从Ck中选出频数超过最小支持度s的项集组成Lk;
[0015] 所述关联规则生成模块主要用来根据所述频繁项统计模块的结果生成相应的关 联规则,对Lk中的每一项Ik与L^中的每一项I^,执行如下操作al ^,若结果 不为〇,设Ik值为〇……1……〇……1……1……〇且对应位为1的位置分别为kl,k2,…… kn,则如果Ik最低位1比Ik_i最低位1位低,则生成的关联规则为ikl,ik2, ???iw, , 否则生成关联规则ikl,ik2, ???ikn^2,L ;置信度为Ik
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1