关联规则
参考资料:《数据挖掘导论》人民邮电出版社Pang-Ning Tan等著
关联规则是形如 X→Y 的蕴含表达式,其中X和Y是不相交的项集。即 X∩Y=∅ 。关联规则的强度可以用它的支持度(support)和置信度(confidence)度量。支持度确定规则可以用于给定数据集的频繁程度。而置信度确定Y在包含X的事务中出现的频繁程度。
支持度
支持度是一种重要度量,因为支持度很低的规则可能只是偶然出现。从商务角度来看,低支持度的规则多半也是无意义的,因为对顾客很少同时购买的商品进行促销可能好处也并不大。因此,支持度通常用来删去哪些无意义的规则。此外,支持度还有一种期望的性质,可以用于关联规则的有效发现。
置信度
置信度度量通过规则进行推理具有可靠性。对于给定的规则 X→Y ,置信度越高,Y在包含X的事务中出现的可能性就越高。
应当小心解释关联规则分析的结果,由关联规则作出的推论并不必然蕴含因果关系。它只表示规则前件和后件中的同时出现。
定义 关联规则发现
给定事务的集合T,关联规则发现是指找出支持度大于等于minsup并且置信度大于等于minconf的所有规则,其实minsup和minconf是对应的支持度和置信度阀值。
挖掘关联规则的一种原始方法是,计算每个可能规则的支持度和置信度。但是这种方法的代价更高。提高关联规则挖掘算法性能的第一步是拆分支持度和置信度要求。
大部分关联规则挖掘算法通常采用的一种策略是,将关联规则挖掘任务分解成如下2个子任务。
(1)频繁项集产生:其目标是发现满足最小支持度阀值的所有项集,这些项集称作频繁项集;
(2)规则的产生:其目标是从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称作强规则。
通常,频繁项集产生所需的计算开销远大于产生规则所需的开销。
频繁项集的产生
格结构常常用来枚举所有可能的项集。一般来说,一个包含
k
个项的数据集可能产生
发现频繁项集的一种原始方法是确定每个候选项集的支持度,这样计算量是相当大的。
为了更加科学的计算频繁项集,这里先介绍下先验原理。
先验原理
如果一个项集是频繁的,则它的所有子集一定也是频繁的。
相反,如果一个项集是非频繁的,则它的所有超集一定也是非频繁的。
如果发现{a,b}是非频繁的,则整个包含{a,b}超集的子图可以被立即剪枝。这种基于支持度度量修剪指数搜索空间的策略称为基于支持度的剪枝。这种剪枝策略依赖于支持度度量的一个关键性质,即一个项集的支持度决不会超过它的子集的支持度。这种性质也称为支持度度量的反单调性
。
规则产生
如何有效的从给定的频繁项集中提取关联规则。
例子
设X={1,2,3}是频繁项集。可以由X产生6个候选关联规则: {1,2}→{3} , {1}→{2,3} ….等。由于它们的支持度都等于X的支持度,这些规则一定满足支持度阀值。
计算关联规则的置信度并不需要再次扫描事务数据集。考虑规则 {1,2}→{3} 是由频繁项集 X={1,2,3} 产生。该规则的置信度为 σ({1,2,3})σ({1,2}) 。
基于置信度的剪枝
不像支持度度量。置信度不具有任何单调性。定理如下。
定理 如果规则 X→Y−X 不满足置信度阀值,那么 X′→Y−X′ 的规则也一定不满足置信度阀值。其中 X′ 是 X <script type="math/tex" id="MathJax-Element-14">X</script>的子集。
这一点通过定义很容易证明。
通过这一点性质可以进行剪枝。
频繁项集的紧凑表示
6.4.1 极大频繁项集
定义 极大频繁项集 :极大频繁项集是这样的频繁项集,它的直接超集都不是频繁的。
6.4.2 闭频繁项集
定义
闭项集
项集X是闭的,如果它的直接超集都不具备和他相同的支持度计数。
闭频繁项集
一个项集是闭频繁项集,如果它的闭的,并且它的支持度大于或等于最小支持度阀值。
6.6 FP增长算法
该算法不同于Apriori算法的“产生-测试”范型,而是使用一种称作FP树的紧凑数据结构组织数据,并直接从该结构中提取频繁项集。
6.6.1 FP树表示法
详见课本224页
FP增长是一个有趣的算法,它展示了如何使用事务数据集的压缩表示来有效地产生频繁项集。此外,对于某些事务数据集,FP增长算法比标准Apriori算法要快几个数量级。FP增长算法的运行性能依赖于数据集的压缩因子。如果生成的条件FP树非常茂盛,则算法的性能显著下降,因为算法必须产生大量的子问题,并且需要合并每个子问题返回的结果。。。