关联规则挖掘算法研究
数据挖掘技术中基于关联规则算法的研究

数据挖掘技术中基于关联规则算法的研究摘要数据挖掘的主要目的在于能够从大型的数据库中挖掘出对用户有价值的信息,以便为决策者地决策提供有用的数据依据本文对数据挖掘技术的概念和内容做出了描述,同时也对基于关联规则的数据挖掘技术进行比较全面的概括和分析,并提出解决相应问题的基于关联规则挖掘算法。
关键词数据挖掘;关联规则;算法中图分类号tp392 文献标识码a 文章编号 1674-6708(2011)45-0223-031 概述1.1课题的研究背景现代计算机科学技术发展的历史,同时也是数据和信息加工手段不断更新和改善的历史。
随着计算机硬件和软件不断的发展,尤其是数据库技术与应用的广泛推广,摆在人们面前的问题出现了,这些急剧膨胀的信息数据,如何有效利用这一丰富数据海洋的宝藏为人类服务,也已成为广大信息技术工作者所重点关注的焦点之一。
传统的收集数据技术可以在一定程度上对收集来的数据信息进行统计分析,能够获得一定的数据价值,这种传统的收集数据技术具有一定的效果,但当这种方法在面对海量的数据并从中进行数据分析时,却没有一个比较好的解决方案。
无论是数据的统计、数据的查询、数据的报表等这些传统的数据处理方式都是对收集来的数据简单的进行处理,而不能对这些数据内部所隐含的价值信息进行有效的提取和分析。
在这些大量数据的背后隐藏了很多具有决策意义的信息,如何得到这些能够为我们提供决策依据的数据依据已经成为当前的一个热点的研究方向。
1.2研究目的和意义数据挖掘技术是面向应用型的。
目前,在很多重要的领域,数据挖掘都可以发挥积极促进的作用,尤其是在如保险、交通、零售、银行、电信等商业应用领域。
数据挖掘能够帮助用户解决许多典型的商业性的问题,其中包括:数据库营销、客户群体划分、背景分析、交叉销售等市场分析行为,以及客户流失性分析、客户信用评分、欺诈发现等等。
数据挖掘技术已经广泛的在企业市场的营销中得到了应用,它以市场营销学的市场细分原理为基础,通过对涉及到消费者消费行为的信息进行收集、加工和处理,得出结论以确定目标消费者地兴趣、消费倾向、习惯以及消费需求,从而能够推出目标消费者下一步的消费方向,然后以得出来的结论为基础,对目标消费者和消费群体进行定向的营销,这与传统的盲目营销的方式相比,可以在很大程度上节省因营销而产生的开支,能够提高营销的成功率,从而可以为企业带来更大的利润,也能够帮助企业树立起好的口碑。
关联规则挖掘算法的研究

Vol.29No.1Jan.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.2Apriori算法的基本思想Apriori算法是发现关联规则的经典算法.该算法分两个步骤发现关联规则:第一步通过迭代,找出事务数据库中的所有频繁项集,即支持度不低于最小支持度的项集;第二步利用频繁项集构造出满足用户最小可信度的规则.2Apriori 算法的不足之处Apriori算法最大的优点是算法思路比较简单,它以递归统计为基础,生成频繁项集,易于实现.Apriori算法虽然能够从海量数据中挖掘出关联规则,但是算法在执行速度和效率上有一定的局限性,表现如下:2.1Apriori算法会产生大量的候选项集.该算法是由候选集函数Apriori-Gen利用Lk-1项产生候选项集Ck,所产生的Ck由CkLk-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 cdt11000t20100t31100t40100t50111t60100t71111t80111t101000tid bcdt10t20t30t51t71t81tid项目集t1acgt2bcgt3abct4bct5bcdet6bgt7abcdft8bcdft9at10actid a b c d e f gt11010001t20110001t31110000t40110000t50111100t60110001t71111010t80111010t91000000t101010000tid a b c dt11010t20110t31110t40110t50111t60110t71111t80111t91000t10101023--。
《数据挖掘中关联规则算法研究》范文

