关联规则挖掘算法的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Vol.29No.1
Jan.2013
赤峰学院学报(自然科学版)JournalofChifengUniversity(NaturalScienceEdition)第29卷第1期(下)
2013年1月关联规则挖掘算法的研究目前是数据挖掘领域的一个重要方向,其中,Apriori算法就是一个经典的挖掘关联规则算法.1993年,Agrawal等提出关联规则挖掘的相关概念,随后提出经典Apriori算法,它是一个采用两阶段挖掘思想的算法,且多次扫描事务数据库,直到寻找出给定数据集中数据项之间有趣的关联规则.1关联规则基本概念
1.1
关联规则
关联规则是形如A圯B的蕴含式,在关联规则中,有两
个重要的概念:支持度和置信度.支持度是对关联规则的重要性的衡量,置信度是对关联规则的准确度的衡量,一般情况下,用户根据实际挖掘需要,预先给定最小支持度和最小置信度,通常情况下,如果规则的置信度和支持度大于用户指定的最小置信度和支持度,那么这个规则就是一条有效规则.事实上,有效规则并不一定具有实用性,还要参照关联规则的其他指标.
定义1
设I={I1,I2,…,IM}是数据项的集合,D是全体事务
的集合,一个事务T有一个唯一的标识TID.如果项集A哿T,则称事务T支持项集A,也称事务T包含项集A.
定义2
关联规则是形如A圯B的蕴含式,其中A奂I,B奂I,且A∩B=Φ.
定义3
事务数据库D中有N条交易事务,关联规则
A圯B的支持度定义为:
support(A圯B)=support(A∪B)×100%.定义4
置信度定义为:
confidence(A圯B)=support(A∪B)×100%.
引理1
在数据库中若有一事务T其长度小于K+1,则
由K项频繁集生成K+1项频繁集时,事务T是没必要扫描的.1.2
Apriori算法的基本思想
Apriori算法是发现关联规则的经典算法.该算法分两个步骤发现关联规则:第一步通过迭代,找出事务数据库中的所有频繁项集,即支持度不低于最小支持度的项集;第二步利用频繁项集构造出满足用户最小可信度的规则.2
Apriori 算法的不足之处
Apriori算法最大的优点是算法思路比较简单,它以递归统计为基础,生成频繁项集,易于实现.Apriori算法虽然能够从海量数据中挖掘出关联规则,但是算法在执行速度和效率上有一定的局限性,表现如下:2.1
Apriori算法会产生大量的候选项集.该算法是由候选
集函数Apriori-Gen利用Lk-1项产生候选项集Ck,所产生的Ck由Ck
Lk-1
项集组成.显然k越大产生的候选项集的数目就越多.
2.2I/O负载过大.Apriori算法需要多次扫描事务数据库,
需要很大的I/O负载.对每次k循环,候集Ck中的每个元素都必须扫描数据库1次来决定其是否加入Ck.例如,一个频繁大项目集包含12个项,那么就至少扫描事务数据库12遍.3
对Apriori 算法的改进
算法改进的思路
1.改变数据的存储结构,用二进制位存储各项目的事务集,矩阵的列代表频繁K-项集,矩阵的行代表事务,其中1表示该项目在某事务中出现,0表示该项目在某事务中没有出现.
2.生成频繁1-项集.首先扫描源数据库,生成矩阵.统计每列中包含1的数目,得到该项目的支持事务数,如果该项的支持事务数大于最小支持事务数,则该项是频繁项集,否则是非频繁项集.从矩阵中将该列删除,并根据引理1,在矩阵中删除第9行,得出频繁1-项集.
3.由频繁1-项集生成频繁2-项集.对频繁1-项集中的项两两连接得出候选2-项集,也就是对矩阵中第i列所代表的项集和第j列所代表的项集进行逻辑与操作.然后计
关联规则挖掘算法的研究
张
丽
(湖南文理学院
经济与管理学院,湖南
常德415000)
摘要:本文介绍了数据挖掘中的关联规则经典Ap r i or i 算法.针对Ap r i or i 算法在执行速度和效率上的缺点,提出了一种改进的Ap r i or i 算法.
关键词:Ap r i or i ;算法;关联规则中图分类号:TP311
文献标识码:A
文章编号:1673-260X(2013)01-0022-02
基金项目:湖南文理学院2010年度青年启动课题(QNQD1017)
22--
算支持候选2-项集各项集的事务集,在矩阵中删除支持事务数小于最小支持事务数项集对应的列,根据引理1,在矩阵中删除第4、6、10行.得出频繁2-项集.
4.类推,得到频繁K-项集,直到不能产生新的频繁项集为止.
4改进算法举例
假定最小支持数为3
原始数据交易
第一步生成初始矩阵
第二步将支持度小于3的列删除.得到L1=(a,b,c,d)
第三步将支持度小于3的列删除,且根据引理1,删除第9行,得到L2=(ac,bc,bd,cd)
第四步将支持度小于3的列删除,且根据引理1,删除第4,6,10行,得到L3=(bcd)
5结束语
进算法通过改进数据的存储结构,利用“0”和“1”存储各项目的事务集,采用逻辑运算求得某项集的支持事务数,再根据给定的最小支持数生成频繁项集.改进后的算法与Apriori算法相比具有以下优势:(1)整个数据库只要扫描一次.(2)由频繁k-1项集直接生成频繁k项集,不需要再扫描整个数据库.3)在求k频繁项集时,删除了长度小于K的事务.节约了存储空间,算法的效率也大大提高.
——
——
——
——
——
——
——
——
——
—
参考文献:
〔1〕刘军,谢康林.一种改进的关联规则提取算法[J].型微型计算机系统,2003(7).
〔2〕安颖.基于关联规则的数据挖掘算法研究[D]北京:北京工业大学,2009.
〔3〕杨志刚,何月顺.基于压缩事务矩阵相乘的Apriori改进算法[J].中国新技术新产品,2010,30(6):57-58..
〔4〕黄建明,赵文静,王星星.基于十字链表的Apriori改进算法[J].计算机工程,2009,35(2):37-38.
〔5〕李云峰,陈建文,程代杰.关联规则挖掘的研究及对Apriori 算法的改进[J].计算机工程与科学,2002,24(6):65-68.
tid ac bc bd cd
t11000
t20100
t31100
t40100
t50111
t60100
t71111
t80111
t101000
tid bcd
t10
t20
t30
t51
t71
t81
tid项目集
t1acg
t2bcg
t3abc
t4bc
t5bcde
t6bg
t7abcdf
t8bcdf
t9a
t10ac
tid a b c d e f g
t11010001
t20110001
t31110000
t40110000
t50111100
t60110001
t71111010
t80111010
t91000000
t101010000
tid a b c d
t11010
t20110
t31110
t40110
t50111
t60110
t71111
t80111
t91000
t101010
23
--