3.2 关联规则分析
关联规则分析又称关联挖掘,就是在交易数据、关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式、关联、相关性或因果结构。或者说,关联分析是发现交易数据库中不同商品(项)之间的联系。比较常用的算法是Apriori算法和FPgrowth
算法。
关联可分为简单关联、时序关联、因果关联。关联规则分析的目的是找出数据库中隐藏的关联,并以规则的形式表达出来,这就是关联规则,其定义如下:
给定一个项集合I={I1,I2,…,Im}和一个交易数据库D,其中每个事务t是I的非空子集,即每一个交易都与一个唯一的标识符TID对应。关联规则是形如X→Y的蕴涵式,其中,X和Y是I的子集合,分别称为关联规则的前驱和后继。
关联规则的有效性通常用支持度和置信度来衡量。X→Y在D中的支持度(support)是D中事务同时包含X、Y的百分比,即S(X→Y)=P(X?∪?Y);其置信度(confidence)是D中事务已经包含X的情况下,包含Y的百分比,即C(X→Y)=P(X|Y)。
如果满足最小支持度阈值和最小置信度阈值,则认为关联规则是有趣的。如果某个项集的支持度大于等于设定的最小支持度阈值,则称这个项集为“频繁项集”,所有“频繁k-项集”组成的集合通常记作Lk。这些阈值通常根据数据分析的需要人为设定。
我们用一个例子来说明关联规则的相关概念。
例如,某胃肠医院对来院看病的病人提供了5种可做的检查,某天早上前9位病人做了这5项检查(见表3-5)。
在表3-5中,每一行表示一个事务,{腹部B超}、{胃镜}都是1-项集,{腹部B超,胃镜}是2-项集,{腹部B超,胃镜,碳14}是3-项集。
考虑规则{腹部B超,胃镜}→{碳14},由于{腹部B超,胃镜,碳14}的支持度计数为2,而事务的总数是9,所以规则的支持度为。规则的置信度是项集{腹部B超,胃镜,碳14}的支持度计数与项集{腹部B超,胃镜}支持度计数的商。而项集{腹部B超,胃镜}支持度计数为4,所以置信度为。
假定支持度计数大于3(不包括3)的项集都是频繁的,那么我们可以得出频繁-1项集有{腹部B超},{胃镜},{碳14},计数分别为6,7,6。而频繁-2项集有{腹部B超,胃镜},{腹部B超,碳14},{胃镜,碳14},计数分别为4,4,4。还可以发现,不存在其他的频繁项集。
支持度–置信度框架是有局限性的,支持度的缺点在于许多潜在的有意义的模式会由于含有支持度计数较小的项而被删去。置信度的缺陷则在于忽略规则后件中项集的支持度。
为了解决置信度的这个缺陷,引入了兴趣因子和提升度的概念。
提升度lift(X→Y)=
对于二元变量,提升度等价于兴趣因子,其定义如下:
I(X→Y)=
该度量解释如下:
I(X→Y)=
例如,lift (腹部B超→胃镜)=I (腹部B超→胃镜)
关联规则挖掘过程主要包含两个阶段:
先从数据集中找出所有的频繁项集,它们的支持度均大于等于最小支持度阈值。
由这些频繁项集产生关联规则,计算它们的置信度,然后保留那些置信度大于等于最小置信度阈值的关联规则。
关联规则挖掘的具体算法将在本书11.3节详细讨论。