推荐下载关联规则pptword范文模板 19页Word下载.docx
- 文档编号:22938558
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:23
- 大小:30.25KB
推荐下载关联规则pptword范文模板 19页Word下载.docx
《推荐下载关联规则pptword范文模板 19页Word下载.docx》由会员分享,可在线阅读,更多相关《推荐下载关联规则pptword范文模板 19页Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
W中的每个事务T是一组物品,TR。
假设有一个物品集A,一个事务T,如果AT,则称事务T支持物品集A。
关联规则是如下形式的一种蕴含:
A→B,其中A、B是两组物品,AI,BI,且A∩B=。
一般用四个参数来描述一个关联规则的属性:
1.可信度(Confidence)
设W中支持物品集A的事务中,有c%的事务同时也支持物品集B,c%称为关联规则A→B的可信度。
简单地说,可信度就是指在出现了物品集A的事务T中,物品集B也同时出现的概率有多大。
如上面所举的铁锤和铁钉的例子,该关联规则的可信度就回答了这样一个问题:
如果一个顾客购买了铁锤,那么他也购买铁钉的可能性有多大呢?
在上述例子中,购买铁锤的顾客中有70%的人购买了铁钉,所以可信度是70%。
2.支持度(Support)
设W中有s%的事务同时支持物品集A和B,s%称为关联规则A→B的支持度。
支持度描述了A和B这两个物品集的并集C在所有的事务中出现的概率有多大。
如果某天共有1000个顾客到商场购买物品,其中有100个顾客同时购买了铁锤和铁钉,那么上述的关联规则的支持度就是10%。
3.期望可信度(Expectedconfidence)
设W中有e%的事务支持物品集B,e%称为关联规则A→B的期望可信度度。
期望可信度描述了在没有任何条件影响时,物品集B在所有事务中出现的概率有多大。
如果某天共有1000个顾客到商场购买物品,其中有200个顾客购买了铁钉,则上述的关联规则的期望可信度就是20%。
4.作用度(Lift)
作用度是可信度与期望可信度的比值。
作用度描述物品集A的出现对物品集B的出现有多大的影响。
因为物品集B在所有事务中出现的概率是期望可信度;
而物品集B在有物品集A出现的事务中出现的概率是可信度,通过可信度对期望可信度的比值反映了在加入“物品集A出现”的这个条件后,物品集B的出现概率发生了多大的变化。
在上例中作用度就是70%/20%=3.5。
可信度是对关联规则的准确度的衡量,支持度是对关联规则重要性的衡量。
支持度说明了这条规则在所有事务中有多大的代表性,显然支持度越大,关联规则越重要。
有些关联规则可信度虽然很高,但支持度却很低,说明该关联规则实用的机会很小,因此也不重要。
期望可信度描述了在没有物品集A的作用下,物品集B本身的支持度;
作用度描述了物品集A对物品集B的影响力的大小。
作用度越大,说明物品集B受物品集A的影响越大。
一般情况,有用的关联规则的作用度都应该大于1,只有关联规则的可信度大于期望可信度,才说明A的出现对B的出现有促进作用,也说明了它们之间某种程度的相关性,如果作用度不大于1,则此关联规则也就没有意义了。
二、关联规则的挖掘
在关联规则的四个属性中,支持度和可信度能够比较直接形容关联规则的性质。
从关联规则定义可以看出,任意给出事务中的两个物品集,它们之间都存在关联规则,只不过属性值有所不同。
如果不考虑关联规则的支持度和可信度,那么在事务数据库中可以发现无穷多的关联规则。
事实上,人们一般只对满足一定的支持度和可信度的关联规则感兴趣。
因此,为了发现有意义的关联规则,需要给定两个阈值:
最小支持度和最小可信度,前者规定了关联规则必须满足的最小支持度;
后者规定了关联规则必须满足的最小可信度。
一般称满足一定要求的(如较大的支持度和可信度)的规则为强规则(Strongrules)。
在关联规则的挖掘中要注意以下几点:
1、充分理解数据。
2、目标明确。
3、数据准备工作要做好。
能否做好数据准备又取决于前两点。
数据准备将直接影响到问题的复杂度及目标的实现。
4、选取恰当的最小支持度和最小可信度。
这依赖于用户对目标的估计,如果取值过小,那么会发现大量无用的规则,不但影响执行效率、浪费系统资源,而且可能把目标埋没;
如果取值过大,则又有可能找不到规则,与知识失之交臂。
5、很好地理解关联规则。
数据挖掘工具能够发现满足条件的关联规则,但它不能判定关联规则的实际意义。
对关联规则的理解需要熟悉业务背景,丰富的业务经验对数据有足够的理解。
在发现的关联规则中,可能有两个主观上认为没有多大关系的物品,它们的关联规则支持度和可信度却很高,需要根据业务知识、经验,从各个角度判断这是一个偶然现象或有其内在的合理性;
反之,可能有主观上认为关系密切的物品,结果却显示它们之间相关性不强。
只有很好的理解关联规则,才能去其糟粕,取其精华,充分发挥关联规则的价值。
发现关联规则要经过以下三个步骤:
1、连接数据,作数据准备;
2、给定最小支持度和最小可信度,利用数据挖掘工具提供的算法发现关联规则;
3、可视化显示、理解、评估关联规则。
三、关联规则挖掘的过程
关联规则挖掘过程主要包含两个阶段:
第一阶段必须先从资料集合中找出所有的高频项目组(FrequentItemsets),
第二阶段再由这些高频项目组中产生关联规则(AssociationRules)。
关联规则挖掘的第一阶段必须从原始资料集合中,找出所有高频项目组(LargeItemsets)。
高频的意思是指某一项目组出现的频率相对于所有记录而言,必须达到某一水平。
一项目组出现的频率称为支持度(Support),以一个包含A与B两个项目的2-itemset为例,我们可以经由公式
(1)求得包含{A,B}项目组的支持度,若支持度大于等于所设定的最小支持度(MinimumSupport)门槛值时,则{A,B}称为高频项目组。
一个满足最小支持度的k-itemset,则称为高频k-项目组(Frequentk-itemset),一般表示为Largek或Frequentk。
算法并从Largek的项目组中再产生Largek+1,直到无法再找到更长的高频项目组为止。
关联规则挖掘的第二阶段是要产生关联规则(AssociationRules)。
从高频项目组产生关
联规则,是利用前一步骤的高频k-项目组来产生规则,在最小信赖度(Minimum
Confidence)的条件门槛下,若一规则所求得的信赖度满足最小信赖度,称此规则为关联规则。
从上面的介绍还可以看出,关联规则挖掘通常比较适用与记录中的指标取离散值的情况。
如果原始数据库中的指标值是取连续的数据,则在关联规则挖掘之前应该进行适当的数据离散化(实际上就是将某个区间的值对应于某个值),数据的离散化是数据挖掘前的重要环节,离散化的过程是否合理将直接影响关联规则的挖掘结果。
四、关联规则的分类
按照不同情况,关联规则可以进行分类如下:
1.基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。
布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;
而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。
例如:
性别=“女”=>
职业=“秘书”,是布尔型关联规则;
avg(收入)=2300,涉及的收入是数值类型,所以是一个数值型关联规则。
2.基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。
在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;
而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。
IBM台式机=>
Sony打印机,是一个细节数据上的单层关联规则;
台式机=>
Sony打印机,是一个较高层次和细节层次之间的多层关联规则。
3.基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。
在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;
而在多维的关联规则中,要处理的数据将会涉及多个维。
换成另一句话,单维关联规则是处理单个属性中的一些关系;
多维关联规则是处理各个属性之间的某些关系。
啤酒=>
尿布,这条规则只涉及到用户的购买的物品;
职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。
5.关联规则挖掘的相关算法
篇二:
关联规则基本算法
关联规则基本算法及其应用
1.关联规则挖掘
1.1关联规则提出背景
1993年,Agrawal等人在首先提出关联规则概念,同时给出了相应的挖掘算法AIS,但是性能较差。
1994年,他们建立了项目集格空间理论,并依据上述两个定理,提出了著名的Apriori算法,至今Apriori仍然作为关联规则挖掘的经典算法被广泛讨论,以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。
关联规则挖掘在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。
关联规则最初提出的动机是针对购物篮分析(MarketBasketAnalysis)问题提出的。
假设分店经理想更多的了解顾客的购物习惯(如下图)。
特别是,想知道哪些商品顾客可能会在一次购物时同时购买?
为回答该问题,可以对商店的顾客事物零售数量进行购物篮分析。
该过程通过发现顾客放入“购物篮”中的不同商品之间的关联,分析顾客的购物习惯。
这种关联的发现可以帮助零售商了解哪些商品频繁的被顾客同时购买,从而帮助他们开发更好的营销策略。
1.2关联规则的基本概念
关联规则定义为:
假设I?
{i1,i2,...im}是项的集合,给定一个交易数据库D={t1,t2,...,tm},其中每个事务(Transaction)t是I的非空子集,即t?
I,每一个交易都与
一个唯一的标识符TID(TransactionID)对应。
关联规则是形如X?
Y的蕴涵式,其中
X和Y分别称为关联规则的先导(antecedent或left-hand-side,LHS)X,Y?
I且X?
Y?
?
,
和后继(consequent或right-hand-side,RHS)。
关联规则X?
Y在D中的支持度(support)是D中事务包含X?
Y的百分比,即概率P(X?
Y);
置信度(confidence)是包含X的事务中同时包含Y的百分比,即条件概率P(Y|X)。
如果满足最小支持度阈值和最小置信度阈值,则称关联规则是有趣的。
这些阈值由用户或者专家设定。
用一个简单的例子说明。
上表是顾客购买记录的数据库D,包含6个事务。
项集I={网球拍,网球,运动鞋,羽毛球}。
考虑关联规则:
网球拍网球,事务1,2,3,4,6包含网球拍,事务1,2,5,6同时包含网球拍和网球,支持度support?
3
6置信度confident?
0.5,3
5若给定最小支持度α=0.5,?
0.6。
最小置信度β=0.8,关联规则网球拍
在关联。
网球是有趣的,认为购买网球拍和购买网球之间存
1.3关联规则的分类
按照不同标准,关联规则可以进行分类如下:
(1)基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。
而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。
(2)基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。
而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。
Sony打印机,是一个较高层次和细节层次之间的多层关联规则。
(3)基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。
而在多维的关联规则中,要处理的数据将会涉及多个维。
尿布,这条规则只涉及到用户的购买的物品;
2.关联规则挖掘的相关算法
关联规则最为经典的算法是Apriori算法。
由于它本身有许多固有缺陷,后来的研究者又纷纷提出了各种改进算法或者不同的算法,频繁树(FP-Tree)算法应用也十分广泛。
本文将就这两种典型算法进行研究。
2.1Apriori算法
2.1.1预备知识
关联规则的挖掘分为两步:
(1)找出所有频繁项集;
(2)由频繁项集产生强关联规则。
而其总体性能由第一步决定。
在搜索频繁项集的时候,最简单、基本的算法就是Apriori算法。
它是R.Agrawal和R.Srikant于1994年提出的为布尔关联规则挖掘频繁项集的原创性算法。
算法的名字基于这样一个事实:
算法使用频繁项集性质的先验知识。
Apriori使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集。
首先,通过扫描数据库,累积每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。
该集合记作L1。
然后,L1用于找频繁2项集的集合L2,L2用于找L3,如此下去,直到不能再找到频繁k项集。
找每个Lk需要一次数据库全扫描。
为提高频繁项集逐层产生的效率,一种称作Apriori性质的重要性质用于压缩搜索空间。
Apriori性质:
频繁项集的所有非空子集也必须是频繁的。
Apriori性质基于如下观察。
根据定义,如果项集I不满足最小支持度阈值min_sup,则I不是频繁的,即P(I)<
min_sup。
如果项A添加到项集I,则结果项集(即I
是频繁的,即P(IA)<
A)不可能比I更频繁出现。
因此,IA也不
2.1.2Apriori算法的核心思想
文献1中对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中删除。
这种子集测试可以使用所有频繁项集的散列树快速完成。
2.1.3Apriori算法描述
Apriori算法,使用逐层迭代找出频繁项集。
输入:
事务数据库D;
最小支持度阈值min_sup。
输出:
D中的频繁项集L。
1)L1=find_frequent_1_itemsets(D);
2)for(k=2;
Lk-1≠;
k++){
3)Ck=aproiri_gen(Lk-1,min_sup);
4)foreachtransactiontD{//扫描D用于计数
5)Ct=subset(Ck,t);
//得到t的子集,它们是候选
6)foreachcandidatec
7)c.count++;
8)}
9)Lk={c
10)}CtCk|c.count≥min_sup}
11)returnL=kLk;
Procedureapriori_gen(Lk-1:
frequent(k-1)-itemsets)
1)foreachitemsetsl1Lk-1
2)foreachitemsetsl2Lk-1
3)if(l1[1]=l2[1])^(l1[2]=l2[2])^…^(l1[k-2]=l2[k-2])^(l1[k-1]<
l2[k-1])then{
4)c=l1l2;
//连接步:
产生候选
5)ifhas_infrequent_subset(c,Lk-1)then
6)deletec;
//剪枝步:
删除非频繁的候选
7)elseaddctoCk;
8)}
9)returnCk;
Procedurehas_infrequent_subset(c:
candidatek-itemset;
Lk-1:
frequent(k-1)-itemsets)//使用先验知识
1)foreach(k-1)-subsetsofc
2)Ifs
3)returnTRUE;
4)returnFALSE;
Lk-1then
2.1.4Apriori算法评价
基于频繁项集的Apriori算法采用了逐层搜索的迭代的方法,算法简单明了,没有复杂的理论推导,也易于实现。
但其有一些难以克服的缺点:
(1)对数据库的扫描次数过多。
在Apriori算法的描述中,我们知道,每生成一个候选项集,都要对数据库进行一次全面的搜索。
如果要生成最大长度为N的频繁项集,那么就要对数据库进行N次扫描。
当数据库中存放大量的事务数据时,在有限的内存容量下,系统I/O负载相当大,每次扫描数据库的时间就会很长,这样其效率就非常低。
(2)Apriori算法会产生大量的中间项集。
Apriori_gen函数是用Lk-1产生候选Ck,所产生Ck由个k项集组成。
显然,k越大所产生的候选k项集的数量呈几何级数增加。
如频繁1项集的数量为104个,长度为2的候选项集的数量将达到5*107个,如果要生成一个更长规则,其需要产生的候选项集的数量将是难以想象的,如同天文数字。
(3)采用唯一支持度,没有将各个属性重要程度的不同考虑进去。
在现实生活中,一些事务的发生非常频繁,而有些事务则很稀疏,这样对挖掘来说就存在一个问题:
如果最小支持度阈值定得较高,虽然加快了速度,但是覆盖的数据较少,有意义的规则可能不被发现;
如果最小支持度阈定得过低,那么大量的无实际意义的规则将充斥在整个挖掘过程中,大大降低了挖掘效率和规则的可用性。
这都将影响甚至误导决策的制定。
(4)算法的适应面窄。
该算法只考虑了单维布尔关联规则的挖掘,但在实际应用中,可能出现多维的、数量的、多层的关联规则。
这时,该算法就不再适用,需要改进,甚至需要重新设计算法。
2.1.5Apriori算法改进
鉴于Apriori算法本身存在一些缺陷,在实际应用中往往不能令人感到满意。
为了提高Apriori算法的性能,已经有许多变种对Apriori进一步改进和扩展。
可以通过以下几个方面对Apriori算法进行改进:
①通过减少扫描数据库的次数改进I/O的性能。
②改进产生频繁项集的计算性能。
③寻找有效的并行关联规则算法。
④引入抽样技术改进生成频繁项集的I/O和计算性能。
⑤扩展应用领域。
如:
定量关联规则、泛化关联规则及周期性的关联规则的研究。
目前许多专家学者通过大量的研究工作,提出了一些改进的算法以提高Apriori的效率,简要介绍如下:
(1)基于抽样(Sampling)技术
该方法的基本思想是:
选取给定数据库D的随机样本S,然后,在S中搜索频繁项目集。
样本S的大小这样选取,使得可以在内存搜索S中的频繁项目集,它只需要扫描一次S中的事务。
由于该算法搜索S中而不是D中的频繁项目集,可能会丢失一些全局频繁项目集。
为了减少这种可能性,该算法使用比最小支持度低的支持度阈值来找出样本S中的频繁项目集(记作LS)。
然后,计算LS中每个项目集的支持度。
有一种机制可以用来确定是否所有的频繁项目集都包含在LS中。
如果LS包含了D中的所有频繁项目集,则只需要扫描一次D,否则,需要第二次扫描D,以找出在第一次扫描时遗漏的频繁项目集。
(2)基于动态的项目集计数
3该算法把数据库分成几块,对开始点进行标记,重复扫描数据库。
与Apriori算法不
同,该算法能在任何开始点增加新的候选项目集,而不是正好在新数据库的开始,在每个开始点,该算法估计所有项目集的支持度,如果它的所有子集被估计为是频繁的,增加该项目集到候选项目集中。
如果该算法在第一次扫描期间增加了所有的频繁项目集和负边界到候选项目集中,它会在第二次扫描期间精确计算每个项目集的支持度,因此,该算法在第二次扫描后完成所有操作。
(3)基于划分的方法
PARTITION算法4首先将事务数据库分割成若干个互不重叠的子数据库,分别进行频繁项集挖掘:
最后将所有的局部频繁项集合并作为整个交易库的候选项集。
扫描一遍原始数据库计算候选集的支持度。
算法生成整个交易数据库的频繁项集只需要扫描数据库两次。
(4)基于hash技术
通过使用hash技术,DHP(Direct-HushandPrune)可以在生成候选集时过滤掉更多的项集。
所以每一次生成的候选集都更加逼近频繁集。
这种技术对于2项候选集的剪枝尤其有效。
另一方面DHP技术还可以有效地削减每一次扫描数据库的规模。
(5)事务压缩(压缩进一步迭代扫描的事务数)
这是算法Apriori-Tid的基本思想:
减少用于未来扫描的事务集的大小。
如果在数据库遍历中将一些不包含k-频繁相集的事务删除,那么在下一次循环
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 推荐下载关联规则pptword范文模板 19页 推荐 下载 关联 规则 pptword 范文 模板 19