赞
踩
关联规则是数据库和数据挖掘领域中所发明并被广泛研究的最为重要的模型。关联规则的目标是在数据项目中找出所有的并发关系,这种关系也称为关联。
关联规则的形式:设1=i,iz...im是一个项目集合,T是一个事务集合,其中每个事务t;是一个项目集合,并满足t;EI,一个关联规则可以表示成如下形式的蕴含关系:X→Y,其中X属于Y,Y属于I且X交Y非空。
支持度和置信度是两个常用的衡量关联规则强度的指标关联规则X> Y的支持度是数据库中包含XUY 的事务占全部事务的百分比。它是概率P(XUY),记作 support(X=Y)=P(XUY).
关联规则X→Y的置信度是包含XUY 的事务与包含X的事务数的比值。它是概率P(Y|X),记作 confidence(X=Y)=P(Y|X)。
每个属性由多个元素组成,这里的元素称为项,多个项组成的集合称为项集。如果某个项集的支持度大于或等于预先设定的最小支持度阚值,则将这个项集称为频繁项集或大项集,所有的频繁k项集组成的集合通常记为Lk。
关联规则挖掘算法中,Apriori算法最为著名,其挖掘的过程主要包含两个阶段:第一阶段先从数据集中找出所有的频繁项集,它们的支持度大于等于最小支持度闯值。第二阶段由这些频繁项集产生关联规则,计算它们的置信度,然后保留那些置信度大于等于最小置信度阚值的关联规则。
(1)连接
为了找Lk,通过Lk-1与自己连接产生候选k项集的集合,该候选k项集记为Ck:Lk-1中的两个项集和l2可以执行连接操作loolz的条件是(lk[i]表示项集中的第i个元素)(l1[1]=l2[1])A (L [2]=l2[2])..A (l1[k-2]=12[k-2])(l1[k-1]=l2[k-1])
(2)剪枝
G是Lr的超集,即它的成员可能不是频繁的,但是所有频繁的k项集都在Ck中。因此可以通过扫描数据库并计算每个k项集的支持度来得到Lk。
为了减少计算量,可以利用Apriori性质剪枝,即如果一个k项集中包含的k-1个元素的子集不在Lk-1中,则该候选集不可能是频繁的,可以直接从Ck中删除。
Apriori算法的计算复杂度主要受支持度闯值、项数(维度)、事务数和事务的平均宽度影响。具体算法描述如下:输入:事务数据库D;最小支持度阔值min_sup;最小置信度阔值min_conf。输出:事务数据库D中的所有频繁项目集L和关联规则AR。
下面举例说明该算法的规则。
现有一个事务数据库如表所示,找出其所有满足最小支持度计数的关联规则。
表的每一行表示一条交易,共有9行,左边表示顾客ID,右边表示商品ID,为了方便计算,这里给出最小支持度计数为min_sup=2(等于最小支持度为22%)。
首先,扫描数据库,识别所有1项集和它们的支持度计数,将它们称作候选1项集,记作G1,然后选择其支持度大于或等于min_sup的项,将这些项称为频繁1项集,并记作L1。这样就识别了所有的频繁1项集
下面需要做类似的工作,产生所有可能频繁2项集,称作候选2项集,记作C2。这可以通过从L,产生所有可能的2项集来实现。扫描数据库,确定C2中每个项集的支持度,再从Cz中选择那些满足支持度大于或等min_sup的项集,得到Lz。
得到所有的频繁项集后,关联规则就很容易了。对于置信度,可以用下面的公式计算:
条件概率用项集的支持度计数表示,其中support_count(AUB)是包含项集AUB的事务数,support_count(A)是包含项集A的事务数。由此,关联规则可以按以下的步骤产生:
(1)对于每个频繁项集L,产生L的所有非空子集。
(2)对于L 的每个非空子集S,如果P(A|B)≥min_conf(其中min_conf是最小置信度阙值),则输出规则s→(l-s)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。