一种基于Apriori改进算法的关联规则算法

文档序号:9929997阅读:280来源:国知局
一种基于Apriori改进算法的关联规则算法
【技术领域】
[0001 ]本发明设及数据挖掘、算法分析领域,尤其是设及到数据挖掘技术。
【背景技术】
[0002]在我国,随着信息技术的发展与普及,数据仓库技术也进入了快速发展期,但与发 达国家相比还是有很大的差距。国内的零售市场竞争激烈,特别是商品市场的竞争更为严 酷,虽然我国有一些企业都已逐步走入信息化仓储管理,但目前,国内没有成熟的数据仓库 技术,导致出现了 "海量数据,信息缺乏"的情况,无法合理有效的利用大量的信息数据,运 对企业是极大的损失。更重要的是国内数据仓库应用没有把它在应用在整个企业范围内, 没有建立统一协调的全局信息环境的庞大体系。国内的一些零售连锁企业对数据仓库的需 求越来越大,完备的信息管理系统W及海量的存储数据都为创建数据仓库提供了基础。部 分企业已引进国外先进的技术,也有一些企业自主研发数据仓库,越来越多的管理者意识 到只有通过数据仓库才能真正的对企业信息进行全面了解,做出合理的规划与决策。因此 设计一种数据挖掘分析方案来提高零售企业的管理效率和经济效益显得尤为迫切。
[000引在当前数据挖掘分析方案中,关联规则Apr iori经典算法(R . Agrawal, T.Imielinski,A.Swami.Mining association rules between sets of items in large database[M]. In SIGMOD'93 ,Washington,D.C. ,1993:207~216)采用迭代搜索数据库的方 式产生了频繁项集,为探索事务内在联系起到了很大的作用,是数据挖掘研究一个重要的 分支。但是,随着研究数据的增大,对算法性能的要求越来越高,Apriori算法的缺陷也逐渐 暴露出来。传统的Apriori算法有两个瓶颈,一是多次扫描数据库产生了巨大的1/0负载,二 产生了庞大的候选集,对算法的时间和占用的空间都是极大的挑战。

【发明内容】

[0004] 本发明的目的在于提供一种基于Apriori改进算法的关联规则算法,该算法主要 是利用改进的Apriori算法对零售业口店和零售企业仓库的大量商品数据信息进行管理与 分析。主要通过对经典Apr iori关联规则算法的分析,在此基础上设计了一种基于候选集药 品关联的改进算法,W提高算法的性能。
[0005] 实现本发明目的的技术方案为:一种基于Apriori改进算法的关联规则算法,先对 事务数据库D进行预处理,将数据记录简化后全部读到内存,在频繁项集连接、剪枝生成候 选集的过程中,对生成候选集的过程进行改进,直接生成候选项集,得到候选集后扫描数据 库计算支持度,由于候选集与事务数据库D均已排序,在每个事务T即每条记录中分别捜索 候选集时,一旦捜索到大于候选项的值时,即可停止该事务的捜索。
[0006] 与传统Apriori算法相比,本发明的显著优点为:算法减少了对数据库的扫描次 数,缩短了生成候选集的时间,提高了算法的运行效率。本发明可W对零售企业的商品销售 数据进行基于关联规则的数据挖掘分析,为企业的管理者W及商品供应商提供有效的决策 依据,便于他们分析不同地区的药品需求,动态调节商业区、居民区、办公区等不同场所的 商品种类及数量,W满足日益增长的个性化定制需求,达到提高零售企业的工作效率、降低 运营成本的目标。
【附图说明】
[0007] 图1是本发明中基于Apriori改进算法的挖掘流程图。
[0008] 图2是本发明中处方表数据库图。
[0009] 图3是本发明中数据挖掘过程中的药品编号。
[0010] 图4是本发明中数据挖掘过程中的处方编号。
[0011] 图5是本发明中药品配仓指导实例图。
【具体实施方式】
[0012] 下面结合附图对本发明作进一步详细描述。
[0013] UApriori算法瓶颈分析
[0014] 关联规则Apriori经典算法采用迭代捜索数据库的方式产生了频繁项集,为探索 事务内在联系起到了很大的作用,是数据挖掘研究一个重要的分支。但是,随着研究数据的 增大,对算法性能的要求越来越高,Apr i or i算法的缺陷也逐渐暴露出来。
[001引 Apr i or i算法存在W下两个影响性能的瓶颈:
[0016] (1)多次扫描数据库,产生巨大的I/O负载
[0017] 首先,在第k次循环中,连接产生的候选k-项集中,每一个项的化-1)项子集都需要 扫描前一次产生的频繁化-1)项集来判断该项是否为频繁项;其次,候选集中的每一个元素 都需要扫描数据库计算支持度,从而确定是否满足最小支持度,从而确定频繁项集。如果一 个候选集包括N条元素,那么至少要对数据库扫描N次,必然产生巨大的I/O负载。
[0018] (2)产生庞大的候选集
[0019] 由于频繁化-1)项集在连接产生候选k-项集的过程中数据是呈指数增长的,例如 104个频繁1-项集连接产生的频繁2-项集会达到107个,如此大的候选集数量,无论对算法 的时间还是空间都是极大的挑战。
[0020] 2、Apriori 算法改进
[0021] 由于Apriori算法存在两个瓶颈影响了算法的性能,许多学者对Apriori算法进行 了改进,运些算法都是基于Apriori的基本理论与思想,将相关的技术引入,提高了Apriori 算法的运行效率与执行速度。Apriori性能改进算法针对W上的两个问题,对传统的算法进 行了改进,提高算法性能。为了减少数据库的扫描次数,可W先对数据进行预处理,将数据 记录简化后全部读到内存,减少甚至消除算法运算时的I/O开销,并将事务数据库中的所有 项统计支持度由高到低排序后进行编号(1,2,……,n),同时去除事务数据库D中小于最小 支持度的项,并将每个事务T按照编号重新排列并生成新的数据库。数据的排序在后续多个 环节都起到了很大的作用。Apriori算法中通过频繁项集连接、剪枝生成候选集的过程是整 个算法中时间消耗很大的过程,因此,对生成候选集的过程进行改进。改进的算法不需要先 生成Ck',再根据化-1)-项集剪枝得到Ck,而是直接产生Ck。频繁项集的所有非空子集都是频 繁的,那么在生成每一项候选集时可直接判断它的所有子集是否是频繁项集,利用表格的 方式可W快速的判断。生成k-项候选集时,将前化-2)项相同的项集组合在同一行中,行号 为前化-2)项,行集合为每个化-I)项的最后一项,将集合中的项从前向后按序进行Cn2(n为 项数)的组合,并根据组合前项与该行行号分别结合(若行号只包含1项则不需要结合)找到 对应行号,判断组合后项是否在该行集合中,若存在,则该项集是候选k-项集,若不在,直接 删除,最终可直接得到候选集。
[0022] 例如:由频繁2-项集生成候选3-项集,频繁2-项集为{{1,2},{1,3},{1,4},{1,引, {2,3},{2,4},{3,引,{4,引},根据化-2)项(即第一项)相同的项进行制表,候选集组合判断 表如表1所示:
[0023] 表1候选集组合表
[0024]
[0025] 从行号为1的集合开始组合,第一组为{2,3},{2,4},{2,5},根据组合前项"2"找到 对应行号"2",后项"3"、"4"在集合中,"5"不在集合中,所W {1,2,3 },{ 1,2,4}在候选集;第 二组为{3,4},{3,5},根据组合前项"3"找到对应行号"3",后项"4"在集合中,所WU,3,4} 在候选集;第S组为{4,5},根据组合前项"4"找到对应行号"4",后项"5"在集合中,所W {1, 4,引在候选集。行号2、3、4 W此类推,最终可W直接得到候选集Ck为{{1,2,3},{1,2,4},{1, 3,引,U,4,引,{2,3,引,{2,4,引}。由
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1