《数据挖掘中关联规则算法研究》篇一一、引言随着信息技术和大数据时代的飞速发展,数据挖掘技术逐渐成为各个领域研究的重要课题。
关联规则算法作为数据挖掘的核心技术之一,能够从大量数据中提取出有价值的信息和知识。
本文将深入探讨数据挖掘中关联规则算法的研究现状、常用算法及其应用领域。
二、关联规则算法概述关联规则算法是一种在大规模数据集中寻找项集之间有趣关系的技术。
其主要目标是发现数据集中项集之间的关联性或因果结构,从而帮助人们更好地理解和利用数据。
关联规则算法通常用于购物篮分析、用户行为分析、生物信息学等领域。
三、常用关联规则算法1. Apriori算法:Apriori算法是一种经典的关联规则挖掘算法,其核心思想是通过寻找频繁项集来生成关联规则。
Apriori算法通过不断迭代,逐步找出满足最小支持度和最小置信度的规则。
2. FP-Growth算法:FP-Growth算法是一种改进的关联规则挖掘算法,它通过构建频繁模式树(FP-Tree)来发现数据集中的频繁项集和关联规则。
与Apriori算法相比,FP-Growth算法具有更高的效率。
3. Eclat算法:Eclat算法也是一种常用的关联规则挖掘算法,其基本思想是将数据库分割成若干个不相交的子集,然后对每个子集进行局部搜索,最后将局部搜索结果合并得到全局的关联规则。
四、关联规则算法的应用领域1. 购物篮分析:通过分析顾客的购物行为,发现商品之间的关联关系,从而帮助商家制定更有效的营销策略。
2. 用户行为分析:在互联网领域,通过分析用户的浏览、点击等行为数据,发现用户兴趣之间的关联关系,为个性化推荐等应用提供支持。
3. 生物信息学:在生物信息学领域,关联规则算法可以用于分析基因、蛋白质等生物分子之间的相互作用关系,从而揭示生物系统的复杂网络结构。
五、研究现状与展望目前,关联规则算法已经广泛应用于各个领域,并取得了显著的成果。
然而,随着数据规模的日益增大和复杂性的提高,传统的关联规则算法面临着诸多挑战。
关联规则挖掘Apriori算法的研究

t mp o e g rtm smo ee iin h nt eta iin lag rt ms hei r v d a oih i r f ce tt a h r dt a lo h . l o i
关键 词 : 数据挖 掘 ; 频繁 项集 ; pi i 法; A r r算 0 关联 规则
( 肥 工业 大学南 区 , 肥 200 合 合 3 0 9)
S u h r src Hee ie st fTe h oo y, f i2 0 0 Chn o t en Ditit fiUn v ri o c n lg Hee 3 0 9, ia I y
摘要 :关联 规 则反映 了大量 数据 中项 集之 间的相 互依存 性和 关联 性 。A r r算法是 关联规 则挖 掘 中的 经典 算法 。本 丈在对 A r r算 法分析 pi i o pi i o
基于规则 中处理 变量 的类型 ,关联规则可 以分为布尔型和数值 数据挖掘( a nn ) D t Miig 是一门新兴起的交 叉学科 , a 是从 大量数 型。布尔型考虑的是项集的存在与否, 而数值 型则是量化的关联。 据 中获 取 有 效 的 、 颖 的、 在 有 用 的 、 终 可 理 解 的模 式 的 非 平 凡 新 潜 最 2 A r r挖 掘 算 法 的 改进 与 实 现 pi i o 21算 法 的 改 进 . 过程。关联规则挖掘试图从一组给定的数据项 以及事务数据库 ( 每 个事 务 是 一个 数 据 项 的集 合 ) , 中 筛选 出数 据 项 集 在事 务 数 据 库 中 出 在 扫 描 数据 库 的过 程 中 , 些 项 目或 事务 是 不 必 多 次扫 描 的 , 有 如 现 的频 度 关 系l l 规 则 挖 掘过 程 主 要 包 含 两 个 阶段 : 一 阶段 必 须 果能 避 免 这 些 不 必要 的扫 描 , 可 以提 高 A r r 算法 的效 率 笔者 l 。联 第 则 pi i o 。 先从资料集合 中找 出所有的高频项 目组( rq ettm e )第二阶 认 为在每次生成候选项集之后 , Feu n I st , e s 删除其中没有用 的项集 , 以大大减 可 段 再 由这 些高 频 项 目组 中产 生 关联 规则 ( soi i ue ) 经 典 少下一步接连生成 的项集数量 , A sc t nR ls。最 ao 从而减少数据库扫描次数, 节省算法 的关联 规则挖掘算法是 A r r 法[ 该 算法 的主 要思想是 采用逐 过程所需 的存储空间, pi 算 2 o 1 , 减少运算 时间。可 以根据 A r r pi i以下的一个 o 层迭 代 的 方 法通 过 低 维 频 繁项 集 得 到 高 维频 繁 项 集 ,本 文将 着 重 探 性质对算法进行改进。 讨 这个 算 法 。 改进 的算法如下: 1 关联 规 则 与 Apir算 法 r i o 输入 : 事务数据库 D, 最小支持度 m nu ; isp 输出 : 频繁项集 L 11关联 规 则 描 述 . ( )l f 1C =全体项l ( ) rle 2 f a ∈C1 oS C - e dfr o l ( 】<;n d o 关联规则是如下形 式的逻辑蕴涵 : — A B,其中 A, B是项集 , A∈ IB∈IAnB 中。一 般 用 两 个参 数 描 述 关 联 规则 的属 性 。 , , = ( ) r l ∈D d 3f a o lt 0 ( ) 信度( 1可 置信 度 )of ecf C ni n e} d 3 . ( c= u sttC ) 4) s b e( , 1 : t ( ) 持 度 (u pr) 2支 S pot ( ) r l ∈c d ( )Sc ut I n r 5f a o lc t 0SC = ( ) . D edf T o 12关联 规 则 的 种 类 . , 每 个项 建 立 相 应 的 TD 列 表 / 为 I
关联规则挖掘算法的研究与应用

关联规则挖掘算法的研究与应用引言:关联规则挖掘算法作为数据挖掘领域的重要工具之一,在商业、医疗等领域有着广泛的应用。
通过挖掘数据集中的关联规则,可以发现数据之间的潜在关联关系,为决策提供支持与指导。
本文将对关联规则挖掘算法的研究和应用进行探讨,并分析其在实际问题中的应用效果。
一、关联规则挖掘算法的基本原理关联规则挖掘算法是通过寻找数据集中的频繁项集和关联规则来揭示数据之间的相关性。
算法的基本原理包括:支持度和置信度的计算、频繁项集的挖掘和关联规则的生成。
1. 支持度和置信度的计算:支持度表示一个项集在整个数据集中出现的频率,而置信度表示一个关联规则的可信度。
通过计算支持度和置信度,可以筛选出具有一定频率和可信度的项集和关联规则。
2. 频繁项集的挖掘:频繁项集是指在数据集中出现频率达到预定义阈值的项集。
挖掘频繁项集的常用算法有Apriori算法、FP-growth算法等。
Apriori算法是一种基于逐层搜索的算法,在每一层中利用候选项集生成频繁项集。
而FP-growth算法是一种基于树结构的算法,通过构建FP树和挖掘频繁模式来实现。
3. 关联规则的生成:在挖掘到频繁项集之后,可以利用这些频繁项集生成关联规则。
关联规则的生成常采用Apriori原理,即从频繁项集中根据最小置信度阈值生成关联规则。
二、关联规则挖掘算法的研究进展随着数据挖掘技术的发展,关联规则挖掘算法也得到了不断的改进与扩展。
研究者们提出了许多新的算法和改进方法,以提高关联规则的挖掘效果。
1. 改进的关联规则挖掘算法:针对传统算法在挖掘大规模数据时效率低下的问题,研究者们提出了一些改进的算法。
例如,有基于GPU加速的算法、并行化的算法以及基于增量挖掘的算法等。
这些算法通过利用硬件加速和并行计算技术,可以大幅提升挖掘速度。
2. 多维度关联规则挖掘:除了在单一维度上挖掘关联规则,研究者们还尝试在多维度上进行关联规则的挖掘。
多维关联规则挖掘算法可以同时挖掘多个维度中的关联规则,从而发现更加丰富和准确的关联关系。
关联规则挖掘Apriori算法研究综述

关键词 :关联 规则 ;海量数据 ;算法优化 ;发展 趋势 中图分类号 : P 1 T 3 1 文献标 志码 : A 文章 编号 :0 6 8 2 (0 0 — — 3 1 0 — 2 82 1 )9 1 0 2 1
A r v e e i w o s o i tv r e m i ng Apr o i l rt f a s c a i e ul ni i r a go ihm
f u e e e o m e t a e f r c se ut r d v l p n r o e a t d.
K e r s a s caie r ls;m asv aa; o t iain; d v lp na rn s y wo d : so itv ue s ie d t pi z t m o e eo me tlte d
Abs r c : Th a s ca i l i i g e h i ue s a i o tn e h q e n daa m i i g r s a c .Ap i r l o i m i l s i a ta t e s o it ve r e m n n t c n q i n mp ra t t c ni u i t n n e e r h o ro i g rt a h s a c a sc l a g rt m o a s c a i e u l s Ho lo h i f s o i t r e . v w t d g u t r ls f h e s o i t d a a e fo o i o t he u e o t a s c a e d t s t r m t e a a a e n h I d veo m e t h d t b s i t e T e l p n p o e s s mp ra t r c s i i o t n wi i c e sn o ma sv d t c le to a d t r g . I t i p pe h p i c p e a d p i z to i e o h t n ra ig f s i e aa o lc i n n so a e n h s a r t e rn i l s n o tmi ai n d a f Ap i r a g rt m a e ic s e a d e e a c a s c l p i i ai n l o i m s r a a y e a t e a e i .Fi a l t e r n s f ro i l o h i r d s u s d n s v r l ls ia o t z to a g rt m h a e n l z d t h s m tme nl y h te d o
基于关联规则数据挖掘算法的研究共3篇

基于关联规则数据挖掘算法的研究共3篇基于关联规则数据挖掘算法的研究1基于关联规则数据挖掘算法的研究随着信息时代的快速发展和数据储存技术的不断提升,数据挖掘变得越来越重要。
它能够从大量的数据中找到内在的模式和规律,有助于人们更好地理解数据背后的本质。
关联规则是数据挖掘中最常用的方法之一,它能够发现数据集中项之间的关系,即根据一些已知的事件或属性,推断出一些新的事件或属性。
本文将着重讲述基于关联规则数据挖掘算法的研究。
一、基本概念关联规则是数据挖掘中研究项之间关联关系的方法,它描述了一种频繁出现的事物之间的关系。
举个例子,如果超市销售数据中每位购买了尿布的顾客都会购买啤酒,那么这两个项(尿布和啤酒)之间就存在关联关系。
关联规则有两个部分:前项和后项。
前项是指已知的、出现频率高的事件或属性,后项是根据前项推断出的可能相关的事件或属性。
关联规则还包括支持度和置信度两个指标。
支持度是指所有包含前项和后项的交易占总交易数的比例,而置信度是指含有前项和后项同时出现的交易占包含前项的交易的比例。
二、关联规则算法1、Apriori算法Apriori算法是发现频繁项集的一种方法。
它的工作流程是先从单项集开始,不断推算出更高维度的项集,再检查每个项集的支持度。
如果支持度高于预设的最小值,那么这个项集就被认为是频繁项集。
Apriori算法的优点是简单高效,但是它的缺点是在大规模数据中存在较高的时间和空间复杂度。
2、FP-Growth算法FP-Growth算法同样用于发现频繁项集,它的工作流程是构建一棵FP树,然后根据FP树的特性,进行递归寻找频繁项集。
相比Apriori算法,FP-Growth的优势在于减少了I/O开销,适应于分布式环境。
三、应用实例关联规则算法在现实中的应用十分广泛。
比如,在电子商务平台中,我们可以根据用户购买历史,对商品进行关联分析,根据用户购买A商品的同时购买B商品的规律,来推荐B商品给用户。
在医学领域,我们可以根据患者的病历和病情,进行关联挖掘,找到不同病例之间的共同点,为医生提供辅助诊断。
关联规则算法研究及其在中医药数据挖掘中的应用的开题报告

关联规则算法研究及其在中医药数据挖掘中的应用的开题报告一、选题背景及意义:随着信息技术的不断发展,数据的规模和复杂程度越来越大,分析挖掘有用信息变得越来越重要。
关联规则算法是数据挖掘领域中的一种重要方法,其目的是在大规模数据中发现事物之间的关系。
而在中医药领域中,也存在着大量的数据需要挖掘和分析,例如中药方剂的配方和功效、中药材的组成和功效等。
因此,运用关联规则算法来挖掘中医药数据,可以为中医药领域的研究和应用提供有力支持和指导。
二、研究内容和目标:本文将主要研究关联规则算法及其在中医药数据挖掘中的应用。
具体来说,研究内容包括以下几个方面:1. 关联规则算法原理分析:研究关联规则算法的基本原理、历史发展与发展趋势,总结关联规则算法在数据挖掘中的特点和优缺点。
2. 关联规则算法在中医药数据挖掘中的应用:选取中医药领域中的具体问题,如中药材的组成和功效、中药方剂的配方和功效等,运用关联规则算法进行挖掘和分析,并进行实验验证和结果分析。
3. 研究关联规则算法在中医药数据挖掘中的优化与改进:探讨如何优化关联规则算法以提高其在中医药数据挖掘中的适用性和效率,比如结合领域知识进行数据预处理和特征选择等。
本文的研究目标是运用关联规则算法来挖掘中医药数据,找到其中的规律和关系,为中医药领域的研究和应用提供参考。
三、研究方法:本文主要采用以下研究方法:1. 文献综述法:收集和分析关联规则算法及其在数据挖掘中的经典文献和中医药领域相关文献,总结和归纳相关知识。
2. 实证研究法:选取中医药领域的具体问题,如中药材的组成和功效、中药方剂的配方和功效等,收集和整理相关数据并进行预处理,然后运用关联规则算法进行挖掘和分析,最后对结果进行验证和分析。
3. 理论分析法:对关联规则算法及其在中医药数据挖掘中的应用进行理论分析,探讨如何优化和改进算法以提高挖掘效率和准确率。
四、研究步骤:本文的研究步骤如下:1. 对关联规则算法进行文献综述和理论分析,了解其原理和优缺点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关联规则挖掘算法的研究摘要:Apriori算法是发现频繁项目集的经典算法,但是该算法需反复扫描数据库,因此效率较低。
本文介绍了Apriori算法的思想,同时对已经提出的经典的关联规则更新算法FUP和IUA算法进行分析,指出其优缺点;最后对另外的改进算法,做一个简单的叙述。
关键词数据挖掘;关联规则;Apriori算法Keywords:data mining;relation rule;Apriori algorithm关联规则反映了数据库中数据项目之间有趣的关联关系,而其中发现频繁项目集是关联规则挖掘应用中的关键技术和步骤。
关于频繁项目集的挖掘算法研究,人们对此进行了大量的工作,其中以R. Agrawal 等人提出的Apriori 、AprioriTid 等算法最具有影响力和代表性。
而这些算法的提出都是在挖掘数据库和最小支持度不变的条件下进行的。
但实际中,遇到的情况可能是:随着时间的推移,挖掘数据库的规模可能不断膨胀或需要删除一部分记录,或者需要对最小支持度进行调整从而逐步聚集到我们感兴趣的频繁项目集上。
因而如何从数据发生变动后的数据库中高效地对已经推导出的关联规则进行更新,具有非常重要的应用价值,这就是所谓的增量式挖掘关联规则的问题。
1关联规则问题描述:设I={i1,i2,...,i m}是m个不同项目的集合,给定一个事务数据库D,其中D每一个事务T是I中一组项目的集合,即T I,T有一个惟一的标志符TID。
如果对于I中的一个子集X,有X T,我们就说一个事务T包含X。
一条关联规则(association rule)就是一个形如X =>Y的蕴涵式,其中X,Y T,而X∩Y=Φ。
关联规则成立的条件是:①它具有最小支持度s,即事务数据库D中至少有s%的事务包含X∪Y;②它具有最小可信度c,即在事务数据库D中包含X的事务中至少有c%同时也包含Y。
给定一个事务集D,挖掘关联规则问题就是产生支持度和可信度分别大于用户给定的最小支持度和最小可信度的关联规则,也就是产生强规则的问题。
关联规则的挖掘问题可以分解为以下两个问题:(1) 找出事务数据库中所有具有用户最小支持度的项目集。
具有用户指定最小支持度的项目集称为频繁项目集,反之称为非频繁项目集。
一个项目中所含项目的个数称为该项目的长度。
(2) 利用频繁项目集生成关联规则。
对于每一个频繁项目集A,若B A,B≠Φ,且support(A)/support(B)>minconf,则有关联规则B=> (A-B)。
目前大多数的研究主要集中在第一个问题上面。
2 Apriori核心算法Agrawal等人于1994年提出了一个挖掘顾客交易数据库中项集间的关联规则的重要方法Apriori算法,其核心是基于两个阶段频繁项集思想的递推算法。
算法的基本思想是首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。
然后由频繁项集产生强关联规则,这些规则必须满足最小支持度和最小可信度。
Apriori核心算法思想简要描述如下:该算法中有两个关键步骤连接步和剪枝步。
(1) 连接步:为找出Lk(频繁k一项集),通过Lk-1与自身连接,产生候选k-项集,该候选项集记作Ck;其中Lk-1的元素是可连接的。
(2) 剪枝步:Ck 是Lk 的超集,即它的成员可以是也可以不是频繁的,但所有的频繁一项集都包含在Ck 中。
扫描数据库,确定Ck 中每一个候选的计数,从而确定Lk(计数值不小于最小支持度计数的所有候选是频繁的,从而属于Lk)。
然而,Ck 可能很大,这样所涉及的计算量就很大。
为压缩Ck ,使用Apriori 性质:任何非频繁的(k-1)-项集都不可能是频繁k-项集的子集。
因此,如果一个候选k-项集的(k-1)项集不在Lk 中,则该候选项也不可能是频繁的,从而可以由Ck 中删除。
这种子集测试可以使用所有频繁项集的散列树快速完成。
这个方法要求多次扫描可能很大的交易数据库,即如果频集最多包含10个项,那么就需要扫描交易数据库10遍,这需要很大的I/O 负载。
可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori 算法的两大缺点。
3 关联规则增量更新关联规则反映了数据库中数据项目之间有趣的关联关系,而其中发现频繁项目集是关联规则挖掘应用中的关键技术和步骤。
关于频繁项目集的挖掘算法研究,人们对此进行了大量的工作,其中以R. Agrawal 等人提出的Apriori 、AprioriTid 等算法最具有影响力和代表性。
而这些算法的提出都是在挖掘数据库和最小支持度不变的条件下进行的。
实际中,数据库的规模随着时间,可能不断膨胀或需要删除一部分记录,或者需要对最小支持度进行调整从而逐步聚集到我们感兴趣的频繁项目集上。
因而如何高效地从更新后的数据库中对已经推导出的关联规则进行更新是具有非常重要的价值的,这就是关联规则增量更新问题。
广义上的关联规则的更新问题就是,在原有数据库DB 的基础上,对其加上(或减去)数据库db ,在新的数据库DB 上挖掘新关联规则的问题。
关联规则的增量式更新问题主要有三个:①在给定的最小支持度和最小置信度下,当一个新的数据集db 添加到旧的数据库DB 中时,如何生成db ∪DB 中的关联规则;②在给定的最小支持度和最小置信度下,当从旧的数据库DB 中删除数据集db 时,如何生成DB-db 中的关联规则;③给定数据库DB ,在最小支持度和最小置信度发生变化时,如何生成数据库DB 中的关联规则。
文献[2]中Agrawal R ,和Srikant R 提出的FUP 算法是一个与Apriori 算法相一致的针对第一个问题的更新算法。
文献[3]中,Brin S , Motwani R , 和Silverstein C 提出的 FUP2算法是一个同时考虑第一个问题与第二个问题的算法。
第三类问题则有冯玉才、冯剑琳提出的算法IUA 和PIUA [7]。
下面给出两个比较经典算法:FUP 和IUA 算法的基本思想,并分析了各自的优缺点。
(1) FUP 算法的基本思想对任意一个k (k ≥1)项集,若其在DB 和db 中都是频繁项集,则其一定是频繁项集;若其在DB 和db 中都是非频繁项集,则其一定是非频繁项集;若其仅在DB(db)中是频繁项集,则其支持计数应加上其在db(DB)中的支持数以确定它是否为频繁项集。
FUP 算法假设在DB 中发现的频繁项集Li L U ni 1== (n 为L 中最大元素的元素个数)已被保存下来。
它需要对DB 和db进行多次扫描,在第一次扫描中,算法先扫描db ,将L 1中的元素仍为db ∪DB 中的频繁项集的元素记入L 1′,并生成候选频繁1项集C 1,C 1中的元素为db 中的频繁1项集且不包含在L 1中;然后扫描DB 以决定C 1中的元素是否为db ∪DB 中的频繁项集,并将是db ∪DB 中的频繁项集的元素记入L 1′中。
在第k (k>1)此扫描前,先对L k-1′用Apriori_Gen 函数生成候选频繁k 项集C k ,并除去L k 中的元素,即C k =C k - L k ,对L k 进行剪枝,即对于XÎL k ,若存在X Y ⊂且YÎ L k-1 – L k-1′,则X 肯定不是db ∪DB 中的频繁k 项集,应将其在L k 中删除;然后扫描db ,将L k 中的元素仍为db ∪DB 中的频繁项集的元素记入L k ′,记录候选频繁k 项集C k 中的元素在db 中的支持数;最后扫描DB ,记录C k 中的元素在DB 中的支持数,扫描结束时,将C k 中是db ∪DB 中频繁项集的元素记入L k ′中。
算法在L k 和C k 均为空时结束。
性能分析:FUP 算法利用原数据库集DB 的挖掘结果,即频繁项集L ,需要对DB 和db 进行n 次扫描(n 为L 中最大的元素的元素个数),最后得到DB ∪db 中的频繁项集L′,所以FUP 算法的效率比使用Apriori 算法和DHP 算法重新对db ∪DB 进行挖掘的效率要高得多。
不过,FUP 算法也存在其缺点,虽然它利用此算法利用了原数据库集DB 的挖掘结果,但是在对新的数据库进行更新时,又需要重复的扫描原数据库DB ,对候选集进行模式匹配,因为原数据库集DB 相对增加的数据集db 是很大的,所以在利用FUP 算法对关联规则进行更新时,会消耗大量时间处理规模巨大的候选集,浪费了时间。
(2) IUA [3]算法基本思想算法IUA 采用了一个独特的候选频繁项集生成算法iua_gen ,在对每一次对数据库DB 扫描之前生成较小的候选频繁项集,从而提高了算法的效率。
它也要求上一次对数据库DB 进行采掘时发现的频繁项集Li L U ni 1== (n 为L 中最大元素的元素个数)在本次挖掘时是可使用的。
因为人们在发现关联规则时, 常常需要不断地调整最小支持度和最小可信度来聚集到那些真正令其感兴趣的关联规则上, 因而该算法具有很重要的意义。
IUA 算法的基本框架也和Apriori 算法一致, 也需要对交易数据库DB 进行多趟扫描. 因为有s′< s , 所以原来所有的频繁k 项目集(L k ) 在新的最小支持度下仍然是频繁k 项目集, 因此在每一趟中扫描交易数据库D 计算候选k 项目集的支持度计数时, 我们就没有必要再考虑一遍L k 对应的候选k 项目集。
如果更进一步希望避免又重新生成一遍L k 对应的候选k 项目集, 我们可以考虑采取以空间换时间的策略, 只要在Apriori 算法中的每一趟k , 保存相应的(C k -L k ) 即可。
在第1趟扫描中,IUA 算法只对原来不在L1中的单个项目进行支持度计算,并确定出所有新的频繁1 项目集L1″,然后通过L1″∪L1 得到L1′。
利用一个频繁项目集的任意一个子集必定是频繁项目集这一性质,频繁k 项集c 的每一单个项目i 所对应的频繁1项集{i}或者从L1中取,或者从L1″中取。
根据这一特点,IUA 算法将具有新支持度s′的所有频繁k(k≥2)项目集分成3类:①对于其中的每一个频繁k 项目集c= {i 1, i 2,. . .,i k }, P j (1≤j ≤k ),必有{i j }∈L 1; ②对于其中的每一个频繁k 项目集c= {i 1, i 2,. . ., i k }, P j (1≤j ≤k ),必有{i j }∈L1″; ③对于其中的每一个频繁k 项目集c= {i 1, i 2,. . ., i k }, 必有两个非空子集c1 和c2, 使得c1∪c2= c , c1∩c2= Φ, 而且c1< L1, c2< L1″。
我们将所有第①类频繁k 项目集构成的集合记为L 1k , 第②类记为L 2k , 第③类记为L 3k . 同时与之相对应的候选k 项目集构成的集合分别记为C 1k , C 2k , C 3k .对于C 1k , C 2k 直接利用Apriori 算法分析:算法中的apriori-gen 函数生成;对于C 3k 通过L j 1和L k-22拼接修剪而成,j 从1迭代到k-1。